Robotá panáček Jódá!

2020.02.12. 05:00 | Írta: kkm.furdancs

image9_20.jpg

A csehszlovák akcentusú cím tisztelgés Karel Čapek (pl. Harc a szalamandrákkal) cseh író előtt, akinek a robot kifejezés megalkotását tulajdonítják. Másrészt az emberiség külön köszönettel tartozik a feltörekvő ázsiai iparnak, mely "koppintott kőkorszak" időszakának derekán - végén derekas hatékonysággal másolja és forgalmazza a jórészt elektronikai - könnyűipari termékeket (kakukktojás Japán, persze).

cimfoto.jpg

A világ más lenne, ha az Intel nem teszi közkincsé a személyi számítógép tervezéséhez szükséges kutatásait. Ez igazán nagylelkű gesztus első hallásra. Kissé mérsékli pusztán emberbaráti szándékaik kizárólagosságát egy elemzésük, melyben évi 400 eladásra számítottak saját gyártmányú gépeikből. Ki venne otthonra számítógépet? - teszi fel kérdést a dokumentum, így inkább rágyúrtak a szerverekre. A Pentium márka és technológia levédetése bizonyítja, hogy ők sem gondoltak az ázsiai - elsősorban Tajvan, Szingapúr - kistigrisekre, melyeknek az olcsó számítástechnika globális elterjedését köszönhetjük. Így kerülhetett (némi kerülőutakon) már a nyolcvanas évek végén PC XT/AT a jobban elengedett háztartásokba, és már 1994-ben egy szerény 386SX a nappali sarkába (tribute Vágási Feri!).

Ez adta a kezdőlökést és vásárlóerőt, hogy mára lényegében nélkülözhetetlen (lásd netfüggőség) és teljesítményükhöz képest rendkívül olcsó számítógépek vesznek körbe a leglehetlenebb helyeken is. Az asztali gépek elterjedésében az első évek tétova (mit kezdjünk vele?) találgatásai és béna oktatási tévútjai (milyen izgalmas is DOS alatti programozást tanulni általánosban) után a számítógépek média- és kommunikációs jellemzői erősödtek meg. Az ipar is szemet vetett a korlátlan erőforrásokat rejtő lehetőségekre. Ennek eredménye a mikrokontrollelrek és ipari számítógépek fejlesztése.

image8_38.jpg

Próbapanel mindenféle népszerű perifériával

A személyes nézőpontú és nagyvonalúan felszínes visszatekintés után ismét elérkeztünk a panellakások barkács-összeférhetetlenségének problémájához, mely a materiális értékteremtésre vágyakozó, alkotó elmét leláncolja, renyheségre kárhoztatja. Mit lehetne építeni hát fűrészelés nélkül?

Az Arduino egyszerű számítógép, de igen erős ki- és bemeneti eszközök támogatásában, melyet ráadásul elég olcsón és széles választékban, rá szabott csatlakozásokkal és meghajtóprogramokkal árulnak. Ezek felhasználásához bő irodalom áll rendelkezésre a neten. - írtam korábban. Most a nagy számban elérhető perifériák és Be/Kimeneti egységek (I/O) között tallózom. Figyelemfelkeltés, öteltadás céllal egy konkrét saját fejlesztést dokumentálok több részben, Baby Yoda Robottal példálózva.

image4_44.jpg

Amikor komplex dolgot fejlesztünk, idővel eljön a felismerés, hogy alkotórészeit inkább vásároljuk meg készen, minth nulláról indulva egyenként találjuk fel őket. Idővel az ember elveszik a részletekben és olyan apróságokra fecsérli idejét, amit megkaphat egy marék csipesz áráért. Saját példa a kis Yoda fejbólintó mechanizmusa, melynek egyenes vonalú mozgását kis egyenáramú motorral oldottam meg első lépésben. Van egy fél fióknyi 3-12 voltos motorom, miért ne. Azonban a végeredmény (itt látható) bár működőképes, de zajos, túl gyors, feleslegesen erős és hátra volt még vezérlése, hiszen szükséges tisztában lenni, hogy milyen pozícióban tartózkodik épp. Ráadásul áttételszámításokat igényló csuklók és karok kellettek a köríves mozgatásra visszalakításhoz.

image6_34.jpg

Ekkor vásároltam be apró szervomotorokból, melyek csendesek, a tápon kívül egyetlen vezetékkel csatlakoznak a mikrokontrollelrhez, ráadásul valahogy (szerintem egy apró potenciométer segítségével) ismerik pillanatnyi helyzetüket. Annyira minimális áramfelvétellel fejtenek ki - ezen alkalmazásban teljesen elegendő - nyomatékot, hogy közvetlenül meghajthatók az Arduinóról. Direkt módon ráerősthető a fej és gerinc, mérete apró. Tökéletes egy robothoz 640 Ft áron.

aq.jpg

Kis kitérő: Ha nagyobb erők szabályzott mozgatására van szükség, ott már kissé elszabadulnak az árak, hiszen ez az ipar felségterülete. Egy lineáris útpálya költsége felfogatással, léptetőmotorral, tápegységgel, golyós-trapézmenetes mozgatással és lienáris tengelyekkel, méterenként 10-15000 forintnál kezdődik. Ennek olcsósítására - természetesen kompromisszumok árán - a közeljövőben szeretnék itt példát mutatni. 

image3_15.jpg

Most pedig seregszemle következik a Robot Yoda szervezetéhez felhasznált alkatrészekből. Mozgatás, táplálás, szenzorok és kimenetek. Az illesztések a lehető legbarátibb módon megoldhatók, elektronikában teljesen kezdők részére is. A világszabvány 2.5 mm csatlakozótávolság, a szorosan összeillő, dugaszolható vezetékek és sokrétű védelem segít biztonságosan összeilleszteni az alkatrészeket. Másrészt elég blokkszinten kezelni (ezért férnek blogunk kereteibe) ezeket az eszközöket. A programkönyvtáraknak köszönhetően "rádugom, programozom és megy" módszerrel csak a célt és paramétereket kell megadnunk. Nem kell villamosmérnöki szinten feszültségeket számolni, NYÁK-ot forrasztani, gépi kóddal programozni. Elismerem, ha valaki képzett a témában, de a feladatra koncentrálva nem tanácsos elveszni az elektronika - mechanika - programozás részleteiben. Lásd a bevezetőben írottakat.

Az áramkörök leírását a TavIR oldalról szemezgettem ki, köszi! Üzemeltetőjének nagy érdeme volt - még a webáruház létrehozása előtt - bemutatni hazánkban az Arduino-t, megismertetni lehetőségeit és ingyenes dokumentációjával mankót nyújtani a kezdeti lépésekhez. Nem a legolcsóbb, de kínai importos kollégáihoz képest minden egy helyen megtalálható, korrekt leírásokat nyújt és letölthető programkönyvtárak, példaprogramok sorakoznak a termékek alatt. Azért linkeltem, mert itt láthatják leginkább egyben a fizikai jellemzők mérésének teljes sprektumát átfogó szenzorválasztékot és minden más alkatrészt.

q3.jpg

SR-04/SRF-04 ultrahang távolságmérő Az SRF-04 ultrahangos távolságmérő szenzor az emberi fül számára nem hallható tartományba eső ultrahangokkal, a szonár elv alapján méri a tárgyak távolságát. Egy rövid ultrahang hullámcsomagot kibocsátó adóból és a céltárgyról visszaverődött ultrahang érzékelésére szolgáló vevőből áll.

IR ütközés-szenzor Az infravörös ütközés/reflexió szenzor segítségével 2..30cm távolság érzékelésére nyílik lehetőség. Színes vagy mattfekete felület az érzékenységet csökkenti!

q2.jpg

ESP8266 WiFi-Serial modul Az ESP8266 modul egyszerű megoldást kínál WiFi kapcsolatok létesítésére. A mikrokontroller irányába az ESP8266 chip soros kommunikációval kapcsolódik (TTL, soros). A könnyű kezelhetőséget az egyszerű AT parancsok biztosítják.

MP3 lejátszó modul A DFPlayer Mini zenelejátszó modul képes dekódolni és lejátszani az MP3 formátumú audio állományokat. A modul háttértára egy microSD kártya foglaltban helyezhető el (ahol a FAT16/FAT32 formázott háttértáron az állományokat tárolni lehet). A modulon tárolt zeneszámok lejátszása többféle módon lehetséges.

q1.jpg

Kerék + meghajtómotor A meghajtómotor és a gumibevonatú kerék a robotmodellek építőköve. Túlterhelés illetve használati kopás esetén cseredarabbal javítható. Meghajtómotor: Áttétel: 1:48, Méret: 70mm x 22mm x 18mm, Zaj: ~65dB, Tömeg: ~50g, Feszültség: 3V...12V (ajánlott 6..8V), Sebesség: 15rpm/5V.  Kerék Átmérő: ~66mm, Nyomszélesség: 25mm.

Mini servomotor (SG90) Az SG90 mini szervomotor ideális kis tömegek gyors mozgatására. A könnyű kezelhetősége miatt alkalmas egyszerű Arduino és Bascom-AVR illesztéshez. A gyors fejlesztés biztosításához 5V tápfeszültséget igényel, azaz nem szülkséges külön tápfeszültséget biztosítani.
Jellemzők: Méret 21.5mm*11.8mm*22.7mm, Tömeg: 9 gramm, Sebesség: 0.12 mp/60 fok (4.8V, terheletlen) Nyomaték: 1.2..1.4kg/cm (4.8V), Működési hőfoktartomány: -30..+60°C, Késleltetés: 7 usec, Tápfeszültség: 4.8V-6V. 

q4.jpg

Motor meghajtómodul (L298N) Az L298 céláramkör könnyű illesztést valósít meg legyen akár DC, akár léptetőmotor meghajtásról szó. Szolgáltatások: Vezérlés Független, dupla H-híd meghajtás, Vezérlőchip: L298N, Logikai áramkör feszültség: 5V, Logikai oldal áramfelvétel: 0-36mA, Kapcsolt motorfeszültség: 5V-35V, Maximális motoráram: 2A/H-híd, Működési hőfoktartomány: -20..+135 fok, Maximális teljesítmény: 25W, Tömeg: 30g, Modulméret: 43*43*27mm. 

 

 Ha tetszett a bejegyzés, oszd meg ismerőseiddel. Ha nem, akkor is. 
Csatlakozz a Furdancs Facebook-közösségéhez! Nem fogjuk megbánni.

 

A bejegyzés trackback címe:

https://furdancs.blog.hu/api/trackback/id/tr10015469300

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

rnz 2020.02.12. 10:40:57

Apró kiegészítés:
Az a motor egy léptetőmotor, nem pedig pótméter alapján tudja hogy épp hol van. :)
A megfelelő impulzusokkal lehet irányítani, vagyis forgatni. Van belőre unipoláris és bipoláris, de az már egy másik történet.

rnz 2020.02.12. 10:47:15

@rnz: Bocsánat, elnéztem, az valóban "csak" egy szervó motor, ahol valóban egy pótméter adja a helyzetet. Mea culpa.

kkm.furdancs 2020.02.12. 12:46:14

@rnz: Igen és a léptetőmotor pozícióját vagy mérjük valamivel, vagy relatív üzemmódban számolgatjuk (mennyit lépett előre) vagy mindig el kell vinni nullpontba, hiszen mi történik, ha egy erőteljes fejsimogatással elfogatjuk a motort? Felborul a számítás. Ezzel szemben a szervó egy erőteljes bólintással beáll a megadott kezdőpozícióba. Nagyon hasznos kis szerkezet.

rnz 2020.02.12. 12:56:06

@kkm.furdancs: Léptetőmotornál kell egy null pont, amihez be tudja kalibrálni magát, egyébként meg ahogy írtad, ott számolni kell. Tehát egy léptetőmotor nem adja vissza a pozíciót, ahogy egyébként a szervómotor sem. A másik különbség még, hogy a szervó addig tartja a pozícióját (beleértve az alaphelyzetet), amíg kap feszültséget és vissza is áll, ha elmozdítjuk onnan. A léptető motornál ilyen nincs, ott ha odébbmozdítjuk (amihez egyébként jóval nagyobb erő kell), akkor úgy is marad és "elállítódik". A szervónál a ráadott feszültség mértéke adja meg, hogy mekkorát mozduljon, a léptetőt pedig impulzusokkal tudod irányítani.
Jók ezek a kit-ek egyébként és sajnos könnyű vérszemet is kapni, hogy aztán beszerezz még ezt-azt hozzá. Mivel viszonylag egyszerű programozni is, gyerekeknek is kiváló játékszer, a (szerintem) használhatatlan számítástechnika órák helyett foglalkozhatnának inkább ilyenekkel.

KAMA3 2020.02.13. 08:03:44

Egy kiegészítést én is írnék. Az ESP8266 az IC neve, nem a modulé. A képen szereplő modul neve ESP-01. Van rajta hardveres soros port, (RX,TX), és két darab I/O láb. (+ RESET, EN) Fontos kihangsúlyozni, hogy ehhez a modulhoz kell még egy jelszint illesztő adapter, mert maga a modul csak 3.3V-os!! (persze, abban az esetben, ha 3.3V-os Arduino Nano-val dolgozunk akkor nem kell) Az ESP8266 egy komplett mikrovezérlő is egyben, tehát bizonyos szoftveres megoldásokat közvetlenül ezzel is megvalósíthatunk. Ha több I/O lábra van szükségünk, válasszunk ESP-12, vagy ESP-32, vagy a megabrutál NodeMCU boardok közül.

kkm.furdancs 2020.02.13. 08:30:30

@KAMA3: Nem vagyok boldog ettől, de köszi! :)
Ahogy mz írta, könnyű vérszemet kapni és ha már vásároltam, ez is bekerült anno a kosárba, de kipróbálása még jócskán messze van. Ezekkel a különböző feszültségszintekkel amúgy is csak a gond van. Szerencsére a motorokkal egyszerű a helyzet, ha kisebb a fesz, legfeljebb lassabban forognak. Ha nagyobb, akkor a programmal lassítom őket.

kkm.furdancs 2020.02.13. 08:41:34

@kkm.furdancs: Az UNO-nak van 3.3-as kimenete egyébként. Akkor lennék igazán elégedett, ha az egész rendszer elfutna 3.7V feszültségről. Két akkut párhuzamosan kapcsolnék, hogy legyen ereje. A robotkerék motorok működnek róla. Remélem még két szervót el tud futtatni a panel (elvileg nyolcat tud).

KAMA3 2020.02.13. 09:30:11

@kkm.furdancs: Nagyjából mindegyik Arduino panelen van 3.3V-os kivezetés, de ezt jellemzően az FTDI illesztő chipről vezetik ki, annak meg nem túl nagy a terhelhetősége (legalábbis amelyiken FTDI az USB illesztő IC, mert az olcsókon CH340, vagy hamisított FTDI). És ez ugye csak a tápfesz, valamivel még korlátozni kell, hogy az arduino TX lábáról az 5 volt helyett csak 3.3V jusson az ESP RX lábára. Minden problémát egyben megoldja az alábbi kis panel: www.ebay.co.uk/itm/202078842269
Külön 3.3V-os táp IC van rajta, és a jelszintek illesztését is megoldja.

Aztán ott van az akku kapocsfeszültsége. A névleges ugye 3,7 V, de a valóságban ez lehet akár 4,2V is!! Azon meg már kijön a füst az ESP-ből. (na jó, a 4,2-t nem próbáltam, lehet hogy túléli, de a 24V-ot nem szereti, azt már tapasztaltam. :))

Az Arduino kimeneteivel is csínján kell bánni. Mert lehet, hogy megbír 20mA-t minden egyes kimenete, de az összesített kimeneti teljesítmény asszem max. 150mA-lehet. Szóval számolni kell, és amit lehet külön tranzisztorral hajtsunk meg.

kkm.furdancs 2020.02.14. 07:17:02

@KAMA3: Egy apró kérdés a kimenetek terheléséről. Mi lenne, ha szépen csokorba kötném a szervomotorok (egyre több meghajtására van igény) táp és GND vezetékeit egy külön tápra és csak az egy szál vezérlőszál jönne rá az Arduinoból? Esetleg a földet közösíteni.

KAMA3 2020.02.14. 12:14:42

@kkm.furdancs: Igen, ez így működhet. A táp, ha 5 voltos stabilizált, akkor mehet nyugodtan az UNO 5V lábára, ha nem, akkor a Vin-re kösd (a Vin a tápcsatlakozó + leágazása, az 5V pedig a stabilizátor utáni +5V kivezetése, de megtáplálni is lehet onnan az Arduinokat. A GND lábak össze vannak kötve a tápcsatlakozó - lábával.). A szervok tápjait és GND-ket (az UNO-GND-jét is) is közösíteni kell. Meg minden egyéb szenszor GND-jét is.

kkm.furdancs 2020.02.14. 14:41:06

@KAMA3: Köszönöm szépen! Az lenne igazi siker, ha az egész hóbelevanc elműködne az akkucella 3.7 V feszültségéről. Persze, sorba köthetek kettőt és azt egy kis áramkörrel lecsökkenteni pont ötre. Viszont akkor a töltés lenne bonyolultabb. Vagy kivehető és külön-külön tölthető akksik az USB bemenetű kis töltőáramkörrel (már különben is beépítettem a 3D tervekbe az összes panelt) és külön - nem USB töltő kéne neki - ami már megint egy feszültségcsökkentős mutatvány.
Egyébként a robotkerék motorok már egy akkucelláról is túl gyorsan forognak, PWM-el csökkenteni kell a fordulatszámot.
Szóval, majd elválik. Igazság szerint egy időben max 2 szervo megy.

KAMA3 2020.02.14. 20:45:03

@kkm.furdancs: Hülye ötlet, de egy power bank kéne neked, vagy legalábbis az elektronika belőle. Intézi a töltést, az 5 voltot, még az akkut is védi. Az egy cellás verzió a legelterjedtebb. Kérdés hogy melyik mekkora árammal terhelhető...

kkm.furdancs 2020.02.15. 08:31:04

Nem, nem, tökéletesen igazad van. Nem ültem le átgondolni, hogy mit akarok és milyen koncepció alapján. Igaz, az ötletek és bővítés folyamatosan záporoztak. Egyszerűen nem jutott eszembe ez a kézenfekvő ötlet. Simán lecserélném a korábban beszerzett alkotóelemeket, de már minden panelt egybeterveztem és nem volt könnyű menet. Ha nem működik, legalább lesz komoly érv a csere mellett.
Annyit még talán, hogy pákabarát alkatrészekből építve nem kell kábellel összelkötni az USB csatlakozókat, hanem belső vezetékeléssel megoldható. De mondom, jó ötlet, ha a másikkal nem megy - azaz nem szereti majd a 3.7V tápot valamelyik fő komponens - akkor powerbank lesz.

Még mindig szóba kerülhet a DC-UP áramkör is. Mindjárt bevásárolok további szervo motorokból és veszek egy olyat is.

kkm.furdancs 2020.02.19. 12:04:19

@KAMA3: Meglátásod bölcs volt, Jó Uram!
Tapasztalatok:
- Az Arduino (panel) megbolondul kettőnél több szervo nemhogy hajtásától, de puszta jelenlététől. Ha már be van dugva a vezérlővezeték, fura dolgokat művel.
- Sajnos a panel nem indul el egyetlen akkucellától, de kettőtől már igen.
- Viszont ha egy cellát rákötök a szervók egyesített táp+GND vezetékére és közösítem a panellal, akkor megy rendesen, de az USB-nek ott kell lennie, hogy táplálja a mikrokontrollelrt.
- A szervók - ahogy ezt vártam is - nem szeretik a 7.2V táplálást.
Jól van! :)
Következő lépés, hogy vagy megnövelem egy cella kimeneti feszültségét egy már beszerzett kis áramkörrel, amíg eléri a "már megy a panel, de a szervók sem gyorsulnak be (szerintem ez 5V)
Vagy pedig két cellát használok és közös pontjukat kivezetem szervo tápnak.

Kéne keresni egy környékbeli gyengeáramú szakembert. A mechanika szépen alakul, de jobb lenne együttműködni egy hozzáértővel.