Krugovi

Kako izgraditi robota - Lekcija 7: Izgraditi Arduino robot s kontrolom Bluetootha: 14 koraka

Сборка робота Robot Car с видео камерой и Wi Fi с контроллером, совместимым со средой Arduino

Сборка робота Robot Car с видео камерой и Wi Fi с контроллером, совместимым со средой Arduino

Sadržaj:

Anonim

Kako Arduino robot može obavljati osnovne funkcije, sada ga nadograđujemo s još jednom značajkom - romote kontrolom putem Bluetootha.

Kao i drugi "Kako izgraditi robotske tutoriale", ovdje se kao primjer koristi Arduino robotski komplet (Pirate: 4WD Arduino Mobile Robot Kit s Bluetoothom 4.0). Osim toga, trebamo i pomoć GoBLE-a (Generički BLE APP kontroler) koji vam omogućuje povezivanje i kontrolu robota, mobilnih platformi, trutova ili bilo čega drugog, kao što je bespilotna letjelica (uav) s vašim mobilnim uređajima putem Bluetootha.

Izbornik Lekcije:

Lekcija 1: Uvod

Lekcija 2: Izgradite osnovni Arduino robot

Lekcija 3: Napravite Arduino robot za praćenje linija

Lekcija 4: Izgradite Arduino Robot koji bi mogao izbjeći prepreke

Lekcija 5: Izgradite Arduino robot sa svjetlosnim i zvučnim efektima

Lekcija 6: Izgradite Arduino robot koji bi mogao pratiti okoliš

Lekcija 7: Izgradite Arduino Robot koji kontrolira Bluetooth

priprema

iPhone ili iPad × 1

GoBLE APP × 1

Pribor:

Korak 1:

Napomena: Trenutno se GoBLE može koristiti samo na iOS uređajima i traži od vas da instalirate iOS 8.1.

Za korisnike iOS-a: preuzmite GoBLE iz App Store-a.

Korak 2:

Prenesite kôd testiranja

Povežite Romeo BLE s računalom. Kod testiranja "GoBLE_Test.ino" možete pronaći u softverskom paketu. Omogućuje vam provjeru izlaznog signala s uređaja. PREUZMITE IT & CHECK IT OUT. Ne zaboravite umetnuti GoBLE biblioteku prije preuzimanja testnog koda.

Korak 3:

Bluetooth test

Sada započnimo Bluetooth uparivanje. Uključite mobilni Bluetooth, a zatim otvorite aplikaciju GoBLE. Vaš će zaslon izgledati ovako!

Korak 4:

Kliknite tipku za pretraživanje Bluetootha (izgleda kao crveno povećalo). Zatim odaberite jedan od Bluetooth uređaja koji odgovara nazivu Romeo BLE. Kliknite UUID i oni će započeti uparivanje.

Korak 5:

Nakon povezivanja, boja Bluetooth tipke za pretraživanje promijenit će se iz crvene u zelenu.

Korak 6:

Istodobno će se uključiti LINK koji se nalazi na ploči, što znači da je vaš iPhone spojen na Romeo BLE (Arduino kontrolna ploča s Bluetoothom 4.0).

Korak 7:

Sada testiramo može li kontroler uspješno primiti signal s vašeg iPhone uređaja. Vratite se na Arduino IDE sučelje i kliknite Serijski monitor u gornjem desnom kutu.

8. korak:

Pojavit će se dijalog kako je prikazan na slici ispod. Prvo, brzina prijenosa serijskog porta mora biti postavljena na 115200 kako je prikazana u crvenom krugu ispod.

9. korak:

Sada možete izvaditi svoj iPhone i nasumice povući virtualnu navigacijsku tipku ili kliknuti gumb na zaslonu. Ako ništa drugo, vidjet ćete odgovarajuću vrijednost na serijskom monitoru. Vrijednost joysticka na serijskom monitoru bit će promijenjena kada povučete virtualnu navigacijsku tipku na zaslonu. Uočit ćete da se vrijednost povećava kada povlačite joystick prema gore ili se vrijednost smanjuje kada se navigacijska palica povuče prema dolje.

ID gumba označava koji gumb kliknete.

Korak 10:

Prenesite kod za daljinsko upravljanje

Ako je sve u redu, nastavimo i učitamo kod za daljinsko upravljanje u Arduino ploču. Postoji jedna ključna točka koju treba zadržati u svom umu!

Vaš iPhone je već priključen na Romeo BLE Board u posljednjoj fazi testiranja. Međutim, ne možete prenijeti kôd na Romeo BLE ploču kada je Bluetooth uspostavljen između telefona i ploče. Stoga najprije trebate BREAK OFF isključiti Bluetooth uparivanje. Osim toga, možete ponovno učitati kôd ako je ploča isključena s telefona. OVO JE VEOMA VAŽNO!

Postoje dvije metode za prekid veze. Jedan od načina je da jednostavno isključite Remeo BLE napajanje, a zatim ga ponovno uključite. Drugi način je da isključite Bluetooth na telefonu.

Nakon prekida veze, možete ponovno učitati primjerni kod. Kôd se naziva GoBLE_APP.ino u paketu koda.

11. korak:

Nakon uspješnog učitavanja, možete slijediti crvenu strelicu na slici ispod i pomaknuti palicu da biste upravljali robotom. Također, možete kliknuti na crveni gumb za uključivanje ili isključivanje LED-a na ploči koja je povezana s PIN13.

12. korak:

Kratki opis

Nakon igranja robota, počnimo učiti kako koristiti kod. Nema više riječi za test kod za GoBLE test. Tada ćemo samo krenuti prema GoBLE APP-u.

Nema potrebe raspravljati o osnovnom kodu - pogledajmo samo dio koji se odnosi na kontrolu plavila. Ako želite daljinski upravljati robotom, koristit će se dvije knjižnice pod nazivom Metro i GoBLE.

#include "Metro.h"

#include "GoBLE.h"

int joystickX, joystickY;

int buttonStanje 6;

joystickX, joystickY i buttonState 6, tri varijable definirane su za GoBLE knjižnicu. Koriste se za pohranu vrijednosti stanja X-osi, Y-osi i vrijednosti šest tipki.

Karta ispod prikazuje raspored svih gumba. Vjerojatno znate značenja + X, -X, + Y i –Y ako ste analizirali promjenu vrijednosti stanja.

X & Y su smjer kretanja upravljačke palice. "+, -" pokazuju trendove vrijednosti. "+" Znači da se vrijednost države povećava. A "-" znači da se vrijednost države smanjuje.

Korak 13:

Početno podešavanje mora biti zapisano u funkciji Setup ().
Goble.begin ();

Ovaj se redak koristi za pokretanje postavljanja Bluetootha. I to se ne može propustiti svaki put kada koristite Bluetooth kod na Vašoj ploči.

Serial.begin (115200);

Zapravo, ova je linija korištena u fazi testiranja. Koristi se za pokretanje serijskog porta. Ako želite pročitati vrijednost iz serijskog monitora, tu naredbu morate napisati u funkciji postavljanja. I, također je potrebno postaviti brzinu prijenosa.

Budući da je brzina prijenosa u Bluetooth-u posebna, trebate postaviti na 115200. Provjerite je li brzina prijenosa podešena, inače može uzrokovati neke probleme.

Nastavite prema dolje. Sljedeći redak je funkcija Goble.available ()

ako (Goble.available ()) {učinite nešto; }

Što znači da je sljedeća radnja nakon što je slika primljena putem Bluetootha.

Ono što je napisano u zagradama bila bi naša sljedeća akcija. Prvo, moramo analizirati dobivenu brojku. Sljedeće dvije izjave su čitanje vrijednosti na X i Y osi.

joystickX = Goble.readJoystickX ();

joystickY = Goble.readJoystickY ();

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

// Serial.print (joystickX);

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

// Serial.println (joystickX);

Pogodite što znače četiri izjave Serial.print () iznad. To se odnosi na serijski. Za serijski ispis primljenih podataka, što je prikladno za otklanjanje pogrešaka i optimizaciju koda.

"//" znači napomenu sljedećeg sadržaja. Ove četiri rečenice neće biti uključene prilikom sastavljanja koda. Naime, serijski se podaci neće slati kada upotrijebimo bilješku za ove četiri izjave.

Za više informacija pogledajte stranicu Referentna stranica Arudino (www.arduino.cc).

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 ();

Svi gore navedeni sadržaji koriste se za učitavanje informacija o stanju gumba.

Raspored gumba je sljedeći.

SWITCH_UP - 1 SWITCH_RIGHT - 2

SWITCH_DOWN - 3

SWITCH_LEFT - 4

SWITCH_SELECT - 5

SWITCH_START - 6

Korak 14:

Moramo obraditi sve podatke pročitane prije nego što ih počnemo koristiti.

Vrijednost očitana na palici mora biti mapirana na brzinu okretanja kotača našeg robota. Tako se pokaže da je brzina vrtnje kotača između -255 i 255.

int SpeedX = 2 * joystickX-256;

int Brzina = 2 * joystickY-256;

Serial.print ("Brzina:");

Serial.print (SpeedX);

Serial.print ("");

Serial.println (brza);

Također serijski će ispisati brzinu. Ako je nepotrebno, možete na početku dodati "//" da biste ga uklonili.

Sada ćemo kontrolirati robota i pokrenuti ga.

Ako (pomaknite joystick gore ili (||) dolje) {Robot se pomiče naprijed ili natrag; }

Ako (pomaknite joystick na desno ili (||) lijevo) {Robot se pomiče udesno ili ulijevo}

Ako (X-os upravljačke palice držite u sredini i (&&) Y-os Joysticka držite u sredini) (Robot se zaustavlja; }

Dopisni kodovi su sljedeći:

if (SpeedX> 200 || SpeedX <-200) {LeftWheelSpeed ​​= SpeedX; RightWheelSpeed ​​= SpeedX; Robot.Speed ​​(Lijevi kotač brzina, RightWheelSpeed); }

inače ako (SpeedY> 200 || SpeedY <-200) {LeftWheelSpeed ​​= SpeedY-80; RightWheelSpeed ​​= SpeedY-80;

inače ako (SpeedX == 0 && Brzo == 0) {Robot.Speed ​​(0,0); }

Posljednji kod se koristi za kontrolu LED-a na ploči spojenog na PIN13.

int ledPin = 13;

Pin 13 treba definirati na početku koda.

pinMode (ledPin, OUTPUT);

Postavite izlazni mod za LED pisanjem funkcije setup (). Molimo pogledajte upute za funkciju pinMode () na Arduino web stranici (www.arduino.cc).

Sljedeći izrazi prikazuju stanje gumba. Kada se pritisne tipka No.1, LED će biti upaljen. Znači da je LED pin postavljen na HIGH.

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

Kada se tipka No.1 oslobodi, LED će se isključiti. Znači da je LED pin postavljen na LOW.

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

Sve je to danas kodiranje. Nije li zabavno? Dakle, nije nemoguće pisati kod za vas, zar ne? Možete pokušati promijeniti gumb za kontrolu LED svjetla izmjenom koda. Definitivno je zanimljivije kada ga možete kontrolirati svojim kodom. Sada, ZAPOČNITE ZABAVU sa svojim robotom !!!