domingo, 5 de junho de 2011
Zigbee Microchip + Arduino [Parte 1]
Hoje chegou a placa que mandei fazer ja tem bem uns 50 dias com a Dorkbotpdx, cujo contato peguei no site do Daniel Andrade. Vale a dica para quem quer fazer protótipos baratos... USD5,00 por polegada quadrada, atendimento de primeira (em ingles, obviamente) e pagamento sem burocracia com o Paypal.
A ideia da placa é que seja uma alternativa mais em conta para o Xbee e tambem que eu coloque em pratica um pouco de programação que ficou esquecida desde a faculdade. Se vai ser mesmo um produto a venda ou não depende de como funciona o stack da Microchip, se vou conseguir comandar o modulo so com o Arduino, ou se eu vou precisar do PIC que coloquei na placa. A principio o hardware esta preparado para tudo, inclusive para ser ligado diretamente na USB. Dando certo... a proxima etapa é um radio para rede MESH com o CC430 da Texas.
Nos proximos dias publicarei o esquemático e colocarei on line os arquivos de layout que fiz no eagle, caso alguem tenha interesse.
sexta-feira, 30 de julho de 2010
Ethernet Shield
Desde meados de 2009 fabrico o Ethernet Shield com o ENC28J60 da Microchip. O hardware é simples e permite permite que o preço fique bem acessivel aos que necessitam este tipo de comunicação. Ao contrario dos shields com o W5100 da Wiznet este shield precisa da biblioteca específica para funcionar. Seguem specs:
- O Arduino usa os pinos digitais 2,10, 11, 12 e13 (SPI) para se comunicar com o ENC28J60;
- Placa com conector RJ45 padrão de mercado com leds;
- O botão de reset na placa permite o reset do Arduino e do chip ENC28J60 simultaneamente;
- Para uso deste shield é necessário uma fonte externa de 9V x 1A (500mA a 1A);
- A pilha TCP/IP é open source;- Possui exemplos de PING, Web serve e Web Client.
Datasheet do ENC28J60 -> Link
Biblioteca do Shield -> Link
- O Arduino usa os pinos digitais 2,10, 11, 12 e13 (SPI) para se comunicar com o ENC28J60;
- Placa com conector RJ45 padrão de mercado com leds;
- O botão de reset na placa permite o reset do Arduino e do chip ENC28J60 simultaneamente;
- Para uso deste shield é necessário uma fonte externa de 9V x 1A (500mA a 1A);
- A pilha TCP/IP é open source;- Possui exemplos de PING, Web serve e Web Client.
Datasheet do ENC28J60 -> Link
Biblioteca do Shield -> Link
quinta-feira, 29 de julho de 2010
i2c No Arduino
Desde o final de 2009 tenho tentado fazer a expansão i2C do Arduino funcionar corretamente. Achei varios códigos mas nenhum respondia para o PCF8574 da Philips que é uma expansão bidirecional de 8 portas. Ontem finalmente, usando o IO shield eu consegui fazer o dito cujo funcionar corretamente. Na primeira foto a montagem do PCF com dois leds.
Demorou mas funcionou. Basicamente oq ue faltava era corrente para alimentação do conjunto e os resistores no bus i2C, o que impedia que a comunicação acontecesse.
Eu utilizei o seguinte código:
/*
Test program for PCF8574 I2C I/O expander
- Blinks all ports low then high.
by Ford
*/
#include
#define expander B0100000 // Address with three address pins grounded.
// Note that the R/W bit is not part of this address.
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
Serial.println("LED OFF");
expanderWrite(B00000000);
Serial.print("Read: ");
Serial.println(expanderRead(), BIN);
delay(1000);
Serial.println("LED ON");
expanderWrite(B00100000);
Serial.print("Read: ");
Serial.println(expanderRead(), BIN);
delay(1000);
}
void expanderWrite(byte _data ) {
Wire.beginTransmission(expander);
Wire.send(_data);
Wire.endTransmission();
}
byte expanderRead() {
byte _data;
Wire.requestFrom(expander, 1);
if(Wire.available()) {
_data = Wire.receive();
}
return _data;
}
Origem do código -> Link
A segunda parte consistia em colocar o i2C para funcionar na placa de relés/entradas digitais.
Demorou mas funcionou. Basicamente oq ue faltava era corrente para alimentação do conjunto e os resistores no bus i2C, o que impedia que a comunicação acontecesse.
Eu utilizei o seguinte código:
/*
Test program for PCF8574 I2C I/O expander
- Blinks all ports low then high.
by Ford
*/
#include
#define expander B0100000 // Address with three address pins grounded.
// Note that the R/W bit is not part of this address.
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
Serial.println("LED OFF");
expanderWrite(B00000000);
Serial.print("Read: ");
Serial.println(expanderRead(), BIN);
delay(1000);
Serial.println("LED ON");
expanderWrite(B00100000);
Serial.print("Read: ");
Serial.println(expanderRead(), BIN);
delay(1000);
}
void expanderWrite(byte _data ) {
Wire.beginTransmission(expander);
Wire.send(_data);
Wire.endTransmission();
}
byte expanderRead() {
byte _data;
Wire.requestFrom(expander, 1);
if(Wire.available()) {
_data = Wire.receive();
}
return _data;
}
Origem do código -> Link
A segunda parte consistia em colocar o i2C para funcionar na placa de relés/entradas digitais.
terça-feira, 24 de fevereiro de 2009
Freeduino BR - Versao Branca
sábado, 21 de junho de 2008
Primeira Placa
Este é o primeiro Arduino que eu montei. saiu um pouco caro fazer a placa, os componentes aqui são salgados, um ATMEGA168 por exemplo chega a custar R$ 18,00, alé do frete, é claro! Para fazer o upload do bootloader eu montei o cabo paralelo. Funcionou que é uma beleza. Como fiz placas a mais eu estou vendendo o excedente no ML. Em breve devo postar a placa funcionando e o meu primeiro projeto de placa de Ethernet usando o 28J60 da Microchip. Alguém aí ja tentou usar isso?
sexta-feira, 20 de junho de 2008
O Início
Começo hoje a expor aqui minha tentativa de divulgar esta ferramenta interesantíssima que é o Arduino, as placas que ja desenvolvi e as que desenvolverei. Espero que minha tentativa ajude a aumentar a comunidade mundial adepta deste padrão de hardware.
Espero que isto aqui ajude quem tem interesse no projeto.
Caso voce visitante tenha dúvidas sobre o Arduino, queira desenvolver uma placa e não tenha apoio ou esteja enroscado em algum projeto.. por favor poste suas dúvidas. Vamos trabalhar juntos!!
Espero que isto aqui ajude quem tem interesse no projeto.
Caso voce visitante tenha dúvidas sobre o Arduino, queira desenvolver uma placa e não tenha apoio ou esteja enroscado em algum projeto.. por favor poste suas dúvidas. Vamos trabalhar juntos!!
Assinar:
Postagens (Atom)