sexta-feira, 7 de agosto de 2015

Lendo dados de um pen drive usando o Arduino

Imagine as possibilidades de criar, por exemplo, robôs que leem dados de um pen drive, onde estão todas as instruções das tarefas que ele deve executar, ou até mesmo a sequencia de sons que o Arduino deverá executar! Com isso podemos criar caixinhas de músicas personalizáveis e robôs que cumpre missões.

Para esse projeto precisaremos de:

Um Arduino:


Um módulo de pen drive. Esse que mostro aqui é um equipamento baseado em chip da FTDI, vendido pela Tato Equipamentos Eletrônicos (www.tato.ind.br):


Uma placa de ensaios e apenas cinco pedacinhos de fios:


Um pen drive de no máximo 1 GiB:


Vamos primeiro montar nosso hardware. Coloque o módulo pen drive na placa de ensaios e ligue os pinos RTS (Ready to Send) ao CTS (Clear to Send) do modulo pen drive, com isso não precisamos controlar o fluxo via software, já que logo após transmitir ele já se colocará como pronto para transmitir:


Ligue agora os pinos +5V do módulo pen drive ao +5V do Arduino e o GND do módulo ao GND do Arduino:


Ligue também os pinos TX do módulo pen drive ao pino digital 2 do Arduino e o pino RX do módulo pen drive ao pino digital 3 do Arduino:


Agora, antes mesmo de programarmos o Arduino vamos criar o arquivo a ser lido, apenas note que há uma limitação para o hardware que só é capaz de acessar pen drives de no máximo 1 GiB.

Não há impedimentos se houverem outros arquivos no pen drive, mas recomendo não deixar nada valioso uma vez que, mesmo que mínima, há a chance de perdê-los. Use seu bom senso, mas o risco será todo seu.

Insira seu pen drive em um computador e crie um arquivo texto chamado projeto.txt, como conteúdo digite alguns caracteres ou algumas linhas de texto:




Agora vamos aos códigos fontes para o Arduino, ler o arquivo projeto.txt:

#include
 
SoftwareSerial pendrive(2,3);
 
void setup() {
Serial.begin(9600);
pendrive.begin(9600);
delay(2000);
pendrive.print("RD projeto.txt");
pendrive.write(13);
delay(100);
}
 
void loop() {
char entrada = 0;
String resposta = "";
while(pendrive.available()) {
entrada = pendrive.read();
if(entrada > 0) 
resposta += entrada;
}
pendrive.flush();
if(!resposta.equals("")) Serial.println(resposta);
}

Para ler o arquivo basta passar o comando RD seguido do caracter ASCII 13 (0D hexadecimal) que o módulo do pen drive retornará o conteúdo do arquivo.

Para ver o resultado, abra o Serial Monitor do ambiente de desenvolvimento do Arduino:




A imaginação será o limite daqui para frente! Divirta-se!
← Postagem mais recente Postagem mais antiga → Página inicial

2 comentários:

  1. Caramba que artigo bom, o melhor até agora.
    Tem uma forma de ler linha a linha, ou bloco de linhas para comparar informações?

    ResponderExcluir