Você está na página 1de 15

Parte I

Perifricos Android

captulo 1

Rob Bluetooth
O celular um aparelho muito til. Com ele podemos fazer compras, enviar mensagens e muitas outras coisas. Com o celular tambm possvel dirigir pequenos robs usando um controle remoto baseado em Bluetooth. Neste captulo, veremos como isso possvel.

Objetivos
Aprender a controlar um pequeno Robot baseado em Android utilizando um Shield de motor para Arduino e comunicao via Bluetooth Conhecer o cdigo do projeto Entender as funes e variveis constantes no cdigo do projeto

Este projeto emprega um aplicativo Android simples (Figura 1-1) e um rob controlado por Arduino, que usa um mdulo Bluetooth de baixo custo (Figura 1-2). Os Arduinos so placas de microcontrolador muito populares que apresentam diversas vantagens, entre as quais se destacam: So fceis de programar a partir de um computador Windows, Linux ou Mac. Muitos shields so facilmente encaixados em cima da placa do Arduino. No so caros.
Figura 1-2 Um rob Bluetooth.

Todo o software do projeto pode ser acessado em www.duinodroid.com (clique em Arduino and Android Projects for the Evil Genius).

Construo
A Figura 1-3 mostra o diagrama esquemtico do projeto. Os motores de acionamento do rob so controlados por um shield de motor, e o mdulo Bluetooth instalado na rea de prottipos do shield, o que torna muito simples a realizao do projeto, havendo poucas soldas a serem feitas.

O que ser necessrio


Para realizar o projeto, alm de um celular Android com Bluetooth (Android 2.1 ou posterior), voc precisar dos componentes listados na tabela Lista de Componentes, a seguir. Este projeto usa o Arduino Uno. O site oficial do Arduino (www.arduino.cc) oferece uma relao de fornecedores do Uno. Entretanto, se quiser economizar, voc poder usar um clone do Arduino Uno. O hardware do Arduino open-source, isto , todos os arquivos de projeto esto disponveis sob uma licena Creative Commons, permitindo que outros fabricantes produzam os seus prprios Arduinos. Muitos o fazem, e uma busca na Internet fornecer alternativas de menor custo para o Uno oficial. No mercado, h muitos tipos diferentes de mdulos Bluetooth. O mdulo usado aqui bem simples, com apenas quatro pinos para conexes de alimentao eltrica, recepo e transmisso. Esses mdulos trabalham com 5V e so ideais para funcionar com um Arduino. Geralmente, so construdos em uma placa-base de quatro pinos sobre a qual montada uma placa ainda menor, que contm o mdulo Bluetooth propriamente dito. Podem ser comprados no Ebay por uns US$ 15. melhor comprar um no qual a placa menor j est soldada na placa principal porque as conexes so muito curtas e de soldagem difcil. Verses melho-

Projetos com Arduino e Android

Figura 1-1 Um aplicativo de controle remoto.

10

GND Celular Android

Bateria de 6V

+ 6V

Arduino Uno Bluetooth

Mdulo Bluetooth

Rx Tx

Tx Rx GND Vcc 5V

Shield de Motor 1 2 3 4 + Motor Direito

+ Esquerdo Motor

Figura 1-3 O diagrama esquemtico.

res e mais caras esto disponveis em fornecedores como Sparkfun, dentro da linha Bluesmirf. A diferena entre os mdulos de baixo custo e os mais caros est na distncia alcanada pela transmisso. Os motores com engrenagens da empresa Pololu so ideais para esse tipo de aplicao. Apresentam uma caixa de reduo com a relao correta e no so caros. Motores alternativos esto disponveis, mas no compre motores que consomem mais do que 1 ampere. Se esse valor for excedido, possvel que o shield do motor no consiga fornecer a corrente necessria. Com esse shield, todo o processo de acionamento dos motores fica bastante simplificado. Alm disso, esse shield apresenta uma pequena rea para prottipo em um dos lados, na qual voc pode acrescentar os seus prprios componentes extras. No

nosso caso, esse o local onde o mdulo Bluetooth ser instalado. Na lista de componentes, o kit de shield especificado o bsico, vindo sem as barras de pino macho nem os conectores KRE. Esse shield tambm est disponvel como um kit que contm as barras de pino macho e os conectores KRE. Veja o site da Sparkfun para conhecer os detalhes.
Rob Bluetooth

Alm desses componentes, voc precisar tambm das seguintes ferramentas.


CAIXA DE FERRAMENTAS

Uma furadeira eltrica com brocas Uma serra de arco ou uma ferramenta Dremel Um computador para programar o Arduino Um cabo de conexo USB do tipo A-B Uma pistola para cola a quente ou cola epxi

11

captulo 1

LISTA DE COMPONENTES
Componente
Arduino Uno Ardumoto Mdulo BT Barra de pino macho * para PCB

Quantidade
1 1 1 1

Descrio
Placa de Arduino Uno Shield Ardumoto de motor Mdulo Bluetooth TTL Bluesmirf ou equivalente Barra dividida em duas sees de seis pinos e duas sees de oito pinos. Tambm conhecida simplesmente como alojamento ou como barra de pinos para placa de circuito impresso. Conector KRE de 2 vias com espaamento de 3,5mm Motor pequeno com engrenagens de plstico e reduo 120:1 Chave miniatura SPST (um polo, uma posio) Suporte para 4 pilhas AAA com terminais Caixa de plstico, 135 x 80 x 30mm Rodas com aproximadamente 50 mm de dimetro Rodzio pequeno

Fornecedor
www.arduino.cc Sparkfun: DEV-09815 eBay, Sparkfun Farnell: 1097954

Conector KRE Motores com engrenagens Chave Suporte de pilha Caixa Rodas Rodzio

3 2 1 1 1 2 1

Farnell: 1217302 Pololu: 1125 Farnell: 1661841 Farnell: 1650687 Lojas de hobby Lojas de ferragem

* N. de T.: Printed Circuit Board, ou seja, Placa de Circuito Impresso.

Passo 1: solde as barras de pino macho no Shield


O primeiro passo soldar as barras de pino macho no shield de motor. A Figura 1-4 mostra a parte de baixo do shield com as barras de pino macho soldadas. Provavelmente, as suas barras de pino macho viro em uma pea nica comprida que deve ser cortada em sees de comprimento correto. Ser necessrio que voc corte dois pedaos de seis pinos e dois de oito pinos.
Projetos com Arduino e Android

remove o shield da placa do Arduino e solda os demais pinos no shield. Quando todos os pinos estiverem no lugar, a parte de cima do shield ficar como mostrado na Figura 1-5.

A melhor forma de manter as barras de pino macho alinhadas corretamente manter os pinos encaixados nas respectivas barras fmeas na placa do seu Arduino enquanto voc solda os pinos no shield. Entretanto, isso aquecer o plstico das barras fmeas, podendo amolec-lo e tirar os pinos do alinhamento. Assim, voc pode soldar rapidamente os pinos ou simplesmente soldar os pinos das extremidades de cada seo, de modo que a barra mantenha-se no local correto. A seguir, voc

Figura 1-4 O shield de motor com as barras de pino macho soldadas.

12

Passo 3: instale o mdulo Bluetooth


A Figura 1-7 mostra o mdulo Bluetooth soldado juntamente com a fiao. Antes de instalar o mdulo Bluetooth, curve cuidadosamente os pinos com um alicate de modo que a placa fique paralela em relao ao shield. Comece soldando no lugar apenas o mdulo. Em seguida, solde os quatro fios conforme a lista abaixo: +5V do mdulo Bluetooth ao +5V do shield GND do mdulo Bluetooth ao GND do shield
Figura 1-5 O lado de cima do shield de motor.

TXD do mdulo Bluetooth ao RX do shield RXD do mdulo Bluetooth ao TX do shield Observe o cruzamento dos fios de transmisso e recepo entre o Arduino e o mdulo Bluetooth. Essa foi a parte de eletrnica. Agora trataremos da construo do hardware do rob.

Passo 2: instale os conectores KRE no Shield


Os conectores KRE so instalados perto dos canais A e B dos motores. Usaremos tambm um conector KRE para a alimentao eltrica porque ser mais fcil fazer a conexo desse modo do que usando o jack principal de 2,1mm do Arduino. Solde os quatro conectores KRE no lugar, com os orifcios de conexo voltados para fora do shield. A Figura 1-6 mostra o shield com os conectores KRE soldados e o shield encaixado em um Arduino.

Passo 4: instale os motores e o suporte de pilhas na caixa do rob


A Figura 1-8 mostra a posio dos motores. As caixas de engrenagens dos motores so coladas no interior da caixa do rob.

Figura 1-6 O shield com os conectores KRE soldados.

Figura 1-7 O shield completo.

13

captulo 1

Rob Bluetooth

Figura 1-8 Os motores e o suporte de pilhas colados no interior da caixa.

Os motores e o suporte das pilhas so fixados na parte de baixo da caixa em ambas as extremidades, deixando espao no meio para o Arduino e o shield.

Passo 6: fiao final


Usando conectores KRE, a fiao pode ser feita facilmente. A Figura 1-10 mostra o diagrama de fiao, e a Figura 1-11 mostra uma foto do interior do rob. Os passos da fiao so: 1. Solde fios nos terminais dos motores. Esses fios devem ser suficientemente longos para serem conectados facilmente nos conectores KRE que foram instalados no shield de motor. 2. Solde um fio diretamente desde o terminal negativo (conector KRE) da alimentao eltrica do shield at o terminal negativo do suporte das pilhas. 3. Solde um fio mais longo desde o terminal positivo do suporte de pilhas at o terminal central da chave.

Passo 5: corte a parte de baixo da caixa e instale o rodzio


Projetos com Arduino e Android

A Figura 1-9 mostra como a parte de baixo da caixa recortada para permitir que os motores e suas caixas de engrenagens se sobressaiam da caixa. Tambm uma boa ideia fazer um furo prximo do mdulo Bluetooth para ver se o LED do mdulo est piscando ou no. A caixa que usamos foi aproveitada de um projeto anterior e tinha diversos furos. Isso no ruim porque permite ventilao. O rodzio simplesmente o menor que conseguimos em uma loja de ferragem. Ele colado diretamente na parte de baixo da caixa.

14

Figura 1-9 A parte de baixo da caixa.

4. Solde uma das extremidades de um fio mais curto em um dos lados da chave (no importa qual) e fixe a outra extremidade do fio no ter-

minal positivo (conector KRE) da alimentao eltrica do shield.

Figura 1-10 O diagrama de fiao.

15

captulo 1

Rob Bluetooth

Figura 1-11 O interior do rob.

Passo 7: teste dos motores


Antes de ir adiante e fazer a conexo com o mdulo Bluetooth, precisamos primeiro preparar o nosso ambiente Arduino para instalar o programa de teste dos motores. A placa de Arduino utilizada por ns (Arduino Uno) usa um ambiente de desenvolvimento especial que permite enviar os programas, ou sketches, como so conhecidos no mundo do Arduino, para a placa por meio de um cabo USB.
Projetos com Arduino e Android

Depois que o ambiente Arduino estiver preparado, voc precisar instalar o sketch de teste do projeto. Esse e todos os demais sketches dos projetos deste livro esto disponveis em um nico arquivo zip que pode ser baixado de www.duinodroid.com (clique em Arduino and Android Projects for the Evil Genius). Descompacte o arquivo zip e mova toda a pasta Arduino Android para a sua pasta de sketches. No Windows, a sua pasta de sketches estar em Meus Documentos/Arduino. No Mac, voc a encontrar em Documents/Arduino/ e, no Linux, estar no diretrio Sketchbook. Depois de instalar a biblioteca, inicie novamente o software Arduino. A seguir, no menu File (arquivo), selecione sketches (ou SketchBook), seguido de Arduino Android, e ento ch01_motor_test. Isso abrir o sketch de teste dos motores, como mostrado na Figura 1-12. Antes de realmente fazer funcionar os motores, talvez seja necessrio alterar o valor de motorVolts

Precisamos fazer a instalao do ambiente Arduino. As instrues esto disponveis no site oficial do Arduino (www.arduino.cc). Voc dever segui-las para instalar o ambiente Arduino em seu computador. Nesse site, voc encontrar instrues separadas para Windows, Linux e Mac. Neste livro, utilizamos uma placa de interface Arduino Uno e a verso 22 do software Arduino. Entretanto, se voc quiser usar verses posteriores de Arduino, voc no dever encontrar problema.

16

Figura 1-12 O sketch de teste dos motores.

localizado no incio do sketch. Faa esse valor ser igual tenso mxima de seus motores. Voc precisar alterar esse valor se ele for diferente do valor da tenso dos motores da marca Pololu. Esses motores tm tenso nominal de 4,5V, mas trabalham bem tambm com 5V. O mdulo Bluetooth utiliza os pinos Rx e Tx do Arduino que tambm so usados pela interface. Assim, se o shield estiver conectado, ns no poderemos programar o Arduino. Portanto, ser necessrio desinstalar o shield temporariamente. Conecte a sua placa de Arduino ao computador usando o cabo USB. Precisamos dizer ao software Arduino qual o tipo de placa que estamos usando. Para definir a placa usada, v at o menu Tools (ferramentas) e selecione a opo Board (placa). Isso lhe dar uma lista semelhante da Figura 1-13. Selecione a opo correspondente ao tipo de placa que voc est usando (Arduino Uno). A seguir, devemos fazer algo semelhante com a Serial Port (porta serial), que tambm faz parte do menu

Tools. Geralmente, a opo ser a que est no topo da lista de portas (COM4, no Windows). Agora, estamos prontos para transferir o sketch para a placa. Para isso, devemos clicar no cone Upload (segundo a partir da direita na barra de ferramentas). Se aparecer uma mensagem de erro, confira o tipo de placa que voc est usando e a conexo. Depois de programar o Arduino com o sketch de teste dos motores, desconecte o cabo USB e reinstale o shield. Ligue a chave. Agora, os motores devero passar pela sequncia de teste. Ambos os motores para trs Girar no sentido horrio Girar no sentido anti-horrio Pausa de cinco segundos Se os motores no estiverem funcionando, verifique a fiao. Se um dos motores estiver indo para frente quando deveria estar indo para trs, inverta os fios nos conectores KRE desse motor.
Rob Bluetooth

Ambos os motores para a frente

17

captulo 1

Figura 1-13 Selecionando o tipo de placa Arduino.

Passo 8: instale o sketch de Arduino


At agora, tudo est indo muito bem. A seguir, vamos para o prximo passo da instalao do sketch dos motores, os quais recebero comandos via Bluetooth. O aplicativo Android usa uma tecnologia denominada Amarino (www.amarino-toolkit.net). Essa tecnologia aberta (open-source) simplifica grandemente o desenvolvimento de aplicaes com Arduino e Bluetooth. Ela tem duas partes: uma biblioteca, que deve ser instalada no seu ambiente Arduino, e um aplicativo para o celular Android. Para instalar a biblioteca, v at a pgina de downloads no site Amarino (www.amarino-toolkit. net/index.php/download.html) e ento clique em MeetAndroid Arduino Library. Transfira o arquivo zip, descompacte-o e mova a pasta descompac-

tada para a pasta libraries (bibliotecas) do Arduino. No Windows, a pasta libraries estar em Meus Documentos/Arduino. No Mac, voc a encontrar em Documents/Arduino/ e, no Linux, estar no diretrio Sketchbook. Se a pasta libraries no estiver presente no seu Arduino, ento voc dever cri-la*. Depois, reinicie o software Arduino. Desligue a chave do rob e retire a placa do Arduino. A seguir, abra o sketch ch01_droid_droid no seu software Arduino. Antes de transferi-lo para a placa, algumas alteraes podero ser necessrias. Primeiro, se voc est usando motores diferentes, altere o valor de motorVolts. Segundo, veja a documentao do seu mdulo Bluetooth e verifique qual a velocidade de comunicao com o Arduino. Frequentemente 9600, mas pode ser mais elevada em alguns mdulos.
* N. de T.: A pasta deve ser criada com o nome em ingls: libraries.

Projetos com Arduino e Android

18

Finalmente, voc pode transferir o sketch para a placa do mesmo modo que voc fez com o sketch de teste. Se houver erros de compilao, provavelmente ser porque a pasta com a biblioteca Amarino no est no lugar certo. Desconecte o cabo USB da placa Arduino e reinstale o shield. Agora, chegamos ao ponto emocionante!

No celular utilizado aqui, a sequncia de passos : abrir Configuraes (Config.), navegar at Gerenciador de Aplicaes e ativar a opo Fontes Desconhecidas, como mostrado na Figura 1-14. No seu celular, a sequncia para chegar at Fontes Desconhecidas poder ser ligeiramente diferente. O manual do celular pode ser consultado. Para usar o aplicativo do rob, devemos primeiro instalar o aplicativo de uso geral Amarino, que permitir manipular os nossos dispositivos Bluetooth. Ele pode ser baixado do site Amarino. Para isso, use o navegador de Web do seu dispositivo Android e v at www. amarino-toolkit.net/index.php/download.html. Ento, clique em Amarino Android Application. Para instalar o aplicativo de controle do rob, abra o navegador de Web do seu dispositivo Android e v at www.duinodroid.com. Clique em Download e ento no aplicativo DroidDroid.

Passo 9: instale o aplicativo Android


Diferentemente do iPhone, voc pode baixar os seus aplicativos Android de qualquer lugar que desejar. Entretanto, isso significa que voc deve ser cuidadoso e verificar antes se no ir baixar algo perigoso de um dado site. Aps, voc dever programar o seu dispositivo Android para receber aplicativos de qualquer lugar.

Passo 10: ponha em funcionamento!


Antes de executar o aplicativo DroidDroid, precisamos usar o aplicativo Amarino (Figura 1-15). Ligue o rob. Voc dever ver o LED do mdulo Bluetooth piscando. Isso indica que o mdulo ainda no est conectado a outro dispositivo. O aplicativo Amarino permitir que ns o conectemos ao seu celular. No menu principal mostrado na Figura 1-15, clique no boto Acrescente dispositivo BT (Add BT Device). Voc ver uma lista de dispositivos Bluetooth (BT) que esto ao alcance. Selecione o seu dispositivo nessa lista. Isso far que voc volte pgina anterior na qual agora o seu dispositivo aparecer includo na lista de dispositivos. Ao clicar em Conecte (Connect), ter incio o processo de conexo. Voc dever fornecer uma senha para o mdulo Bluetooth. Provavelmente, ser 1234, mas tambm poder ser 1111. Consulte a documentao do mdulo Bluetooth. Quando a conexo estiver estabelecida, a luz de pisca-pisca dever se tornar constante. Anote o identificador ID
Rob Bluetooth

Figura 1-14 Alterando as configuraes Android para permitir a instalao.

19

captulo 1

Figura 1-16 Ajustando o ID do dispositivo.

de qualquer aperfeioamento que voc venha a fazer no software. Voc pode nos contatar em www. duinodroid.com.
Figura 1-15 O Aplicativo Amarino.

de Bluetooth do dispositivo. um nmero de seis partes com dois pontos separando cada par de dgitos. Esse ID ser utilizado logo a seguir. Inicie o aplicativo DroidDroid (Figura 1-16). A seguir, fornea o ID de Bluetooth do dispositivo que voc anotou h pouco quando estava no aplicativo Amarino. Quando voc clicar em Set Device ID, sero exibidos os controles principais (ver Figura 1-1).
Projetos com Arduino e Android

A seguinte descrio supe que voc j conhece a linguagem C utilizada na programao com o Arduino. Se voc quiser aprender mais sobre a programao do Arduino, deve consultar o livro Programao com Arduino: comeando com sketches, de Simon Monk, publicado pela Bookman Editora. A listagem do sketch a seguinte:

Ao mover os controles para cima e para baixo, os motores esquerdo e direito do seu rob sero acionados.

Teoria
O software deste e dos demais projetos do livro so abertos (open source), ento voc pode melhor-los se desejar. Gostaramos muito de ter notcias

#include <MeetAndroid.h> #define supplyVolts 6 #define motorVolts 5 #define baudRate 9600 MeetAndroid phone; int left = 255; // ponto mdio int right = 255; int pwmLeftPin = 3; int pwmRightPin = 11; int directionLeftPin = 12; int directionRightPin = 13; void setup() { pinMode(pwmLeftPin, OUTPUT);

20

pinMode(pwmRightPin, OUTPUT); pinMode(directionLeftPin, OUTPUT); pinMode(directionRightPin, OUTPUT); setMotors(); // ajuste a taxa de bauds usada para // configurar o seu mdulo Bluetooth Serial.begin(baudRate); phone.registerFunction(setLeft, l); phone.registerFunction(setRight, r); } void loop() { phone.receive(); } void setLeft(byte ignore, byte count) { int value = phone.getInt(); left = value; setMotors(); } void setRight(byte ignore, byte count) { int value = phone.getInt(); right = value; setMotors(); } void setMotors() { int vLeft = abs(left 255) * motorVolts / supplyVolts; int vRight = abs(right 255) * motorVolts / supplyVolts; int dLeft = (left > 255); int dRight = (right > 255); if (vLeft < 50) { vLeft = 0; } if (vRight < 50) { vRight = 0; } analogWrite(pwmLeftPin, vLeft); analogWrite(pwmRightPin, vRight); digitalWrite(directionLeftPin, dLeft); digitalWrite(directionRightPin, dRight); }

O sketch comea com trs constantes. Os valores de supplyVolts (tenso de alimentao) e motorVolts (tenso dos motores) so usados para ajustar a tenso fornecida aos motores. Assim, se voc adaptar o projeto para funcionar com motores e pilhas diferentes, voc precisar alterar esses valores. A varivel baudRate (taxa de bauds) deve ser a usada pelo mdulo Bluetooth na comunicao com o Arduino. A interface com o celular est inteiramente contida na biblioteca MeetAndroid. Para ter acesso, voc deve criar uma instncia dela nesse caso, denominada phone. As variveis left (esquerdo) e right (direito) so usadas para ajustar a velocidade de cada motor. Elas tm um valor mdio (central) de 255, significando que, em 255, o motor est parado, em 511, est plena velocidade para frente e, em 0, est plena velocidade para trs. As quatro variveis seguintes definem os pinos usados pelos motores. Os pinos so definidos pelo shield do motor e, portanto, no podem ser mudados. Cada motor controlado por dois pinos. O pino pwm (power motor) controla a velocidade do motor: 0 parado, 255 velocidade mxima. O pino direction (direo)* altera o sentido de rotao do motor, 1 sendo para frente e 0 para trs. A funo setup (inicializao) define quais so os modos apropriados de cada pino (pinMode) e d incio (begin) ao funcionamento da porta serial (Serial.begin). Define tambm duas funes de comando dos motores setLeft e setRight que sero chamadas sempre que o sketch receber uma mensagem do celular Android para aplicar uma nova velocidade aos motores atravs das letras de comando l (left) ou r (right) dos motores esquerdo e direito, respectivamente.
* N. de T.: Os termos pwm e direction esto combinados com outros para formar os nomes das variveis. Por exemplo, pwmLeftPin refere-se ao pino que aciona o motor esquerdo, e directionRightPin refere-se ao pino que controla o sentido de rotao do motor direito.

21

captulo 1

Rob Bluetooth

Tudo o que realmente precisamos na funo loop (lao de repetio contnua) chamar a funo receive (receber) da biblioteca MeetAndroid. Ela verifica se h alguma mensagem chegando e chama as funes adequadas de comando dos motores. Essas duas funes de comando so responsveis pela atribuio de novos valores s variveis left e right. Os parmetros passados s funes de comando dos motores podem ser ignorados. Para obter os valores enviados pelo celular, as funes de comando dos motores usam a funo getInt. A funo setMotors calcula os valores adequados das sadas analgicas ajustando-os para levar em considerao a diferena entre a tenso de alimentao e a tenso do motor. Tambm calcula o sentido de rotao de cada motor e define os valores adequados de sada.

private void updateLeft() { Amarino.sendDataToArduino(this, DroidDroid.DEVICE_ADDRESS, l, (511 left)); }

A interface muito simples. Voc simplesmente chama o mtodo sendDataToArduino (enviar dados para o Arduino). O primeiro argumento a instncia Android Activity (pense tela), e o segundo argumento o Bluetooth ID (identificao do Bluetooth). O prximo parmetro um caractere que pode ser l (left) ou r (right). Esses caracteres so enviados ao Arduino para chamar a respectiva funo que comanda cada um dos motores. O argumento final o valor inteiro enviado ao Arduino, que pode estar entre 0 e 511.

O aplicativo Android
O aplicativo Android a parte mais complexa do projeto. S para aprender a programao Android seria necessrio um livro inteiro. Muitos desses livros esto disponveis e podem ser consultados. Contudo, podemos ao menos conhecer o trecho do cdigo que envia o valor ao Arduino.

Resumo
Essa a primeira de uma srie de coisas divertidas que voc poder fazer com o seu celular. No prximo captulo, usaremos a nova tecnologia ADK do Google para criar um acessrio contador Geiger para o nosso celular Android.

Projetos com Arduino e Android

22

Você também pode gostar