Áramkörök

Robot építése - 7. lecke: Bluetooth-vezérelt Arduino robot építése: 14 lépés

New Robot Makes Soldiers Obsolete (Corridor Digital)

New Robot Makes Soldiers Obsolete (Corridor Digital)

Tartalomjegyzék:

Anonim

Mivel az Arduino robot képes az alapvető funkciók elvégzésére, egy újabb funkcióval frissítjük, a Bluetooth-on keresztül.

Ugyanaz, mint a „Hogyan készítsünk egy robotot” oktatóanyagokat, példaként egy Arduino robotkészletet (Pirate: 4WD Arduino Mobile Robot Kit, Bluetooth 4.0) használunk. Emellett szükségünk van a GoBLE (A Generic BLE APP vezérlő) segítségére is, amely lehetővé teszi a robotok, mobil platformok, drónok vagy bármi más, mint pl.

Lessons menü:

1. lecke: Bevezetés

2. lecke: Alapvető Arduino robot létrehozása

3. lecke: Vonal nyomon követése Arduino robot

4. lecke: Építsen egy Arduino robotot, amely elkerülheti az akadályokat

5. lecke: Arduino robot létrehozása fény- és hanghatásokkal

6. lecke: Építsen egy Arduino robotot, amely figyeli a környezetet

7. lecke: Bluetooth-vezérelt Arduino robot építése

Készítmény

iPhone vagy iPad × 1

GoBLE APP × 1

kellékek:

1. lépés:

Megjegyzés: Jelenleg a GoBLE csak az iOS eszközökön használható, és legalább az iOS 8.1-es telepítését kéri.

Az iOS felhasználók számára: töltse le az GoBLE-t az App Store-ból.

2. lépés:

Töltse fel a tesztelési kódot

Kérjük, csatlakoztassa a Romeo BLE-t a számítógéphez. A „GoBLE_Test.ino” tesztkód megtalálható a szoftvercsomagban. Lehetővé teszi, hogy ellenőrizze az eszközökről érkező jeleket. LETÖLTÉS IT & CHECK IT OUT. Ne felejtse el betölteni a GoBLE könyvtárat, mielőtt letölti a tesztkódot.

3. lépés:

Bluetooth teszt

Most indítsuk el a Bluetooth párosítást. Kapcsolja be a mobil bluetooth-ot, majd nyissa meg a GoBLE alkalmazást. A képernyőn így néz ki!

4. lépés:

Kattintson a Bluetooth keresőgombra (úgy néz ki, mint egy piros nagyító). Ezután válasszon egyet a Romeo BLE nevének megfelelő Bluetooth-eszközök közül. Kattintson az UUID-re, és megkezdődik a párosítás.

5. lépés:

A csatlakoztatás után a Bluetooth keresőgomb színe vörösről zöldre vált.

6. lépés:

Ezzel egyidejűleg bekapcsolja a táblán levő LINK-et, ami azt jelenti, hogy az iPhone csatlakoztatva van a Romeo BLE-hez (Arduino Robot Control Board, Bluetooth 4.0).

7. lépés:

Most teszteljük, hogy a vezérlő sikeresen fogadhat-e jelet az iPhone-tól. Menjen vissza az Arduino IDE interfészre, és kattintson a jobb felső sarokban lévő Soros monitorra.

8. lépés:

Az alábbi képen látható párbeszéd megjelenik. Először is, a soros port átviteli sebességét 115200-ra kell állítani, ahogy az az alábbi piros körben látható.

9. lépés:

Most kiveheti az iPhone-t, és véletlenszerűen elfordíthatja a virtuális joystickot, vagy kattintson a képernyőn lévő gombra. Ha semmi más, akkor a megfelelő érték jelenik meg a Soros monitoron. Ha a virtuális joystickot a képernyőn húzza, a joystick értéke a soros monitoron megváltozik. Meg fogja találni, hogy az érték növekszik, ha a joystickot felfelé húzza, vagy az érték csökken, ha a joystick lefelé húzódik.

Gombazonosító azt jelenti, hogy melyik gombra kattint.

10. lépés:

Töltse fel a távirányító kódját

Ha minden rendben van, folytassuk és töltsük fel a távvezérlés kódját az Arduino kártyára. Nagyon fontos pont, hogy tartsa szem előtt!

Az iPhone már csatlakozott a Romeo BLE Boardhoz az utolsó tesztelési szakaszban. Azonban nem tudod feltölteni a kódot a Romeo BLE kártyára, amikor a Bluetooth és a telefon között létrejött a Bluetooth. Így először a BREAK OFF-t kell választanunk a Bluetooth párosításban. Ezenkívül újra feltöltheti a kódot, ha a kártyát leválasztották a telefonról. EZ NAGYON FONTOS!

A kapcsolat megszakításához két mód van. Az egyik módja az, hogy egyszerűen kapcsolja ki a Remeo BLE áramellátást, majd kapcsolja be újra. A másik út az, hogy csak kapcsolja ki a telefont a Bluetooth-on.

A leválasztás után újra feltöltheti a példakódot. A kód neve GoBLE_APP.ino a kódcsomagban.

11. lépés:

A sikeres feltöltés után követheti az alábbi képen látható piros nyilat, és görgetheti a joystickot a robot vezérléséhez. A piros gombra kattintva bekapcsolhatja vagy kikapcsolhatja a LED-et a táblán, amely a PIN13-hoz kapcsolódik.

12. lépés:

Kódszinopszis

A robot lejátszása után kezdjük el tanulni a kód használatát. Nincs több szó a tesztkódra a GoBLE teszthez. Ezután csak haladunk előre a GoBLE APP-re.

Nem szükséges megvitatni az alapkódot - nézzük csak meg a bluethooth vezérlést. Ha a robotot távvezérelni szeretné, két metró és GoBLE nevű könyvtárt fog használni.

#include "Metro.h"

#include "GoBLE.h"

int joystickX, joystickY;

int buttonState 6;

A JoystickX, a JoystickY és a ButState 6 három változó a GoBLE könyvtár számára van meghatározva. Ezek az X-tengely, az Y-tengely és a hat gombértékek állapotértékének tárolására szolgálnak.

Az alábbi térkép az összes gomb elrendezését mutatja. Valószínűleg ismeri a + X, -X, + Y és –Y jelentéseit, ha elemezte az állapotértékek változását.

X & Y a Joystick mozgásirányai. ”+, -“ az érték trendjeit mutatja. A „+” azt jelenti, hogy az állam értéke növekszik. És a „-” azt jelenti, hogy az állapot értéke csökken.

13. lépés:

A kezdeti beállítást a Beállítás () függvényében kell megírni.
Goble.begin ();

Ezt a sort a bluetooth beállítás elindítására használják. És nem hagyható ki, ha a Bluetooth-kódot használja a táblán.

Serial.begin (115200);

Valójában ezt a sort használták a tesztelési szakaszban. A soros port kezdeményezésére szolgál. Ha meg akarja olvasni az értéket a Soros monitorról, akkor ezt a beállítást be kell írnia a beállítási funkcióba. ÉS, be kell állítania az átviteli sebességet is.

Mivel a Bluetooth átviteli sebessége speciális, 115200-ra kell állítania. Győződjön meg róla, hogy az átviteli sebesség beállítása megtörtént, különben problémát okozhat.

Kérjük, folytassa a megjelenést. A következő sor Goble.available () függvénye.

ha (Goble.available ()) {csinál valamit; }

Ez azt jelenti, hogy mi a következő lépés, amikor a szám Bluetooth-on keresztül érkezik.

Mi lesz a zárójelben, mi lesz a következő akciónk. Először elemeznünk kell a kapott számot. A következő két állítás az X és Y tengelyen lévő érték olvasása.

joystickX = Goble.readJoystickX ();

joystickY = Goble.readJoystickY ();

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

// Serial.print (joystickX);

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

// Serial.println (joystickX);

Találd meg, mit jelentenek a Serial.print () fenti négy állítása. Ez a soroshoz kapcsolódik. A soros számára a kapott adatok kinyomtatására van szükség, ami kényelmes a hibakereséshez és optimalizáláshoz.

„//” az alábbi tartalom megjegyzését jelenti. Ez a négy mondat nem szerepel a kód összeállításakor. Nevezetesen, nem adunk meg adatokat a sorozatokra, ha a megjegyzéseket a négy állításhoz használjuk.

További információkért látogasson el az Arudino honlapjának (www.arduino.cc) Referencia oldalára.

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

Az összes fenti tartalom a gombok állapotára vonatkozó információk betöltésére szolgál.

A gombok elrendezése a következő.

SWITCH_UP - 1 SWITCH_RIGHT - 2

SWITCH_DOWN - 3

SWITCH_LEFT - 4

SWITCH_SELECT - 5

SWITCH_START - 6

14. lépés:

El kell dolgoznunk az összes olvasott adatot, mielőtt elkezdenénk használni őket.

A Joystick-on olvasható értéket a robotunk kerekeinek fordulatszámára kell leképezni. Így a kerekek fordulatszáma -255 és 255 között van.

int SpeedX = 2 * joystickX-256;

int SpeedY = 2 * joystickY-256;

Serial.print ("Sebesség:");

Serial.print (SpeedX);

Serial.print ("");

Serial.println (Speedy);

Szintén a soros nyomtatja ki a sebességet. Ha nincs szükség, akkor az elején „//” hozzáadhatod, hogy eltávolítsd.

Most irányítsuk a robotot, és mozgassuk.

Ha (mozgassa a joystickot felfelé vagy (||) lefelé) {Robot előre vagy hátra mozog; }

Ha (mozgassa a joystickot jobbra vagy (||) balra) {Robot jobbra vagy balra mozog}

Ha (A Joystick X-tengelye a központban és a & &) A Joystick Y-tengelyén van, tartsa a középen) {Robot megáll; }

A levelező kódok a következők:

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

egyébként, ha (SpeedY> 200 || SpeedY <-200) {LeftWheelSpeed ​​= SpeedY-80; RightWheelSpeed ​​= SpeedY-80; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed);}

egyébként, ha (SpeedX == 0 && SpeedY == 0) {Robot.Speed ​​(0,0); }

Az utolsó kódot a PIN13-hoz csatlakoztatott táblán lévő LED vezérlésére használják.

int ledPin = 13;

A 13-as PIN-kódot meg kell határozni a kód elején.

pinMode (ledPin, kimenetet);

Állítsa be a LED kimeneti módját a beállítás () beállításával. Kérjük, olvassa el a pinMode () funkciójának utasításait az Arduino honlapján (www.arduino.cc).

A következő kifejezések a gombok állapotát mutatják. Miután megnyomta a No.1 gombot, a LED világít. Ez azt jelenti, hogy a LED-es tű magasra van állítva.

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

Miután az 1. gombot megnyomta, a LED kikapcsol. Ez azt jelenti, hogy a LED-es érintkezője LOW.

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

Ez a kódolás ma. Nem jó? SO, nem lehetetlen kódot írni, igaz? A kód módosításával megpróbálhatja megváltoztatni egy gombot a LED fény szabályozásához. Ez minden bizonnyal érdekesebb, ha a kóddal vezérelheti. Most indítsd el a játékot a robotoddal !!!