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.708 ]

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

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

Garena no Wine

Arch Linux - Repositório offline

Leitura recomendada

Trabalhando com permutações em ordem lexicográfica crescente

Python - Uma linguagem orientada a objetos

Embutindo imagens nos scripts Python para aplicações Tkinter

Convertendo Texto em Fala com Python e pyttsx3

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

  
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