Circuits

Com construir un robot - Lliçó 7: Construir un robot Arduino controlat per Bluetooth: 14 passos

🔴CÓMO HACER un ROBOT con INTELIGENCIA ARTIFICIAL CASERO: MATERIAL NECESARIO

🔴CÓMO HACER un ROBOT con INTELIGENCIA ARTIFICIAL CASERO: MATERIAL NECESARIO

Taula de continguts:

Anonim

Com el robot Arduino és capaç de realitzar les funcions bàsiques, ara ho actualitzem amb una característica més: el control romote mitjançant Bluetooth.

Igual que l’altre "How to Build a Robot" tutorials, es fa servir com a exemple un kit de robots Arduino (Pirate: Kit de robot mòbil Arduino 4WD amb Bluetooth 4.0). A més, també necessitem l'ajut de GoBLE (un controlador genèric APP BLE) que us permetrà connectar i controlar robots, plataformes mòbils, drons o qualsevol altra cosa, com ara un vehicle aeri no tripulat (uav) amb els vostres dispositius mòbils a través de Bluetooth.

Menú de lliçons:

Lliçó 1: Introducció

Lliçó 2: Construir un robot Arduino bàsic

Lliçó 3: Construir un robot de seguiment de línies Arduino

Lliçó 4: Construir un robot Arduino que pugui evitar els obstacles

Lliçó 5: Construir un robot Arduino amb efectes de so i llum

Lliçó 6: Construir un robot Arduino que pugui controlar el medi ambient

Lliçó 7: Construïu un robot Arduino controlat per Bluetooth

Preparació

iPhone o iPad × 1

GoBLE APP × 1

Subministraments:

Pas 1:

Nota: Actualment, el GoBLE només es podria utilitzar en dispositius iOS i us demanaria que instal·lés iOS 8.1 com a mínim.

Per a usuaris d'iOS: descarregueu-vos GoBLE des de l'App Store.

Pas 2:

Carregueu el codi de proves

Connecteu el Romeo BLE amb l’ordinador. El codi de prova "GoBLE_Test.ino" es pot trobar al paquet de programari. Us permet comprovar la sortida del senyal dels vostres dispositius. DESCARREGA'L I COMPROVEU-TE. No us oblideu de carregar la biblioteca GoBLE abans de descarregar el codi de prova.

Pas 3:

Prova de Bluetooth

Ara comencem l’aparella de Bluetooth. Activeu el bluetooth del mòbil i, a continuació, obriu l’aplicació GoBLE. La vostra pantalla es veuria així!

Pas 4:

Feu clic a la tecla de cerca Bluetooth (sembla una lupa vermella). A continuació, trieu un dels dispositius Bluetooth que correspongui al nom de Romeo BLE. Feu clic a la UUID i començaran a aparellar-se.

Pas 5:

Un cop connectat, el color de la tecla de cerca Bluetooth canviarà de vermell a verd.

Pas 6:

Al mateix temps, es posarà en marxa el LINK dirigit al tauler, que significa que el vostre iPhone s'ha connectat al Romeo BLE (targeta de control Arduino Robot amb Bluetooth 4.0).

Pas 7:

Ara provem si el controlador pot rebre correctament el senyal del vostre iPhone. Torneu a la interfície IDE d'Arduino i feu clic al monitor sèrie a la cantonada superior dreta.

Pas 8:

Es mostraria un diàleg com es mostra a la imatge següent. En primer lloc, la velocitat de transmissió del port sèrie s'ha de configurar com a 115200, ja que es mostra al cercle vermell de sota.

Pas 9:

Ara podeu treure l’iPhone i llençar aleatòriament el joystick virtual o fer clic al botó de la pantalla. Si no hi ha cap altra cosa, veureu el valor corresponent al monitor sèrie. I el valor del joystick al Serial Monitor es canviarà quan passeu el joystick virtual a la pantalla. Trobareu que el valor augmenta quan el joystick es desplaça cap amunt o que el valor disminueix quan el joystick es passa el dit cap avall.

L'identificador del botó significa quin botó feu clic.

Pas 10:

Carregueu el codi per al control remot

Si tot està bé, continuem i carreguem el codi per controlar remotament a la placa Arduino. Hi ha un punt molt clau per mantenir-vos en ment.

El vostre iPhone ja s'ha connectat a Romeo BLE Board en l'última fase de proves. Tanmateix, no es pot carregar el codi a la placa Romeo BLE quan s'ha establert el Bluetooth entre el telèfon i el tauler. Per tant, primer haureu de BREAK OFF l’aparella Bluetooth. A més, podeu tornar a carregar el codi si la placa s'ha desconnectat del telèfon. AIX ÉS MOLT IMPORTANT!

Hi ha dos mètodes per interrompre la connexió. Una manera és que simplement podeu apagar l’alimentació Remeo BLE i tornar-la a engegar. L’altra forma és que tanqueu el Bluetooth del telèfon.

Després de desconnectar, podeu tornar a carregar el codi d’exemple. El codi es denomina GoBLE_APP.ino al paquet de codi.

Pas 11:

Un cop carregat correctament, podeu seguir la fletxa vermella de la imatge següent i lliscar el joystick per controlar el vostre robot. També podeu fer clic al botó vermell per encendre o apagar el LED del tauler que està connectat amb el PIN13.

Pas 12:

Sinopsi de codi

Després de reproduir el robot, comencem a aprendre a utilitzar el codi. No hi ha més paraules per al codi de proves de la prova de GoBLE. A continuació, anem a passar a l’aplicació GoBLE.

No hi ha necessitat de discutir el codi bàsic: només cal que mireu la part que implica el control de bluethooth. Si voleu controlar remotament el robot, s’utilitzaran dues biblioteques anomenades Metro i GoBLE.

#include "Metro.h"

#include "GoBLE.h"

int joystickX, joystickY;

int buttonState 6;

joystickX, joystickY i buttonState 6, tres variables, es defineixen per a la biblioteca GoBLE. S'utilitzen per emmagatzemar el valor d'estat per a l'eix X, l'eix Y i els valors de sis botons.

El mapa següent mostra el disseny de tots els botons. És possible que conegueu els significats de + X, -X, + Y i –Y si heu analitzat el canvi dels valors de l’estat.

X & Y són les direccions de moviment del joystick. "+, -" mostren les tendències del valor. "+" Significa que el valor de l'estat augmenta. I "-" significa que el valor de l'estat disminueix.

Pas 13:

El paràmetre inicial s’ha d’escriure en la funció de Configuració ().
Goble.begin ();

Aquesta línia s’utilitza per iniciar la configuració del bluetooth. I no es pot perdre quan feu servir el codi Bluetooth al tauler.

Serial.begin (115200);

De fet, aquesta línia s’ha utilitzat en l’etapa de proves. S'utilitza per iniciar el port sèrie. Si voleu llegir el valor del monitor sèrie, heu d’escriure aquesta declaració a la funció de configuració. I, també necessiteu establir la velocitat de transmissió.

Com que la velocitat de transmissió de Bluetooth és especial, heu de configurar-la a 115200. Assegureu-vos que la velocitat de transmissió ha estat configurada, en cas contrari, pot causar alguns problemes.

Continua mirant cap avall. La següent línia és la funció de Goble.available ()

si (Goble.available ()) {fer alguna cosa; }

És a dir, quina és la següent acció quan es rep la figura a través de Bluetooth.

El que s’escriu entre parèntesis serà la nostra següent acció. En primer lloc, hem d’analitzar la xifra rebuda. La següent declaració dos és llegir el valor en eixos X i Y.

joystickX = Goble.readJoystickX ();

joystickY = Goble.readJoystickY ();

// Serial.print ("joystickX:");

// Serial.print (joystickX);

// Serial.print ("joystickY:");

// Serial.println (joystickX);

Endevineu què signifiquen les quatre declaracions de Serial.print (). Està relacionat amb la sèrie. Per a la sèrie, s’ha d’imprimir les dades rebudes, cosa que resulta convenient per a la depuració de codi i l'optimització.

"//" significa anotació del contingut següent. Aquestes quatre frases no s’inclouran en compilar el codi. És a dir, no s’enviarà cap dada a la sèrie una vegada que utilitzem l’anotació d'aquestes quatre declaracions.

Consulteu la pàgina de referència del lloc web Arudino (www.arduino.cc) per obtenir més informació.

buttonState SWITCH_UP = Goble.readSwitchUp ();

buttonState SWITCH_DOWN = Goble.readSwitchDown ();

buttonState SWITCH_LEFT = Goble.readSwitchLeft ();

buttonState SWITCH_RIGHT = Goble.readSwitchRight ();

buttonState SWITCH_SELECT = Goble.readSwitchSelect ();

buttonState SWITCH_START = Goble.readSwitchStart ();

Tots els continguts anteriors s’utilitzen per carregar la informació sobre l’estat dels botons.

La disposició dels botons és la següent.

SWITCH_UP - 1 SWITCH_RIGHT - 2

SWITCH_DOWN - 3

SWITCH_LEFT - 4

SWITCH_SELECT - 5

SWITCH_START - 6

Pas 14:

Hem de processar totes les dades llegides abans de començar a utilitzar-les.

El valor llegit al joystick s’ha de mapar a la velocitat de rotació de les rodes del nostre robot. Així, la velocitat de rotació de les rodes és entre -255 i 255.

int SpeedX = 2 * joystickX-256;

int SpeedY = 2 * joystickY-256;

Serial.print ("Velocitat:");

Serial.print (SpeedX);

Serial.print ("");

Serial.println (SpeedY);

També la sèrie seria imprimir la velocitat. Si no és necessari, podeu afegir "//" al principi per eliminar-lo.

Ara controlem el robot i ho moguem.

Si (moveu el joystick cap amunt o (||) cap avall) {Robot moure cap endavant o cap enrere; }

Si (moveu el joystick cap a la dreta o (||) a l'esquerra) {Robot moure cap a la dreta o cap a l'esquerra}

Si (l'eix X del joystick es manté al centre i (&&) l'eix Y del joystick al centre) {Robot es deté; }

Els codis de corresponsals són els següents:

si (SpeedX> 200 || SpeedX <-200) {LeftWheelSpeed ​​= SpeedX; RightWheelSpeed ​​= SpeedX; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed); }

else if (SpeedY> 200 || SpeedY <-200) {LeftWheelSpeed ​​= SpeedY-80; RightWheelSpeed ​​= SpeedY-80; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed);}

else if (SpeedX == 0 && SpeedY == 0) {Robot.Speed ​​(0,0); }

L’últim codi s’utilitza per controlar el LED del tauler connectat al PIN13.

int ledPin = 13;

El pin 13 s'hauria de definir al principi del codi.

PINMode (ledPin, OUTPUT);

Configureu el mode de sortida per a LED escrivint la funció de setup (). Consulteu la instrucció per a la funció de pinMode () al lloc web Arduino (www.arduino.cc).

Les expressions següents mostren l’estat dels botons. Un cop premut el botó No.1, el LED estaria encès. És a dir, el pin LED està configurat com a HIGH.

if (buttonState 1 == PRESSED) {digitalWrite (ledPin, HIGH); }

Un cop alliberat el botó núm. 1, el LED s'apagarà. És a dir, el pin LED està establert com a BAIX.

if (buttonState 1 == RELEASED) {digitalWrite (ledPin, LOW); }

Això és tot per a la codificació d’aquest dia. No és divertit? Per tant, no és impossible escriure codi per a vostè, oi? Podeu intentar canviar un botó per controlar la llum LED modificant el codi. Sens dubte, és més interessant que pugueu controlar-lo amb el vostre codi. Ara, INICI AMB EL TEU robot !!!