Turinys:
- 3 veiksmas: nustatykite patalpų lokalizavimo sistemą
- 4 žingsnis: pritaikykite „Python“programinę įrangą
Video: „Localino“seka „Roomba IRobot“, suplanuoja aplinką ir leidžia valdyti .: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Norėdami sukurti „WiFi-UART“tiltą, galite patikrinti šią „Github“repą:
Tai turi gražų pagrindą pradėti. Būtinai gerai perskaitykite gaires, nes įkrovimo metu „Roomba VCC“padidėja iki 20 voltų! Jei pridėsite ESP8266 be tinkamo „Buck“keitiklio, kuris veikia net iki 20 V, o žemyn-iki 3,3 V, sugadinsite savo ESP.
Taip pat būtinai naudokite lygio perjungiklį (pvz., Naudodami įtampos skirstytuvą), kad perkeltumėte 5 V UART logikos lygius iš „Roomba“į 3,3 V, kuriuos naudoja ESP.
Kita svarbi detalė yra ta, kad kainų keitiklis turėtų turėti 300 mA, bet daug mažiau arba daug daugiau (priklausomai nuo paties keitiklio). Kai kurie iš jų gali padaryti daug didesnę srovę, tačiau gali sukelti „Roomba“gedimą, nes jie paleidžia per daug srovės paleidimo metu. Mes sužinojome, kad „Pololu 3.3V, 300mA Step-Down Voltage Regulator“(D24V3F3) veikia puikiai. Alternatyvios versijos, turinčios 500 mA / 600 mA, sukėlė „Roomba UART“sąsajos gedimą. Iš esmės „Roomba“reagavo paspaudus mygtuką, bet ne į komandas per UART sąsają. Kai tai atsitiko, turėjome išimti „Roomba“bateriją ir šaltai iš naujo paleisti „Roomba“su prijungtu „WiFi-UART“tiltu. Tačiau gerai veikė tik D24V3F3.
Be šios techninės detalės, prie kodo turite pridėti papildomų komandų, kurias rasite „Roomba“atvirosios sąsajos specifikacijose. Turėsite pridėti visas komandas, į kurias norite, kad jūsų „roomba“reaguotų (pvz., Atgal, pirmyn, greitį ir pan.).
„arduino IDE“pavyzdžiai:
void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }
void goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }
void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serijinis atspaudas (c); }
void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serijinis atspaudas (c); }
jei rašote lua, tai atrodo šiek tiek kitaip, posūkio į kairę pavyzdys atrodytų taip:
jei (_GET.pin == "LEFT"), tada spausdinkite ('\ 137'); -VOR
tmr.delsimas (100);
spausdinti ('\ 00'); -Greitis = 200 = 0x00C8 -> 0 ir 200
tmr.delsimas (100);
spausdinti ('\ 200'); - Greitis
tmr.delsimas (100);
spausdinti ('\ 254'); - Spindulys = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delsimas (100);
spausdinti ('\ 12'); - Pasukite
galas
Įsitikinkite, kad turite ištaisyti „Roomba“atviros sąsajos aprašą. Yra bent dvi atviros sąsajos specifikacijos.
„Roomba 5xx“serijai:
„Roomba 6xx“serijai:
Sukūrę „WiFi-UART“tiltą ir išbandę komandas, padarytas didelis žingsnis toliau. Šis vaizdo įrašas parodo, kad programa ir metodas veikia. Mes buvome šiek tiek tingūs, žiniatinklio sąsajoje trūksta visų kitų valdymo komandų, tokių kaip pirmyn, atgal, greičio, dešinės, kairės ir pan., Tačiau komandas galite išduoti per http. Bet kokiu atveju, tai tik parodymas, kad „Roomba“nuotolinio valdymo pultas veikia su paprasta aparatine ir programine įranga, naudojant ESP8266.
Dabar, kai galite valdyti „Roomba“nuotoliniu būdu iš kompiuterio programos, trūksta tik patalpų lokalizacijos. Mums to reikia norint uždaryti grįžtamojo ryšio ciklą, nes mūsų tikslas buvo nukreipti robotą tam tikra kryptimi. Padarykime tai.
3 veiksmas: nustatykite patalpų lokalizavimo sistemą
Norėdami uždaryti grįžtamojo ryšio ciklą, naudojame patalpų lokalizavimo sistemą. Tam naudojame „Localino“. „Localino“sistemą sudaro „inkarai“ir „žymos“. Inkarai yra fiksuotose vietose kambario viduje ir nustato judančios žymės padėtį (kuri yra ant „Roomba“). Vietos apdorojimas atliekamas kompiuterio programoje. Tai labai naudinga, nes jūs taip pat galite valdyti „Roomba“iš to paties kompiuterio! „Localino“svetainėje yra nemokamas šaltinio kodas, jis parašytas „python“, taip pat yra srautas realiuoju laiku, siūlantis žymos XYZ koordinates. Duomenų srautą galima pasiekti per UDP tinklą, tačiau taip pat galite pridėti MQTT ar bet kurį kitą mėgstamą dalyką. Jei pažįstate „Python“, yra daugybė bibliotekų, kurios jums padeda.
Šiame vaizdo įraše parodyta „Roomba“lokalizacija. Todėl mes turime 4 inkarus, esančius patalpoje fiksuotose vietose, leidžiančias 3D išdėstyti „Roomba“. Apskritai mums prireiktų tik 3 inkarų, nes „Roomba“greičiausiai nejudės Z ašyje, todėl pakaktų 2D. Bet kadangi inkarai yra kintamosios srovės kištukų aukštyje (maždaug 30 cm virš žemės), 2D sąranka sukeltų mažai padėties įvertinimo klaidų. Taigi mes nusprendėme turėti 4 inkarus ir lokalizuoti 3D.
Dabar, kai turime „Roomba“poziciją, kitas žingsnis yra valdyti „Roomba“iš tos pačios programos. Idėja yra pasinaudoti pagrindine tiesa ir įvertinti tobulą roboto valymo kelią. Naudodami „Localino“galime uždaryti grįžtamojo ryšio ciklą ir valdyti robotą iš kompiuterio programos.
Sąrankos pastabos
Padėkite „Localino“inkarus kambario viduje skirtingose x, y padėtyse ir tris iš jų toje pačioje z padėtyje. Padėkite vieną iš keturių inkarų skirtingame aukštyje z kiekviename kambaryje. Įsitikinkite, kad „Localino“žyma, kuri bus perkelta kartu su „Roomba“, yra gerai padengta.
Visi inkarai turi unikalų inkaro ID, kuris rodomas „Localino“brūkšniniame kode ir kurį galima nuskaityti naudojant „localino configuration“įrankį.
Atkreipkite dėmesį į X, Y, Z pozicijas ir inkaro ID. Tai reikalinga „Localino“procesoriaus programinei įrangai ir turi būti pritaikyta aplanke „LocalinoProcessor“esančiame faile „localino.ini“.
Inkarai turi būti nukreipti aukštyn arba žemyn Z (kai XY zona yra padengta), bet ne dengtos zonos kryptimi. Inkarai taip pat neturėtų būti uždengti metalu ar bet kokia kita belaidį signalą trikdančia medžiaga. Jei tai neįmanoma, tarp bet kokios medžiagos ir inkaro taip pat turėtų būti tam tikras oro tarpas.
… dar ateis.
4 žingsnis: pritaikykite „Python“programinę įrangą
sekite naujienas. daugiau ateis.
Rekomenduojamas:
Burbulinis žadintuvas leidžia pabusti smagiai (ish): 7 žingsniai (su nuotraukomis)
Žadintuvas su burbulu daro pabudimą smagiu (ish): pabusti iki šurmuliuojančio žadintuvo yra negerai. Aš esu iš tų žmonių, kurie nemėgsta pabusti prieš patekant saulei (arba jau daug valandų). Taigi kas gali būti geresnis būdas pabusti, nei surengti burbulų vakarėlį lovoje! Naudojant arduino ir
„Atari Punk“konsolė su kūdikiu 8 žingsnių seka: 7 žingsniai (su nuotraukomis)
„Atari Punk“konsolė su kūdikių 8 žingsnių sekos sekimo priemone: Ši tarpinė konstrukcija yra „viskas viename“„Atari Punk“konsolė ir „Baby 8 Step“sekos sekimo priemonė, kurią galite frezuoti „Bantam Tools“stalinių PCB frezavimo staklėmis. Jį sudaro dvi plokštės: viena yra vartotojo sąsajos (UI) plokštė, o kita - naudingoji
„Lotus“LED lempa (tvari gamtinė aplinka): 4 žingsniai
„Lotus“LED lempa (tvari gamtinė aplinka): Santrauka: Lempa, kurios forma panaši į gerai žinomą lotoso gėlę. Lempos idėja yra ta, kad ji gali būti naudojama skirtingose konfigūracijose, atsižvelgiant į galutinių vartotojų pageidavimus, nes ji bus švytinti, kai (Lotus flo
Prisitaikanti aplinka (bendrabučio automatizavimas): 5 žingsniai
Prisitaikanti aplinka (bendrabučio automatika): Šis projektas yra mano įsigilinimo į automatizavimą pradžia. „Raspberry Pi“pasirinkau kaip „smegenis“šios operacijos, nes GPIO turi tiek daug įvairių programų ir įmontuotą WIFI/„Bluetooth“. Mano įvadas į prototipų klasę buvo iššūkis
RGB LED spalvų seka - be mikroprocesoriaus: 3 žingsniai
RGB LED spalvų seka - be mikroprocesoriaus: „Rodykite spalvų šviesos diodų spalvų derinius nenaudodami mikroprocesoriaus. Naudodami vieną loginį lustą, kurio kaina yra mažesnė nei 50 centų, galite sukurti paprastą spalvų ciklo ekraną RGB šviesos diodams. Keli čiaupai viršuje naudojami „programuoti“diską