Përmbajtje:
Video: Localino Tracks Roomba IRobot, Hartat e Mjedisit dhe Lejon Kontrollin .: 4 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Për të ndërtuar urën WiFi-UART, mund të shikoni këtë repo github:
Ka një bazë të mirë për të filluar. Sigurohuni që e keni lexuar mirë udhëzuesin, sepse Roomba VCC gjatë karikimit rritet deri në 20 Volt! Nëse shtoni një ESP8266 pa një konvertues të duhur që punon edhe deri në 20V dhe konvertohet në 3.3V, ju do të dëmtoni ESP-në tuaj.
Gjithashtu sigurohuni që të përdorni një ndërrues niveli (p.sh. duke përdorur një ndarës tensioni) për të zhvendosur nivelet logjike 5V UART nga Roomba në 3.3V, të cilat përdoren nga ESP.
Një detaj tjetër i rëndësishëm është, se konvertuesi i dollarit duhet të ketë 300mA, por jo më pak ose shumë më tepër (në varësi të vetë konvertuesit të dollarit). Ka disa atje që mund të bëjnë shumë më tepër aktuale, por bëjnë që Roomba të rrëzohet sepse tërheqin shumë rrymë gjatë fillimit. Ne zbuluam se Rregullatori i Tensionit Hapës poshtë Pololu 3.3V, 300mA (D24V3F3) funksionon në mënyrë perfekte. Versionet alternative të cilat kanë 500mA / 600mA shkaktuan ndërprerjen e ndërfaqes Roomba UART. Në thelb Roomba po reagonte në shtypjen e butonit, por jo në komandat përmes ndërfaqes UART. Pasi kjo ndodhi, na u desh të hiqnim baterinë Roomba dhe të rinisnim të ftohtë Roomba me urën WiFi-UART të bashkangjitur. Sidoqoftë, vetëm D24V3F3 funksionoi mirë.
Përveç atij detaji teknik, duhet të shtoni komanda shtesë në kod, të cilat mund t'i gjeni në specifikimet e ndërfaqes së hapur Roomba. Ju do të duhet të shtoni të gjitha komandat në të cilat dëshironi të reagojë dhoma juaj (për shembull, prapa, përpara, shpejtësia, etj.).
shembuj brenda arduino IDE:
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}; Serial.print (c); }
void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print (c); }
nëse shkruani në lua duket pak më ndryshe, një shembull për një kthesë të majtë do të duket kështu:
nëse (_GET.pin == "LEFT") atëherë printoni ('\ 137'); --VOR
tmr.vonesa (100);
print ('\ 00'); -Shpejtësia = 200 = 0x00C8 -> 0 dhe 200
tmr.vonesa (100);
print ('\ 200'); - Shpejtësia
tmr.vonesa (100);
print ('\ 254'); - Rrezja = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.vonesa (100);
print ('\ 12'); - Ktheni
fund
Sigurohuni që duhet të korrigjoni përshkrimin e ndërfaqes së hapur për Roomba tuaj. Ekzistojnë të paktën dy specifikime të ndërfaqes së hapur.
për seritë Roomba 5xx:
për seritë Roomba 6xx:
Pasi të keni ndërtuar urën tuaj WiFi-UART dhe të keni testuar komandat që keni bërë një hap të madh më tej. Kjo video demonstron që aplikacioni dhe qasja funksionojnë. Ne ishim pak dembelë, në webinterface mungojnë të gjitha komandat e tjera të kontrollit, si përpara, prapa, shpejtësia, djathtas, majtas dhe kështu me radhë, por ju mund t'i lëshoni komandat përmes http. Sidoqoftë, është vetëm një demonstrim që telekomanda e Roomba punon me një pjesë të lehtë të pajisjeve dhe softuerit duke përdorur një ESP8266.
Tani pasi mund ta kontrolloni Roomba -n tuaj nga distanca nga një aplikacion PC, e vetmja gjë që mungon është lokalizimi i brendshëm. Ne kemi nevojë për këtë për të mbyllur lakun e reagimeve, sepse qëllimi ynë ishte ta drejtonim robotin në një drejtim të caktuar. Le ta bejme kete.
Hapi 3: Konfiguroni sistemin tuaj të lokalizimit të brendshëm
Për të mbyllur lakun e reagimeve ne përdorim një sistem lokalizimi të brendshëm. Ne përdorim Localino për këtë. Sistemi Localino përbëhet nga "spiranca" dhe "etiketa". Spirancat vendosen në vende fikse brenda dhomës dhe gjejnë pozicionin e etiketës lëvizëse (e cila vendoset në Roomba). Përpunimi i vendndodhjes bëhet në një aplikacion PC. Ky është një avantazh i madh, sepse ju gjithashtu mund të kontrolloni Roomba nga i njëjti kompjuter! Ekziston një kod burimi falas i disponueshëm nga faqja e internetit Localino, është shkruar në python dhe ekziston gjithashtu një transmetim në kohë reale që ofron koordinatat XYZ të etiketës. Rrjedha e të dhënave është e disponueshme përmes rrjetit UDP, por gjithashtu mund të shtoni MQTT ose ndonjë gjë tjetër të zbukuruar që ju pëlqen. Nëse e njihni Python, ka shumë biblioteka që ju ndihmojnë.
Në këtë video, demonstrohet lokalizimi i Roomba. Prandaj ne kemi 4 spiranca të vendosura në dhomë në vende të caktuara, të cilat lejojnë pozicionimin 3D të Roomba. Në përgjithësi, ne do të kërkonim vetëm 3 spiranca, sepse Roomba ndoshta nuk do të lëvizë në boshtin Z, prandaj 2D do të ishte e mjaftueshme. Por për shkak se spirancat janë të vendosura në lartësinë e prizave kryesore AC (e cila është afërsisht 30 cm mbi tokë) një konfigurim 2D do të shkaktonte pak gabime në vlerësimin e pozicionit. Kështu që ne vendosëm të kishim 4 spiranca dhe të lokalizoheshim në 3D.
Tani pasi kemi pozicionin e Roomba hapi ynë tjetër është të kontrollojmë Roomba nga i njëjti aplikacion. Ideja është të përdorni të vërtetën themelore dhe të vlerësoni një rrugë të përsosur pastrimi për robotin. Me përdorimin e Localino ne mund të mbyllim lakin e reagimeve dhe të kontrollojmë robotin nga aplikacioni i PC.
Vërejtjet e konfigurimit
Poziciononi spirancat Localino brenda dhomës në pozicione të ndryshme x, y dhe tre prej tyre në të njëjtin pozicion z. Poziciononi një nga katër spiranca në një lartësi të ndryshme z për dhomë. Sigurohuni që ka mbulim të mirë nga etiketa Localino, që do të lëvizë me Roomba.
Të gjitha spirancat kanë një ID spirancë unike, e cila shfaqet në barkodin e Localino dhe mund të lexohet me mjetin "konfigurimi localino".
Vini re pozicionet në X, Y, Z dhe ID -të e ankorimit. Kjo kërkohet për Softuerin e Përpunuesit Localino dhe duhet të përshtatet në skedarin "localino.ini" në dosjen "LocalinoProcessor"
Spirancat duhet të drejtohen lart ose poshtë në Z (kur zona XY është e mbuluar), por jo në drejtim të zonës së mbuluar. Spirancat gjithashtu nuk duhet të mbulohen nga metali ose ndonjë material tjetër shqetësues i sinjalit pa tel. Nëse kjo nuk është e mundur, duhet të ketë gjithashtu një hendek të caktuar ajri midis çdo materiali dhe spirancës.
… Më shumë për të ardhur.
Hapi 4: Përshtatni Softuerin Python
rri i sintonizuar. më shumë për të ardhur.
Recommended:
Rrotullimi i ventilatorit duke përdorur servo motorin dhe kontrollin e shpejtësisë: 6 hapa
Rrotullimi i ventilatorit duke përdorur Servo Motor dhe Kontrollin e Shpejtësisë: Në këtë tutorial do të mësojmë se si të rrotulloni një tifoz me shpejtësi të rregullueshme duke përdorur servo motor, potenciometër, arduino dhe Visuino. Shikoni videon
DC Motor dhe kodues për pozicionin dhe kontrollin e shpejtësisë: 6 hapa
DC Motor dhe Encoder for Position and Speed Control: Hyrje Ne jemi një grup studentësh UQD10801 (Robocon I) nga Universiti Tun Hussei Onn Malaysia (UTHM). Ne kemi 9 grupe në këtë kurs. Grupi im është grupi 2. Aktiviteti i grupit tonë është DC motor dhe kodues për kontrollin e pozicionit dhe shpejtësisë. Objekti i grupit tonë
HARTAT E INTEGRUAR T G GOOGLE: 4 hapa
HARTAT E INTEGRUARA T G GOOGLE: Në këtë projekt ne do të zbatojmë një pajisje që e kthen indikacionin nga Google Maps në një dalje ndijore për të demonstruar se mund të përdorim një sistem navigimi të integruar në trupin tonë. Ne do ta zbatojmë këtë duke u lidhur Ardui ynë
Re IOT Weather - Duke përdorur OpenWeather Hartat: 11 hapa (me fotografi)
Re IOT Weather - Duke përdorur OpenWeatherMaps: Kjo është një re që varet nga tavani i një dhome dhe luan modele të caktuara bazuar në rezultatin e kthyer nga interneti. Ai merr të dhënat e motit nga OpenWeatherMaps. Mund të kontrollohet me dorë përmes një ndërfaqeje në internet ose automatike
Rrjeti i Stacioneve Sensore për Ndriçimin dhe Kontrollin e Sigurisë: 5 hapa (me fotografi)
Rrjeti i Stacioneve Sensore për Ndriçimin dhe Kontrollin e Sigurisë: Me këtë rrjet stacionesh sensor të konfiguruar në një mënyrë master/skllav, ju do të jeni në gjendje të bëni ndriçim dhe kontroll sigurie në shtëpinë tuaj. Këto stacione sensori (Node01, Node02 në këtë projekt) janë të lidhura me një stacion kryesor (Node00) të lidhur me ju