Algumas Dúvidas Rápidas

Fala galerinha, estou querendo comprar um kit básico de arduino e ir aprendendo... pesquisei bastante e realmente irei comprar acho que será muito importante para me desenvolver profissionalmente (Sou estudante de Eng. Elétrica).
Segue algumas perguntas básicas...

• há limite de shields que eu possa colocar no meu arduino?
• qual a diferença de eu comprar um shield de motor ou ligar sem o shield?
• alguém tem algum tuto ou explicação de como usar o analógico do controle de playstation (apenas eles) eu precisaria de um shield?
• há possibilidade de transmissão de audio ao vivo pelo arduino?
• posso ligar qualquer lcd comprado no ebay ou deve ser algum específico pra arduino?

Obrigado galerinha, estava pensando nessas coisas. A última é menos importante até pq a diferença de preço é mínima... mas só por que fiquei curioso
abraços

Boas,

vou dar-te umas noções:

"Limite de shields" - vai depender do número de portas disponíveis que tens no arduino, tipo o Arduino Mega tem 50 e tal portas que podem ser de entrada ou saída.

"Diferença de comprar shield ou ligar sem shield" - a diferença é que a shield vem pronta a ligar e se for sem shield tens tu que montar o circuito é necessário mais conhecimentos de electrónica.

"LCD" - convém ver o datasheet e ver se dá para usar no arduino....

Cumps,

megadigital:
Boas,

vou dar-te umas noções:

"Limite de shields" - vai depender do número de portas disponíveis que tens no arduino, tipo o Arduino Mega tem 50 e tal portas que podem ser de entrada ou saída.

"Diferença de comprar shield ou ligar sem shield" - a diferença é que a shield vem pronta a ligar e se for sem shield tens tu que montar o circuito é necessário mais conhecimentos de electrónica.

"LCD" - convém ver o datasheet e ver se dá para usar no arduino....

Cumps,

opa obrigado por ter sido rápido =).
Não há shields que possam extender o numero de portas?
a sim imagine isso que é mais fácil de conectar e que já vem com o circuito pronto... mas por exemplo vi um shield de led rgb... me pareceu muito sem necessidade , uma vez que não havia mais nenhum componente no led acho que apenas facilitaria a conexão...

Uma outra coisa:
eu pretendo apenas trabalhar em 5V (pela usb mesmo) e depois por pilhas e baterias, mas sempre 5V...
o arduino "aguenta" até quantos volts em suas portas sem queimar?

Limite de Shields? Depende! Depende de quais pinos os Shields usam e o quanto eles consomem de corrente. Se dois Shields usam o mesmo pino do arduino, já não podes ligar um sobre o outro.

Você jamais deve ligar um motor direto no arduíno, sempre precisarás de algo para fazer a interface entre o arduino e o motor, se for uma direção só, no mínimo um transistor NPN, se for as duas direções entramos na necessidade de uma ponte H, que pode ser um conjunto de transistores ou um CI, tipo o conhecido L298N.

Você quer conectar o controle do Playstation ou retirarás o componente e usará no arduino? Ambos os casos são possíveis, procura no google por "potenciômetro + arduino" ou por "PS3 + arduino" que encontrarás uma série de tutoriais, para as perguntas que tens e que ainda terás

O arduino é um microprocessador de 8bits, e não tem memória para isso, então precisas de mais que só o arduino para transferir áudio e vídeo. Mas o arduino pode controlar o dispositivo que fará a transferência, dependendo do dispositivo.

Sobre o LCD, teoricamente sim, mas cada tipo de LCD poderá exigir uma conexão diferente e pinos diferentes, um 16x2 por exemplo exigirá 6 pinos digitais do arduino http://arduino.cc/en/Tutorial/LiquidCrystal

Mas existem LCDs que possuem uma interface que te permite usar apenas três pinos digitais, e isso também podes montar, aqui um exemplo 3guys1laser.com

invista algumas horas no google, pesquisando por arduino + o que você quer saber, encontrarás muitas coisas interessantes, e não esqueça que no arduino.cc mesmo tem uma pancada de informações nos menus "Getting Started", "Learning", "Reference" e "Products"

as outras perguntas estão no site Products, que tem todas as especificações de tensão (voltagem) e corrente (amperagem) PWM e outras relacionadas a placa que te interessar ou que você possuir :wink:

Sobre aumentar o número de porta, se tens um uno e desejas mais portas, pode usar o método do link que passei, relacionado ao LCD.

Eu não vejo como iniciar com microcontroladores e não aprender um pouquinho de eletrônica, não sei o quanto aprende na engenharia elétrica sobre eletrônica, mas bom estudos! =)

megadigital:
"Limite de shields" - vai depender do número de portas disponíveis que tens no arduino, tipo o Arduino Mega tem 50 e tal portas que podem ser de entrada ou saída.

O numero de shields que podes empilhar no mega ou uno(2009) é exactamente o mesmo... excepcão feita se o shield for feito para o mega... e nesse caso, o Mega não faz uso de todo o shield. Nota que os shields (a esmagadora maioria) deixam mais de metade dos pinos do mega livres.
A resposta do Mortis está correcta.

Opa obrigado pelas duas ótimas respostas... eu estou saindo do ciclo básico agora. Eu queria muito trabalhar com automação. eu já vi um shield bem parecido... melhor do que "arrancar" um analógico e por ( http://dx.com/p/diy-funduino-joystick-shield-v1-expansion-board-red-172543) muito legal vem até com botões...
sobre a transferencia de video e audio, vi uma pessoa usando uma camera IP em um robo, podendo ser totalmente "off arduino" daí ele poderia fazer um programa para receber esses dados de video e também controlar o robo, achei bem legal...

É isso ai Joneco, você pode ter uma câmera IP ou facilita muito a vida, vi soluções mais complexas, mas como meu nível é mais que básico não posso dizer muito ^^

Eu uso um bluetooth semelhante a este NRF905 Wireless RF Module w/ Antenna - Free shipping - DealExtreme e controlo meu robô por ele, uso um celular antigo (GT810H que possui whifi) onde uso um software para pegar as imagens da câmera e transmitir para o PC, meu bobô é um tanque de guerra que desmontrei e incrementei com arduíno, baterias de li-ion, sendor de temperatura e tensão, sensores infravermelho para seguir linhas, um Frankstein kkk

Em relação o controle do PS3, eu uso o MotioninJoy para a interface PC x Controle de PS3 e o bluetooth module para a interface arduino x PC. Mas é possível usar o controle de PS3 sem a necessidade do PC com um USB Shield (ou similar)

Como sou hobbysta, acho esse mundo fantástico! rs

Bons estudos e boa diversão :wink:

Mortis:
É isso ai Joneco, você pode ter uma câmera IP ou facilita muito a vida, vi soluções mais complexas, mas como meu nível é mais que básico não posso dizer muito ^^

Eu uso um bluetooth semelhante a este http://dx.com/p/bluetooth-board-module-4-pin-121326 e controlo meu robô por ele, uso um celular antigo (GT810H que possui whifi) onde uso um software para pegar as imagens da câmera e transmitir para o PC, meu bobô é um tanque de guerra que desmontrei e incrementei com arduíno, baterias de li-ion, sendor de temperatura e tensão, sensores infravermelho para seguir linhas, um Frankstein kkk

Em relação o controle do PS3, eu uso o MotioninJoy para a interface PC x Controle de PS3 e o bluetooth module para a interface arduino x PC. Mas é possível usar o controle de PS3 sem a necessidade do PC com um USB Shield (ou similar)

Como sou hobbysta, acho esse mundo fantástico! rs

Bons estudos e boa diversão :wink:

Nossa esse do celular é genial!!! é mais simples. poderia desmontar o mesmo e desacoplar a câmera e colocar a mesma mais para frente, mas acho mt difícil conseguir comprar o mini cabo flat... você tem alguma espécie de servo motor para rotacionar a câmera? acho que o problema da câmera IP seria a bateria acredito que consome muito.
Hm* esse cel é windows... problema mesmo comigo é por não ter android, o meu ultimo cel era, mas aí quebrou... por isso talvez a camera "fosse melhor"...
outra coisa:
vcs usam fritzing? eu conseguiria download de alguns shields já prontos para colocar nele ou deveria ter que "Montar" o shield eu mesmo?
parece uma boa eu ir treinando no fritzing. Acabei de baixar... pretendo comprar um kit básico do arduino UNO em 2 semanas no máximo 3, vou pagar 150 reais e vem com uns projetos que seria um "copie e cole", mas acredito ser uma boa para começar e ir me adaptando... pra falar a verdade eu nem sei programar em C++ hahaha, mas eu programo em delphi e VB, acho que vou me acostumando =)
vlw

Opa, o celular começou a dar problema para telefonar e eu estou usando-o para brincar. Sim, ser Windows mobile é uma limitação, mas uso uma aplicação pronta (WebCamera.Plus.v2.1.1) para receber no PC as imagens da câmera. Mas isso pode ser feito com qualquer celular.

Eu montei tudo sobre um tranque de guerra controle remoto, a câmera fica sobre o canhão, eu não desmontei o celular ainda para ver de é possível desacoplar a câmera, mas por enquanto a brincadeira esta boa rs

Cara, o fritzing é muito legal para "desenhar" e imprimir, mas se você quer algo mais profissional, para fazer simulações e até desenhar os circuitos impressos, procura sobre o Proteus, um colega nosso (Tiago Enrique) até fez os componentes para os arduinos ^^ veja aqui: http://arduino.cc/forum/index.php/topic,146183.0.html

Existem muitos Shields prontos, mas nada impede de você construir o teu. Eu tenho usado as veroboard (prototyping boards) da vida, dá um trabalhão rs, mas eu acho divertido.

Bacana, esses kits são legais, apesar de as vezes serem muito caros, mas não existe nada como aprender na prática!

Mortis:
Opa, o celular começou a dar problema para telefonar e eu estou usando-o para brincar. Sim, ser Windows mobile é uma limitação, mas uso uma aplicação pronta (WebCamera.Plus.v2.1.1) para receber no PC as imagens da câmera. Mas isso pode ser feito com qualquer celular.

Eu montei tudo sobre um tranque de guerra controle remoto, a câmera fica sobre o canhão, eu não desmontei o celular ainda para ver de é possível desacoplar a câmera, mas por enquanto a brincadeira esta boa rs

Cara, o fritzing é muito legal para "desenhar" e imprimir, mas se você quer algo mais profissional, para fazer simulações e até desenhar os circuitos impressos, procura sobre o Proteus, um colega nosso (Tiago Enrique) até fez os componentes para os arduinos ^^ veja aqui: http://arduino.cc/forum/index.php/topic,146183.0.html

Existem muitos Shields prontos, mas nada impede de você construir o teu. Eu tenho usado as veroboard (prototyping boards) da vida, dá um trabalhão rs, mas eu acho divertido.

Bacana, esses kits são legais, apesar de as vezes serem muito caros, mas não existe nada como aprender na prática!

é eu percebi isso ontem hahaha é só para desenho... baixei um virtual breadboard parece bem legal pena que não está funcionando ¬¬, to baixando o proteus já, eu tinha ele no pc a um tempo atrás ...

Bacana!!

Eu desisti do VBB por causa da linguagem, ele usa java e tens de escrever o código de uma forma, quando usamos C++ ou a IDE do arduino temos de mudar algumas sintaxes e tal.

Eu gostava do Multisim, mas não encontrei como emular os avr, o proteus é a melhor escolha que encontrei até o momento.

Vi por cima umas ferramentas para os AVR, inclusive para debugar, mas não tive tempo de me aprofundar.... =(

Curiosidade, qual kit exatamente você comprou?

Mortis:
Bacana!!

Eu desisti do VBB por causa da linguagem, ele usa java e tens de escrever o código de uma forma, quando usamos C++ ou a IDE do arduino temos de mudar algumas sintaxes e tal.

Eu gostava do Multisim, mas não encontrei como emular os avr, o proteus é a melhor escolha que encontrei até o momento.

Vi por cima umas ferramentas para os AVR, inclusive para debugar, mas não tive tempo de me aprofundar.... =(

Curiosidade, qual kit exatamente você comprou?

ainda não comprei, vou comprar no final do mes (http://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=105) sei que no DX tem mais barato, mas quero que chegue rápido DX demora muiiiito...
a propósito esse que você mandou para mim do uno r3 nao tem o virtual terminal =(, para por exemplo mandar comandos real-time pro arduino tipo mudar o que está escrito no lcd etc...

É, eu gosto muito do dx.com por causa do preço, mas a espera é sempre longa... com sorte chega em 20 dias, a média é 30.

Esse kit já tem algumas coisas para brincar :wink:

joneco:
a propósito esse que você mandou para mim do uno r3 nao tem o virtual terminal =(, para por exemplo mandar comandos real-time pro arduino tipo mudar o que está escrito no lcd etc...

No mundo real você usaria a porta serial (exemplo o serial monitor do arduino), certo? No proteus você tem essa possibilidade, eu vi o site abaixo, mas ainda não testei

http://www.dostmuhammad.com/blog/com-port-physical-interface-model-compim-from-proteus/

Mortis:
É, eu gosto muito do dx.com por causa do preço, mas a espera é sempre longa... com sorte chega em 20 dias, a média é 30.

Esse kit já tem algumas coisas para brincar :wink:

joneco:
a propósito esse que você mandou para mim do uno r3 nao tem o virtual terminal =(, para por exemplo mandar comandos real-time pro arduino tipo mudar o que está escrito no lcd etc...

No mundo real você usaria a porta serial (exemplo o serial monitor do arduino), certo? No proteus você tem essa possibilidade, eu vi o site abaixo, mas ainda não testei

http://www.dostmuhammad.com/blog/com-port-physical-interface-model-compim-from-proteus/

vou olhar isso depois com calma =).
no arduino "normal" esse serial monitor vai direto se o mesmo estiver ligado na usb certo? eu vi um código por aí que era tipo: eu definia algo para eu dizer no monitor para fazer algo, tipo um If eu falar isso, do isso certo? ou eu poderia digitar o comando direto exemplo digitalWrite (led13, HIGH);? ou os dois?

outra coisa se eu colocar um potenciometro para entrada analogica não adianta nada certo?

outra coisa Mortis, você tem alguma dica para não queimar o Arduino? eu deveria mais me preocupar com as entradas que estão em Input ou até a Output poderia queimar meu arduino?

O potenciómetro dá para variares a tensão de entrada na entrada analógica.

Importas-te de explicar a primeira pergunta?

A pergunta realmente ficou confusa rs

Primeiro, o que é serial? A resposta esta nas referências do arduíno: http://arduino.cc/en/Reference/serial

Logo, para nos comunicarmos com o arduino (com o nosso programa gravado no arduino) precisamos de uma interface, neste caso podemos usar a serial. Para usar a serial precisamos colocar isso no programa (Serial.Read() vai ler o que foi mandado para a porta do arduino e Serial.Write(...) vai escrever na porta, para que um programa externo "leia".

Se você conecta o arduino na USB, o sistema operacional reconhecerá a USB como uma porta COM, ao definir a porta na IDE do arduino e abrindo o Serial Monitor (essa é uma tela do arduino que permite escrever a mensagem na porta do arduino, mensagem que o seu programa deverá entender e a partir dai executar uma ação que você tiver programado)

Também é possível escrever um programa que roda no PC e "leia e escreva" na porta serial (conexão com o arduino) em outras linguagens (VB, C#, C, C++,Java, etc), fazendo assim a interface entre o PC e o arduino, o Celular e o Arduíno, etc

O Arduino Uno possui dois pinos (um TX e um RX) onde você pode conectar um módulo bluetooth, um shield RF, ou outra interface de hardware para a comunicação.

Procura no google por "arduino + android" e verás vários tutoriais de comunicação usando bluetooth, procura com outras palavras chave que irás encontrar até aquilo que você ainda não sabe que quer saber

Sobre o potenciômetro, tem muitos tutoriais também, bem básicos... É fácil fácil de achar :wink:

Mortis:
A pergunta realmente ficou confusa rs

Primeiro, o que é serial? A resposta esta nas referências do arduíno: http://arduino.cc/en/Reference/serial

Logo, para nos comunicarmos com o arduino (com o nosso programa gravado no arduino) precisamos de uma interface, neste caso podemos usar a serial. Para usar a serial precisamos colocar isso no programa (Serial.Read() vai ler o que foi mandado para a porta do arduino e Serial.Write(...) vai escrever na porta, para que um programa externo "leia".

Se você conecta o arduino na USB, o sistema operacional reconhecerá a USB como uma porta COM, ao definir a porta na IDE do arduino e abrindo o Serial Monitor (essa é uma tela do arduino que permite escrever a mensagem na porta do arduino, mensagem que o seu programa deverá entender e a partir dai executar uma ação que você tiver programado)

Também é possível escrever um programa que roda no PC e "leia e escreva" na porta serial (conexão com o arduino) em outras linguagens (VB, C#, C, C++,Java, etc), fazendo assim a interface entre o PC e o arduino, o Celular e o Arduíno, etc

O Arduino Uno possui dois pinos (um TX e um RX) onde você pode conectar um módulo bluetooth, um shield RF, ou outra interface de hardware para a comunicação.

Procura no google por "arduino + android" e verás vários tutoriais de comunicação usando bluetooth, procura com outras palavras chave que irás encontrar até aquilo que você ainda não sabe que quer saber

Sobre o potenciômetro, tem muitos tutoriais também, bem básicos... É fácil fácil de achar :wink:

Entedi =), vou procurar sobre bluetooth sim, pq queria mt isso... acredito que todos querem né, ficar sempre com o usb no pc nao é muito legal...

uma dúvida rápida sobre C++.
gente estou tentando concatenar e não estou conseguindo.

eu coloquei um display no arduino (proteus) e um keypad, botei os números saem certo, coloquei o * para deletar tudo e queria por para verificar se uma combinação é = a X (uma senha) no caso eu não estou conseguindo ter uma variável com todos os caracteres, dado que no lcd.print() ele imprime um caracter no display e vai usando o seguinte... porém não vi se havia memória de tudo que foi escrito até agora. pensei em ao mesmo tempo que imprimir no display criar uma variavel chamada senha e no caso ela iria ser igual a ela + customKey (tecla que acabou de ser apertada) porém estou tendo muitas dificuldades com isso, não sei o que fazer... alguém sabe como ir adicionando esses caracteres da customKey nessa variável senha? ou um jeito de pegar toda informação que está impressa no LCD?

vlw

Eu não quero bluetooth... :stuck_out_tongue:

Como estás a concatenar? Existem imensas maneiras de o fazer... mas sem ver o teu código não podemos dizer muito, ou podemos?
Já experimentaste ver strcat na net?

Sem ver código... teria de fazer tudo de raíz... e esse não é o propósito do fórum.

bubulindo:
Eu não quero bluetooth... :stuck_out_tongue:

Como estás a concatenar? Existem imensas maneiras de o fazer... mas sem ver o teu código não podemos dizer muito, ou podemos?
Já experimentaste ver strcat na net?

Sem ver código... teria de fazer tudo de raíz... e esse não é o propósito do fórum.

já sim... não ajudou muito.

/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <Keypad.h>
#include <LiquidCrystal.h>

const byte ROWS = 4; // numero de linhas
const byte COLS = 3; // numero de colunas
//definir o caracter de cada posição
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'C','0','#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {10, 13, 0,}; //connect to the column pinouts of the keypad
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // numero das portas do lcd

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){

lcd.begin(16, 2); 

}
  
void loop(){
char customKey = customKeypad.getKey();
String senha;

  if (customKey){

    senha = senha+customKey;
    lcd.print(customKey);

  }
  
    if (customKey == 'C'){
      delay (500);
    lcd.clear();
  }

    if (customKey == '#'){
      delay (500);
      lcd.clear();
      lcd.print(senha);
    }
 
}

no caso representei aqui como:
senha = senha+customKey; para podermos ter uma idéia...
ela está no evento customkey (sempre que apertar algum botão) ela vai adicionar esse botão para a senha e quando eu apertar outro vai adicionar a variável senha. Esse C (é na verade um *) troquei ele aí aperta vai um C para o display e um pouco depois apaga tudo e também vou por para por a variável senha vazia...
alguma ajuda? =)

Não tens aqui evento nenhum... e como o getKey não bloqueia, sempre que carregas numa tecla o Arduino lê umas quantas. Porque não fazer isto bloqueante? Ou pelo menos testar se houve mudanca de teclas.

unsigned char tecla_anterior; 
unsigned char tecla;
if (tecla != tecla_anterior) {
//faz algo
}
tecla_anterior = tecla;

Isto é um exemplo para usar strings em vez de Strings.

char senha[6];//seenha com 5 caracteres. 
unsigned char pointer = 0; 

...

  if (customKey){
    if (pointer<5) { //só tens 6 espacos... 
       senha[pointer++] = customKey;
       senha[pointer] = '\0'; //terminador
       lcd.print(customKey);
    }
  }
  
    if (customKey == 'C'){
      delay (500); //para que é isto?????
      pointer = 0; 
      senha[0] = '\0'; //se imprimires, não aparece nada. 
      lcd.clear();
  }

    if (customKey == '#'){
      delay (500);//Isto é para???? 
      lcd.clear();
      lcd.print(senha);
    }