Tartalomjegyzék:

Sokoldalú NearBot: 11 lépés (képekkel)
Sokoldalú NearBot: 11 lépés (képekkel)

Videó: Sokoldalú NearBot: 11 lépés (képekkel)

Videó: Sokoldalú NearBot: 11 lépés (képekkel)
Videó: 10 САМЫХ КРАСИВЫХ АКТРИС РОССИЙСКОГО КИНО! Часть 1. 2024, Július
Anonim
Image
Image

Ez az oktatóanyag megmutatja, hogyan lehet olyan sokoldalú robotindítót építeni, amely képes mozgatni valamit, például egy gombot, kapcsolót vagy tárcsázást különböző eszközökön, amikor Ön (a telefonjával vagy egy jelzőfénnyel a zsebében) a közelben van. Ez azt jelenti, hogy automatikusan kinyithatja és újra lezárhatja az ajtózárat, amikor * csak te * haladsz el, elzárod az esőztető szelepet, hogy sértetlenül áthaladhass a vízen, mint egy külvárosi Mózes, és csökkentsd a hangszóró hangerejét, amíg a garázsban vagy zenekari szoba, indítsa el az iPodot, amely drámai belépő dallamot játszik le, vagy mondjon el egy viccet (Jaden Smith tweetje?), amíg a szobában van, vagy szüneteltessen egy filmet, amikor felkel, hogy használja a mellékhelyiséget.

Ez a projekt nem igényel forrasztást vagy speciális szerszámokat

Ha eléggé élvezi ezt az oktatási lehetőséget, kérjük, fontolja meg, hogy a Robotics 2017 versenyen erre az utasításra szavaz!

1. lépés: Szerezze be a hardver alkatrészeket

Szükséged lesz:

  • NodeMCU v2 vagy V3
  • Micro 9G Servo Motor körülbelül 1,40 USD USD ingyenes szállítás az eBay -en vagy az Aliexpress -en
  • Arduino jumper vezetékek nősténytől férfiig.
  • A NearBot burkolata - műanyag hulladékdobozt használtam.
  • Micro USB adatkábel (telefon alkatrészek törlése)
  • USB áramforrás (törölt telefon töltő)

Ha nem rendelkezik mobil hotspot funkcióval rendelkező okostelefonnal, akkor a következőkre is szüksége lesz:

  • ESP-01 modul körülbelül 2,50 USD USD ingyenes szállítás a DealExtreme, GearBest, Ebay vagy Aliexpress webhelyen.
  • 1 Párosítson AAA elemeket
  • kettős AAA elemtartó kapcsolóval

2. lépés: Gyors kezdés

Ez a lépés tartalmaz egy gyors kezdési útmutatót arra az esetre, ha tetszik az ilyesmi. Ennek az utasításnak a többi része lépésről lépésre halad, és részletesebb információkat ad hozzá

// Bevásárlólista: // NodeMCU V3 (Lolin) ESP8266 mikrokontroller

// SG90 9G szervomotor

// USB Power Bank vagy USB fali adapter.

// Micro USB adat/töltőkábel

// Arduino férfi -női típusú jumper vezetékek

//MIELŐTT ELKEZDED:

1. Ha még nem töltötte le az Arduino IDE -t, töltse le ingyen (adományozás opcionális) a következő címen:

2. nyissa meg az Arduino IDE -t (ha még nem olvassa ezt az Arduino IDE -ben!)…

3. Nyissa meg a fájlokat, és kattintson az Arduino IDE beállításaira…

4. másolja az alábbi kódot a További táblák kezelőbe: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

5. kattintson az OK gombra a beállítások lap bezárásához …

6. Lépjen az eszközökhöz és a táblához, majd válassza ki a táblakezelőt…

7. Navigáljon az esp8266 by esp8266 közösséghez, és telepítse az Arduino szoftverét…

8. Lehet, hogy le kell töltenie és telepítenie kell a CH340 illesztőprogramot, ha nem tudja elérni, hogy a NodeMCU beszéljen az Arduino IDE -vel:

// Miután a fenti folyamat befejeződött, el kell olvasnunk az esp8266 NodeMCU mikrovezérlő programozását az Arduino IDE -vel.

//9. Válassza ki a NodeMCU V1.0 ESP12E elemet a tábla menüjéből /

/10. Válassza ki a használt COM portot.

11. válassza ki a kódot (töltse le a www.makersa.ga webhelyről), majd kattintson a feltöltés gombra. /

/12. Csatlakoztassa a szervót a NodeMCU -hoz az áthidaló vezetékek segítségével. D0 jelzéshez, földelés földhöz, +VCC VO vagy 3V. /

/13. Állítsa be a szervókürtöt egy csavarhúzóval.

14. Állítsa be a maximális és minimális mozgásfokokat a kód használatával.

15. A kód frissítésekor töltse fel újra a NodeMCU-ba.

// Fontosnak találhatja, hogy melyik NodeMCU verziója van. Itt egy összehasonlító útmutató:

frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v1 pinout diagram: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 pinout diagram: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v3 pinout diagram:

A szerelvények magyarázata:

// NodeMCU ESP8266 mikrokontrollerből, akkumulátorból vagy USB tápegységből és SG90 szervóból készült

// Használhat 2. módosítatlan esp8266 modult jeladó hotspot AP -ként okostelefon használata helyett, nincs szükség programozásra.

3. lépés: Szerezze be a szoftverrészeket

Először le kell töltenie az ingyenes Arduino IDE -t

Az Arduino webszerkesztő nem működik a NodeMCU -val, amikor ezt írom, ezért helyette telepítenie kell az IDE -t a számítógépére.

A NearBot fájlokat a www. MakerSa.ga webhelyről is le kell szereznie - A projekt fájl letöltési linkje megtalálható az oldalon.

4. lépés: Telepítse az illesztőprogramokat és a lapprofilokat

Néhány hasznos információ
Néhány hasznos információ

A letöltött és kicsomagolt NearBot zip belsejében a NodeMCU modul illesztőprogramjai lesznek. Telepítse ezeket a számítógépére.

Ha ezek nem működnek, akkor megtalálhatja a CH340G illesztőprogramokat a wemos.cc/downloads címen

Előfordulhat, hogy a NodeMCU nem használja a CH340G chipet, ezért előfordulhat, hogy megjegyzést kell tennie a keresett illesztőprogrammal, és válaszolok az illesztőprogram letöltési linkjével.

  1. Ezután nyissa meg az Arduino IDE -t, és menjen a File PreferencesAdditional Boards Manager elemre az Arduino IDE -ben.
  2. Illessze be a következő kódot:
  3. Kattintson az OK gombra a beállítások lap bezárásához.
  4. Lépjen az Eszközök és tábla menüpontra, majd válassza ki a fórumkezelőt.
  5. Keresse meg az "esp8266 by esp8266 community" oldalt, és telepítse az Arduino szoftverét.

Miután a fenti folyamat befejeződött, készen állunk az esp8266 NodeMCU mikrovezérlő programozására az Arduino IDE segítségével!

5. lépés: Néhány hasznos információ

Néhány hasznos információ
Néhány hasznos információ
Néhány hasznos információ
Néhány hasznos információ

Hasznos lehet kitalálni, hogy melyik NodeMCU verziója van. Itt egy összehasonlító útmutató:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

Mindegyik változat különböző tűelrendezésekkel rendelkezik. Azért vásároltam a v3 (Lolin) verziót, mert 5V -os kimeneti csapokkal rendelkezik a szervomotor működtetéséhez. Végül inkább a 3 voltos tápcsatlakozókat használtam a biztonság kedvéért (A NodeMCU I/O érintkezők nem tűrik az 5 V -ot), de érdemes az 5 V -os csapokat használni, mert technikailag az ilyen típusú szervomotorok 4,5-5 voltos teljesítményre vannak megadva.

6. lépés: Töltse be a kódot a NodeMCU -ba

Töltse be a kódot a NodeMCU -ba
Töltse be a kódot a NodeMCU -ba
Töltse be a kódot a NodeMCU -ba
Töltse be a kódot a NodeMCU -ba
  1. Csatlakoztassa a NodeMCU -t a számítógépéhez bármilyen mikro -USB -kábellel.
  2. Nyissa meg az Arduino IDE -t, és a „Táblák” alatt válassza az „ESP12E” lehetőséget, majd a NodeMCU COM -portját.
  3. Az IDE -ben lépjen a FileOpen oldalra, és böngésszen a makersa.ga webhelyről korábban letöltött zip mappában, és nyissa meg az "ProximityActuator013017DonovanMagryta.ino" nevű Arduino -vázlatot
  4. Ezután szerkessze az ezt tartalmazó kód sort, és adja hozzá a WiFi jelzőfény nevét és jelszavát. Erről bővebben alább! Például:

const char* ssid = "mywifi"; // Tegye a hotspot nevét az idézőjelek közé

const char* password = "mywifipassword"; // Tegye a hotspot jelszavát az idézőjelek közé

Ezután kattintson a "feltöltés" gombra, hogy a kód a NodeMCU táblára villogjon.

A NearBot egy zsebes WiFi jelzőfényt használ az Ön azonosítására és a távolság becslésére. Csakúgy, mint a közelségi kulcsok, néhány újabb autó rendelkezik olyanokkal, amelyek kinyitják az autó ajtaját, amikor közeledik.

Fényjelzőként használhatja okostelefonja mobil hotspotját, vagy használhat egy olcsó ESP-01 WiFi modult, amelyet egy pár AAA elem vagy egy kicsi, 3,7 V-os lítium elem táplál. Nem kell programozni az ESP-01-et, alapértelmezés szerint a hotspot módban van, amikor be van kapcsolva. Az ehhez tartozó kapcsolási rajz ebben a lépésben látható.

7. lépés: Csatlakoztassa a szervót a NodeMCU -hoz

Szüksége lesz néhány áthidaló vezetékre, hogy a szervót a NodeMCU V3 -hoz csatlakoztassa.

A kapcsolási rajz egyszerű.

Rögzítse a D0 -t a vezetékben lévő jelre (a szervoszervény legvilágosabb színű huzalja. Általában sárga vagy fehér.)

Rögzítse a 3 V -ot vagy a VO -t az 5 V -os bemeneti vezetékhez (a szervó második legvilágosabb színű vezetéke, általában piros vagy narancssárga).

Rögzítse a GND -t a földelővezetékhez (legsötétebb színű huzal a szervón, általában barna vagy fekete).

8. lépés: Finomhangolja a NearBotot

A kód a jelerősséget távolságbecsléssé alakítja. Megbízhatóan működik, ha a reakciótávolság kevesebb, mint 2 méter vagy 6,5 láb. Mivel közvetlen konverzióról van szó, nem olyan sima a 3 méternél nagyobb távolságoknál, mint egy jobb számítási módszerrel. Erről majd később.

Érdemes beállítani a szervókürt (a mozgó kis fehér kar) helyzetét. Ehhez egyszerűen csavarja ki a szervokart egy csavarhúzóval, és helyezze vissza.

A következő rész a mozgás maximális és minimális fokának beállítása a kód használatával.

Ezt úgy teheti meg, hogy megváltoztatja a következő sorokban található számokat:

myservo.write (10); // a szervókar 10 fokos forgatásra mozgatja

A jelerősség érzékenységét úgy is módosíthatja, hogy a negatív számokat a következő sorokban módosítja:

if (rssi> -30 && rssi <-5) {// Ha a jelerősség erősebb, mint -30, és gyengébb, mint -5. akkor tegye a következőt…

9. lépés: Hogyan működik?

  1. A NearBot először előre csatlakozik a hotspothoz, amint a felhasználók közelednek.
  2. Szkenneli az RSSI -t (fogadott jelerősséget), és azt közelítő távolságra konvertálja.
  3. Míg a távolság a megadott tartományon belül van, a szervomotor karját az 1 -es helyzetbe mozgatja.
  4. Ellenkező esetben a szervomotor 2 -es helyzetbe kerül.

Amikor ezt teszteltem, ez az RSSI hangolás (-50) a szervót az 1-es pozícióba helyezi, miközben a távolság 0 és 1,5 méter között van, az ESP-01 jelzőfénnyel vagy telefon hotspotdal a zsebemben.

Az RSSI jellemzően -90 és -20 közötti tartományba esik, és a -20 a legerősebb jelerősség.

Ha megnyitja az Arduino IDE soros monitort, miközben a NearBot csatlakoztatva van a számítógéphez, az valós időben megjeleníti a jelerősséget és a triggerpontokat, hogy hasznos visszajelzést kapjon.

Itt a teljes kód:

//MIELŐTT ELKEZDED:

1. Ha még nem töltötte le az Arduino IDE -t, töltse le ingyen (adományozás opcionális) a következő címen: https://www.arduino.cc/en/Main/Software // 2. nyissa meg az Arduino IDE -t (ha még nem olvassa ezt az Arduino IDE -ben!)… // 3. Nyissa meg a fájlokat, és kattintson az Arduino IDE beállításaira … // 4. másolja az alábbi linket a További táblák kezelőjében: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. kattintson az OK gombra a beállítások fül bezárásához … // 6. Lépjen az Eszközök és tábla menüpontra, majd válassza ki a táblakezelőt… // 7. Navigáljon az esp8266 by esp8266 közösséghez, és telepítse az Arduino szoftverét… // 8. Lehet, hogy le kell töltenie és telepítenie kell a CH340 illesztőprogramot, ha nem tudja elérni, hogy a NodeMCU beszéljen az Arduino IDE -vel: https://www.arduino.cc/en/Main/Software // A fenti folyamat befejezése után olvassa el az esp8266 NodeMCU mikrovezérlő programozásához az Arduino IDE -vel. Érdemes kitalálni, hogy melyik NodeMCU verziója van. Itt van egy összehasonlítási útmutató: https://www.arduino.cc/en/Main/Software // NodeMCU ESP8266 mikrokontrollerből, akkumulátorból vagy USB tápegységből és SG90 szervóból készült // Jelzőfényként használhat egy második módosítatlan esp8266 modult hotspot AP helyett okostelefon használata. // NearBot áramkör: // D0 érintkező a szervo jelvezetékhez (a legvilágosabb színű vezeték) // 3 V tű a szervo 5 voltos vezetékhez (középső vezeték) (párhuzamosan illesztve az usb kábellel vagy a VO tűvel a NodeMCU -n, ha van V3.) /USB -tápellátás az USB -csatlakozóhoz a NodeMCU -n // GND érintkező a szervo földelővezetékhez (legsötétebb színű vezeték) // A megjegyzések sorai két elővágással kezdődnek, és a számítógépek figyelmen kívül hagyják őket. A megjegyzések csak nekünk, embereknek szólnak! #Include #include // Szükséges lehet soros nyomtatáshoz. #Include // Servo library #define D0 16 // Tüskéket határoz meg, hogy megkönnyítse a csapok hozzárendelését. #Define D1 5 // I2C Bus SCL (óra) #define D2 4 // I2C Bus SDA (adatok) #define D3 0 #define D4 2 // Ugyanaz, mint a "LED_BUILTIN", de fordított logika #define D5 14 // SPI Bus SCK (óra) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Busz MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Soros konzol) #define D10 1 // TX0 (Soros konzol) Servo myservo; // Hozzon létre egy szervoobjektumot myservo // Telefon vagy további ESP8266 modul hotspot AP módba állítva: const ch ar* ssid = ""; // Tegye a hotspot nevét az idézőjelek közé const char* password = ""; // Tegye a hotspot jelszavát az idézetek közé void setup () {Serial.begin (115200); // soros adatátviteli sebességet állít be, hogy a mikrokontroller beszélhessen az Arduino IDE soros nyomtatási interfészével - előfordulhat, hogy 9600 -ra kell cserélnie! myservo.attach (D0); // a szervo objektumhoz csatolja a D0 tűn vagy GPIO16 -on lévő szervót - További információ: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // a szervókar 10 fokos elforgatására helyezi Serial.println ("Zárva"); // adja ki a soros monitornak a "Locked" WiFi.mode (WIFI_STA) szót; // Állítsa a wifit állomás módba WiFi.begin (ssid, jelszó); // Csatlakozik a hotspot beacon -hez} void loop () {// A ciklus gyorsan újra és újra fut, ha (WiFi.status ()! = WL_CONNECTED) {// Ha a wifi NEM csatlakozik, tegye a következőket: Serial.println ("Nem sikerült wifi -kapcsolatot létesíteni"); myservo.write (10); // A szervokart 10 fokosra mozgatja Soros.println ("Zárva"); } else {// Ha a WiFi IS csatlakozik, akkor tegye a következőt … long rssi = WiFi. RSSI (); // Létrehoz egy rssi nevű változót, és hozzárendeli a függvényhez, amely visszaadja a hotspot beacon Serial.print (rssi) jel erősségének leolvasását; // kimeneti az rssi leolvasást a soros monitorra, ha (rssi> -50 && rssi <-5) {// Ha a jelerősség erősebb -50 -nél és gyengébb -5 -nél. majd tegye a következőt … myservo.write (170); // A szervo kar elforgatása 170 fokra Serial.println ("Unlocked"); } else {// Ha a fenti feltételek nem teljesülnek, akkor tegye a következőt … myservo.write (10); // A szervókar visszaforgatása 10 fokra. Serial.println ("Zárva"); }}}

10. lépés: Tudnia kell…

Jogi nyilatkozat:

A NearBot kód jelenlegi iterációja megbízhatóan működik 2 méternél vagy 6,5 lábnál kisebb távolságok esetén. Ezen kívül kevésbé pontos, de még mindig működik.

Ez megoldható, de jelenleg nem tudom, hogyan tegyem. Örülnék, ha valaki dolgozna velem, így frissíthetem ezt az utasításokat a távolság pontosabb kiszámítási módszerével!

Ezek a linkek hasznosak lehetnek: a YouTuber CNLohr korlátozott sikerrel fejlesztett ki távolság- és helyzetérzékelő firmware -t az ESP8266 készülékhez:

Az Espressif kifejlesztett egy repülési idő távolság észlelési funkciót, amely az Arduino IDE -vel működik az ESP8266 esetében, de soha nem adta ki:

A SubPos helymeghatározó rendszer ESP8266 modulokat és útvonalveszteség -számítást használ, amit nem tudok megvalósítani az Arduino IDE -ben:

Találtam egy példát Java nyelven, de nem tudom, hogyan kell megismételni ezt az Arduino IDE -t:

kettős távolság = Math.pow (10,0, (((kettős) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvencia)))/(20*mu));

11. lépés: Ez minden

Ha saját NearBot -ot készít, tegye közzé az "én elkészítettem" az alábbi megjegyzésekben!

Ha további ötletei vannak a Versatile NearBot platform használatához, kérjük, írja meg ötleteit! Nagyszerű inspiráció lehet más oktatható eszközök felhasználóinak!

Ha tetszik ez az oktatóanyag, kérjük, fontolja meg, hogy erre a tanulságosra szavaz a versenyeken!

Ajánlott: