quarta-feira, 1 de agosto de 2012

Acelerômetro MMA7361 + USB TTL + Atmega168


Teste do acelerômetro MMA7361 juntamente com o conversor USB TTL para comunicação com uma aplicação VB C# pela porta COM virtual do conversor. Microcontrolador Atmega168

Aquisição de 2 eixos do MMA7361 via ADC
Funções SERIN SEROUT do BASCOM-AVR em 20Hz
Porta COM virtual criada pelo conversor USB-TTL (funciona também no win 7 64bits)
Funções WriteLine e ReadExisting do C#
Limitação via programação de 160º (80º para cada lado)
Média entre o estado anterior e o atual para limitação de erro, calculado no C#


Bootloader Arduino com Atmega na Protoboard

Para gravação basta ter um gravador ISP como o USBASP acima e montar o circuito de gravação ISP (MOSI - MISO - SCK - RESET) com o atmega escolhido, que varia conforme a placa Arduino alvo

Faça download da IDE do Arduino no site oficial, instale e escolha a placa desejada em TOOLS - BOARD, selecione o USBASP em TOOLS - PROGRAMMER e finalmente TOOLS - Burn Bootloader

String com NRF24L01+ Wireless 2.4Ghz e Arduino na protoboard



As ligações são as mesmas tanto no TX transmissor como na parte RX receptora. Usei 2x Atmega168 com bootloader do Arduino Duemilanove na protoboard e 2x NRF24L01+ (versão com 10 pinos)

O módulo wireless funciona com 3,3V, coloquei dois diodos 1N4148 entre o VCC do gravador USBASP e o VCC do módulo, baixando a tensão para o limite aceito pelo módulo

NRF24L01 -> Arduino
CE -> to digital pin 8     (14 do atmega)                               
CSN -> to digital pin 9     (15 do atmega)                            
SCK -> to digital pin 10    (16 do atmega)                      
MOSI -> to digital pin 11    (17 do atmega)                       
MISO -> to digital pin 12     (18 do atmega)                   
IRQ -> to digital pin 13    (19 do atmega)   

Pegando o sketch que acompanha a biblioteca do módulo NRF24L01, adicionei a linha abaixo para converter o tipo UNSIGNED CHAR da variável rx_buf para String na variável recx, logo após a recepção:
      
recx+=(char*)rx_buf;

Download Biblioteca/Exemplo Completo