Arduino com Bluetooth e pySerial

Venho mostrar como controlar seu Arduino usando o Bluetooth Shield, não precisando de cabo USB para transferir ou receber
informações. No artigo como exemplo, monto um carrinho usando o Bluetooth como controle remoto.

[ Hits: 41.705 ]

Por: Antonio Thomacelli em 15/11/2011 | Blog: http://www.tonnytg.com.br


Criando o código



O Arduino trabalha em C++ adaptado. Quem não conhece a linguagem, não precisa saber de muita coisa, somente com Lógica de Programação já é o suficiente, o resto flui naturalmente.

O Arduino já vem com seu software para programação, o que facilita muito. Com os exemplos já implementados, existe para GNU/Linux, Windows e Mac.

Link para download 32bits:
Ou visite:
Bom, o Arduino para funcionar precisa dessa estrutura sempre que for criado o código para ele:

Obs.: Duas barras (//) comenta o resto da linha.

void setup() // onde usamos para definir as variaveis ou quais pinos vai sair ou entrar informação { } void loop() // o que está dentro de loop será repetido automaticamente sempre { }

Arduino trabalha com bibliotecas para facilitar a vida de quem programa nele. E existem diversas bibliotecas: para ethernet, timer, sensores, displays LCD, etc.

Eu vou usar a biblioteca SERVO. Ela funciona para definir quando um objeto vai acionar um servo motor.

Para chamar as bibliotecas usamos o:

# include <biblioteca.h>

Como disse é C++.

Lembrando que '//' é comentário em C++. Agora vamos ao código:

# include <Servo.h> // chama a biblioteca Servo.h, sem esta ele não reconhece a função servo. Servo md; //transforma a variável 'md' em um objeto para acionar o motor da direita. Servo me; //transforma a variável 'me' em um objeto para acionar o motor da esquerda. int BOT = 0; // variável que recebe a tecla pressionada, serão valores entre 0 a 200 +-. void setup() { Serial.begin(9600); // usado para ativar a função de transferência de dados entre PC e Arduino 9600, é a velocidade do trafego. me.attach(4); //motor esquerdo será no pino 4 (no artigo usei cabo amarelo para informar os dados). md.attach(5); //motor direito será no pino 5. me.write(118); // AQUI EU ACHO QUE O VALOR 118 VARIA DE MOTOR PRA MOTOR. md.write(103); // TEM QUE ACHAR O VALOR PARA QUE ELE FIQUE PARADO. } void loop() { if (Serial.available()>0) //verifica se alguma tecla foi pressionada e se o valor é maior que 0. { BOT = Serial.read(); // variável BOT recebe a tecla digitada e esse valor vem em byte. if ( BOT == 119) // aqui já coloquei os valores em byte para as teclas pressionadas, 'w' para ir pra frente. { md.write(150); // anda para direção acionada. me.write(50); } if ( BOT == 115) //atrás: letra s. { md.write(50); // anda para direção acionada. me.write(150); } if ( BOT == 97) //esquerda: letra a. { md.write(50); // anda para direção acionada. me.write(50); } if ( BOT == 100) //direita: letra d. { md.write(150); // anda para direção acionada. me.write(150); } if ( BOT == 112) // pause: letra p. { md.write(118); // mesmo valor usado no 'void setup'. me.write(103); } } }

Com este código, seu Arduino já está pronto para acionar os motores.

Lembrando que estamos usando servo motores, eles já vêm com baixa rotação, aumentando o torque ajuda muito.
Página anterior     Próxima página

Páginas do artigo
   1. Arduino open-hardware
   2. Criando o código
   3. Teclado como controle
   4. Sincronizando o Bluetooth
   5. Finalizando e FAQ
Outros artigos deste autor

Arch Linux - Repositório offline

Adaptação 2 em 1 de cabo de par trançado 10/100

Garena no Wine

Leitura recomendada

Desenvolvendo aplicações GUI simples em Python & Glade (PyGTK) com banco de dados SQLite

Construindo um portscanner TCP com Python

Interagindo com servidores HTTP com Python

Programe em Python no jogo Minecraft com seu filho ou sozinho

Convertendo Texto em Fala com Python e pyttsx3

  
Comentários
[1] Comentário enviado por rai3mb em 15/11/2011 - 06:48h

Muito bacana!!!
Tenho vontade de começar a mexer com Arduino, no momento, me falta só tempo e grana.

Parabéns pelo Artigo!

[2] Comentário enviado por tonnytg em 15/11/2011 - 09:00h

Obrigado rai3mb pelo comentário.
Acho que o arduino e android ainda tem muito a oferecer para nosso mundo open-source e quem sabe isso não seja uma parceria para vermos robos dentro de casa ou deixar tudo automatizado hehe.

Postei algumas coisas no meu blogger sobre arduino e pyserial para monitorar a memória RAM do PC para quem quiser tá lá

[3] Comentário enviado por tatuiano em 15/11/2011 - 11:13h

fiquei de boca aberta.rsrs
parabéns pelo artigo.rapaz você tem futuro.nota 11.

[4] Comentário enviado por m4sk4r4 em 15/11/2011 - 11:44h

Muito bom!

Parabéns!!

E sobre esses motores que você usou, quanto custa um motor desses e onde comprar?
No total você gastou quanto para esse projeto?

Abraço,

[5] Comentário enviado por tonnytg em 15/11/2011 - 12:45h

m4sk4r4, no arduino paguei 75 reais, bluetooth shield 105, nos dois motores 26. Existe arduino montados direto na protoboard que o custo cai bastante. Onde comprei foi na brasilrobotics.blogspot.com , sobre o bluetooth existe um chip menor por 60 reais no mercado livre tem ele.
Confere esse blogger mostra como fazer um arduino caseiro: http://leandron.wordpress.com/2010/02/12/arduino-na-protoboard-parte-1/

Total : 206 reais
Existem outros bloggers por ai bem mais detalhados, qualquer coisa tamo ai.

[6] Comentário enviado por removido em 15/11/2011 - 16:55h

Este rapaz que fala e escreve de um jeito muito peculiar (vejam o vídeo recomendado), que trabalha numa mesa bagunçada (parece a casa do Dock no filme "De Volta para o Futuro), deu-me um trabalho danado na edição deste trabalho. Vocês não imaginam quanto! rs
E eu o fiz com todo o prazer.

Saibam que ele me causa orgulho!
Temos sorte de tê-lo no VOL demonstrando toda sua genialidade, criatividade e disposição em compartilhar.

Nosso gênio em robótica.

Parabéns Tonny!!!

[7] Comentário enviado por tonnytg em 15/11/2011 - 18:38h

Haha peculiar para não dizer errado hehehe.
Realmente corrigir todas as páginas não deve ter sido fácil, mas esse é o nosso mundo open-source com a colaboração obrigado novamente. Lembra da epoca do screen com pinguin que fiz com o blender hehe foi para impressionar vocês é bom compartilhar mas também ter o reconhecimento de vcs. VLW izaias pelo suporte e somos todos irmãos aqui no VOL =D
Editei o comentário antigo tava meio esquisito xD

[8] Comentário enviado por removido em 15/11/2011 - 19:57h

OK, quero ver seu próximo trabalho.

Muito interessante. E tudo isso movido com software livre.

[9] Comentário enviado por Lisandro em 16/11/2011 - 08:46h

Muito Bom! Valeu pelo artigo e pelas referências.

[10] Comentário enviado por tonnytg em 18/11/2011 - 14:19h

Postei um novo projeto do arduino, python e uma pitada de iptables.
Quem quiser conferir é uma boa idéia para administradores que não podem monitorar tudo ao mesmo tempo.

[11] Comentário enviado por tonnytg em 22/11/2011 - 02:21h

Aproveitando, sexta-feira 14hs vo postar como controlar o linux usando arduino e controle remoto de tv.
Quem quiser já ter uma idéia postei uma PREVIEW lá visitem ai.

linuxresort.blogspot.com

[12] Comentário enviado por ricardoolonca em 22/11/2011 - 16:05h

Artigo muito bem escrito. Parabéns!

[13] Comentário enviado por tonnytg em 22/11/2011 - 16:08h

Haha vlw, o melhor é saber que estou contribuindo para o mundo open-source de alguma forma.
Estou mechendo com o arduino graças a uma palestra que assisti então espero motivar outros da mesma forma, divulgando o que somos capazes de realizar com o open-hardware.=D flw

[14] Comentário enviado por tonnytg em 25/11/2011 - 11:56h

Postei sobre como controlar o linux com arduino usando controle remoto.

[15] Comentário enviado por cleodalalio em 30/01/2012 - 14:31h

Pessoal,

vejam o site da EMPRETECNET, tem um kit com placa compativel duemilanove, placa rele, placa potenciometro, placa botao, placa reed, placa buzzer, placa sensor de luz, placa sensor de temperatura e outros componentes bem interessantes que possibilita uma serie de experimentos sem o uso de solda.

[16] Comentário enviado por tonnytg em 30/01/2012 - 14:39h

O kit do controle remoto é muito bom.
Fiz um pequeno projeto usando praticamente as mesmas peças onde consegui abrir softwares no linux até desligar o PC usando um controle IR

[17] Comentário enviado por sanusb em 17/10/2012 - 18:12h

É possível também utilizar um programa.ino para configuração automática com arduino da taxa de transmissão do modem bluetooth de 9600 para 19200 (mais rápido). O tutorial de os programas estão disponíveis no link: https://dl.dropbox.com/u/101922388/ModemBluetooth19200.zip e no link: https://dl.dropbox.com/u/101922388/sanusbee.zip

Ligações dos pinos arduino com o modem bluettoth:
modem--------Arduino
RX--------------- PINO 3
TX----------------PINO 2
GND---------------GND
VCC-----------------5V


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts