STM8S-Discovery & MSP-EXP430G2 LaunchPad



Duas grandes empresas mundiais estão lançando no mercado placas de desenvolvimento para concorrer no mercado amador com a arduino. Achei interessante registrar este fato pois é a primeira vez que estas big muitinacionais lançam este tipo de produto. A Atmel e a Pic já estão no mercado faz tempo com algumas placas de desenvolvimento mas não são produtos com características tão próximas da arduino como estes.


STM8S-Discovery - http://www.st.com/mcu/contentid-130-113-STM8S_DISCOVERY.html

Uma placa de avaliação do chip STM8S com conexão usb e custo abaixo de USD 10,00 com IDE gratuita.


MSP-EXP430G2 - http://www.ti-estore.com/Merchant2/merchant.mvc?Screen=PROD&Product_Code=MSP-EXP430G2


Aproveite o lançamento deste produto para comprar a placa por USD 4,00 com frete gratis no site da ST. A placa vem com conexão usb, exemplos e IDE gratuita.

SHIFT REGISTER M74HC595 + DISPLAY 7 SEGMENTOS



Continuando com as experiências com a arduino montada na breadboard, resolvi aprender a usar os chips de shift register que expandem as portas digitais da arduino.

Nos exemplos do comando ShiftOut site arduino.cc existem esquemas e bons exemplos, porém como sempre, não consegui encontrar o chip 74HC595 da philips que é usado em todos os exemplos que encontrei na web. O chip que achei é um clone compatível do fabricante SGS-THOMSON modelo M74HC595F1R.


























Mudam os nomes dos pinos e sua posição mas as funcionalidades são exatamente as mesmas. Isso aconteceu também com o display de 7 segmentos que achei, tive que testar todos os pinos para achar qual era aordem correta de conexão, o modelo do display é HS5101AG VERDE - CATODO (COM TERRA COMUM), nao consegui achar nada de documentação deste.

O site mais completo que achei sobre o assunto com exemplos foi :

http://tronixstuff.wordpress.com/2010/04/30/getting-started-with-arduino-%E2%80%93-chapter-four/

Nao tem nehum esquema da montagem no site acima, mas tem explicações sobre o funcionamento do sistema bem feitas. O mais interessante é que a foto do chip que ele usa é a do modelo que encontrei e usei mas o resto das explicações são sobre o chip da philips...

Segue o meu esquema de pinagem:




O chip M74HC595 recebe do microcontrolador por meio do comando ShiftOut um número decimal que é convertido em binário, este número binário representa os pinos que devem ser ligados e desligados para acender ou apagar os leds que formam um certo número ou letra.

São 7 segmentos e um ponto, por tanto, oito leds para serem controlados por uma sequencia de oito zeros e uns.

Veja nos comentários abaixo o número decimal, o binário interpretado pelo chip e o número a ser apresentado no display .

Segue o  sketch que montei par apresentar todos os números em série:

--------------------------------------------------------------------------------------------

/*
Claudio Miklos based on work by Carlyn Maw and Tom Igoe
 */



int latchpin = 11; // conecta no pino 14 do M74HC595
int clockpin = 10; // conecta no pino 12 do M74HC595
int datapin = 9; // conecta no pino 11 do M74HC595
void setup()
{
   pinMode(latchpin, OUTPUT);
   pinMode(clockpin, OUTPUT);
   pinMode(datapin, OUTPUT);
}
void loop()
{
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 63); // 111111 = 0
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 6); // 110 = 1
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 91); // 1011011 = 2
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 79); // 1001111 = 3
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 102); // 00000100 = 4
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 109); // 1101101 = 5
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 125); // 1111101 = 6
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 7); // 00000111 = 7
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 127); // 1111111 = 8
     digitalWrite(latchpin, HIGH);
     delay(1000);
          digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 111); // 1101111 = 9
     digitalWrite(latchpin, HIGH);
     delay(1000);
           digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 128); // 10000000 = DP
     digitalWrite(latchpin, HIGH);
     delay(1000);
                digitalWrite(latchpin, LOW);
     shiftOut(datapin, clockpin, MSBFIRST, 255); // 11111111 = TUDO
     digitalWrite(latchpin, HIGH);
     delay(1000);
 }

------------------------------------------------------------------------------------------------------- O objetivo agora é fazer um termometro usando o que aprendi nos experiencias anteriores e montar tudo em uma placa de circuito de verdade.

ARDUINO BREADBOARD + ARDUINO ISP




Este fim de semana montei a arduino em uma protoboard seguindo as instruções do site http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard. O chip ATMEGA328 tive que encomendar do mercado livre porque não encontrei em nenhuma loja na santa efigênia. Somente encontrei o ATMEGA8 em uma loja pequena depois de rodar a manhã de sábado inteira, assim mesmo eram as duas últimas unidades.

O resto dos componentes foi fácil encontrar (tudo nesta loja) , segue abaixo uma lista com os valores que paguei:
  • Protoboard = R$ 15,00 (unit)
  • Fios = R$ 2,00 (2 m)
  • 1 x 7805 Regulador de Voltagem= R$ 0,70 (unit)
  • 2 x LED = R$ 0,25 (unit)
  • 2 x 220 Ohm resistor = R$ 0,01 (unit)
  • 1 x 10k Ohm resistor = R$ 0,01 (unit)
  • 2 x 10 uF capacitor = R$ 0,05 (unit)
  • 1 x 16 MHz clock crystal = R$ 0,60 (unit)
  • 2 x 22 pF capacitor = R$ 0,05 (unit)
  • 1 x 0.1 uF capacitor = R$ 0,05 (unit)
  • 1 x Botão Reset = R$ 0,10 (unit)
  • ATMEGA328 = R$ 19,00 
  • Cabo TTL = R$ 25,00
ARDUINO PROTOBOARD =  R$ 23,00 (sem protoboard e cabo)
ARDUINO 2009 ML = R$ 98,00
ARDUINO 2009 legalizada = R$ 136,00 (http://www.multilogica-shop.com/)
 Diversão = não tem preço :-)

O que me preocupava mais era queimar o bootloader no chip ATMEGA328. Em geral é necessário ter um programador especial para isso, mas agora na versão 0018 da IDE do Arduino existe a possibilidade de utilizar a própria placa 2009 como programador para os chips ATMEL. Com isso foi fácil conectar as duas placas e programar o chip. Veja instruções neste endereço : http://arduino.cc/en/Tutorial/ArduinoISP.




Para programar, depois de ter queimado o bootloader, eu já tinha um cabo TTL e assim estou utilizando este para transferir os sketches. Somente tive que montar na breadborad uma adaptação com seis pinos conectados nas portas RX e TX e Reset do chip.

O plano agora é transferir a montagem para uma placa de circuito pronta e assim deixar meus projetos mais permanentes.


Internet of Things

LUX com arduino GPRS shield e sensor LDR.

/*
Graph: Feed 38642, Datastream lux
*/

Laboratórios, Lojas e Produtos

Blogs, Comunidades e Revistas