Taula de continguts:
Vídeo: Localino Tracks Roomba IRobot, mapeja l'entorn i permet el control .: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Per construir el pont WiFi-UART, podeu consultar aquest repositori de github:
Té una base agradable per començar. Assegureu-vos de llegir bé la pauta, perquè el Roomba VCC durant la càrrega augmenta fins a 20 volts. Si afegiu un ESP8266 sense un convertidor adequat que funcioni fins a 20V i es converteixi a 3,3V, danyareu el vostre ESP.
Assegureu-vos també d’utilitzar un canvi de nivell (per exemple, mitjançant un divisor de tensió) per canviar els nivells lògics UART de 5V del Roomba a 3,3V, que utilitzen l’ESP.
Un altre detall important és que el convertidor Buck hauria de tenir 300 mA, però molt menys o molt més (depenent del convertidor Buck en si). N’hi ha per aquí que poden fer molt més corrent, però poden provocar un bloqueig de Roomba perquè treuen massa corrent durant l’inici. Hem descobert que el regulador de tensió descendent (D24V3F3) de Pololu 3,3 V, 300 mA funciona perfectament. Les versions alternatives que tenen 500 mA / 600 mA van provocar un bloqueig de la interfície Roomba UART. Bàsicament, Roomba reaccionava en prémer el botó, però no en les ordres a través de la interfície UART. Un cop passat aquest esdeveniment, vam haver de treure la bateria de Roomba i reiniciar-lo en fred amb el pont WiFi-UART connectat. Tot i això, només el D24V3F3 funcionava bé.
A part d’aquest detall tècnic, heu d’afegir comandes addicionals al codi, que podeu trobar a les especificacions de la interfície oberta de Roomba. Haureu d'afegir totes les ordres a les quals voleu que reaccioni el vostre roomba (per exemple, cap enrere, cap endavant, velocitat, etc.).
exemples dins de l'IDE arduino:
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); }
si escriviu en lua, sembla una mica diferent, un exemple per a un gir ESQUERRA seria així:
if (_GET.pin == "ESQUERRA"), llavors imprimeix ('\ 137'); --VOR
tmr.delay (100);
print ('\ 00'); - Velocitat = 200 = 0x00C8 -> 0 i 200
tmr.delay (100);
print ('\ 200'); - Velocitat
tmr.delay (100);
print ('\ 254'); - Radi = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay (100);
print ('\ 12'); - Gira
final
Assegureu-vos que heu de corregir la descripció de la interfície oberta del vostre Roomba. Hi ha disponibles almenys dues especificacions d'interfície oberta.
per a la sèrie Roomba 5xx:
per a la sèrie Roomba 6xx:
Un cop hàgiu construït el pont WiFi-UART i hàgiu provat les ordres, feu un pas més enllà. Aquest vídeo demostra que l'aplicació i l'enfocament funcionen. Érem una mica mandrosos, a la interfície web li falten totes les altres ordres de control, com ara endavant, enrere, velocitat, dreta, esquerra, etc., però podeu emetre les ordres mitjançant http. De totes maneres, és només una demostració que el control remot del Roomba funciona amb un fàcil maquinari i programari mitjançant un ESP8266.
Ara, ja que podeu controlar el Roomba remotament des d’una aplicació per a PC, l’únic que falta és la localització interior. Necessitem això per tancar el bucle de retroalimentació, perquè el nostre objectiu era dirigir el robot cap a una determinada direcció. Anem a fer-ho.
Pas 3: configureu el sistema de localització interior
Per tancar el bucle de retroalimentació fem servir un sistema de localització interior. Utilitzem Localino per a això. El sistema Localino està format per "ancoratges" i "etiquetes". Els ancoratges es col·loquen en llocs fixos dins de l’habitació i localitzen la posició de l’etiqueta mòbil (que es col·loca al Roomba). El processament de la ubicació es realitza en una aplicació de PC. Això suposa un gran avantatge, ja que també podeu controlar Roomba des del mateix PC. Hi ha codi font gratuït disponible al lloc web de Localino, està escrit en python i també hi ha un flux en temps real que ofereix les coordenades XYZ de l’etiqueta. El flux de dades està disponible a través de la xarxa UDP, però també podeu afegir MQTT o qualsevol altra cosa que vulgueu. Si coneixeu Python, hi ha un munt de biblioteques que us ajudaran.
En aquest vídeo es demostra la localització del Roomba. Per tant, tenim 4 ancoratges configurats a la sala en llocs fixos, que permeten el posicionament en 3D del Roomba. En general, només necessitaríem 3 ancoratges, ja que probablement Roomba no es mourà a l’eix Z, per tant, 2D seria suficient. Però com que els ancoratges es troben a l’alçada dels endolls principals de CA (que es troba a uns 30 cm sobre el terra), una configuració en 2D provocaria pocs errors d’estimació de posició. Així que vam decidir tenir 4 ancoratges i localitzar-los en 3D.
Ara, ja que tenim la posició del Roomba, el nostre següent pas és controlar Roomba des de la mateixa aplicació. La idea és utilitzar la veritat del terreny i estimar un camí de neteja perfecte per al robot. Amb l’ús de Localino podem tancar el bucle de retroalimentació i controlar el robot des de l’aplicació de PC.
Observacions sobre la configuració
Col·loqueu els ancoratges Localino dins de l'habitació en diferents posicions x, y i tres d'elles a la mateixa posició z. Col·loqueu un de cada quatre ancoratges a una alçada diferent z per habitació. Assegureu-vos que hi hagi una bona cobertura de l’etiqueta Localino, que es mourà amb Roomba.
Tots els ancoratges tenen un identificador d’ancoratge uniqe, que es mostra al codi de barres del Localino i es pot llegir amb l’eina de “configuració localino”.
Tingueu en compte les posicions de X, Y, Z i els identificadors d'ancoratge. Això és necessari per al programari del processador Localino i s’ha d’adaptar al fitxer “localino.ini” de la carpeta “LocalinoProcessor”
Els ancoratges haurien d’assenyalar cap amunt o cap avall en Z (quan la zona XY estigui coberta), però no en la direcció de la zona coberta. Els ancoratges tampoc no haurien de ser coberts per metall ni cap altre material pertorbador del senyal sense fils. Si això no és possible, també hi hauria d’haver un cert buit d’aire entre qualsevol material i l’ancoratge.
…més per venir.
Pas 4: adapteu el programari Python
estigueu atents. més per venir.
Recomanat:
Permet solucionar un Fitbit Charge 2 junts. Línies a la pantalla: 3 passos
Permet solucionar un Fitbit Charge 2 junts. Línies a la pantalla. Així doncs, aproximadament 13 muntures després de comprar el meu primer Fitbit vaig començar a obtenir línies que passaven per la pantalla. Cada dia en apareixia un altre de vegades més que un al dia. Vaig tenir molt bona cura del meu Fitbit que pensava i no sabia per què va començar. un cop
Com configurar l'entorn de programació AVR a Linux: 5 passos
Com configurar l'entorn de programació AVR a Linux: si voleu programar microcontroladors AVR al Windows, teniu un Studio, però a Linux només tenim un tipus. AVRDUDE és la interfície de línia d'ordres per programar xips AVR, pot ser una mica complicat. per configurar al principi. En aquest instructiu, estaré s
Làmpada LED Lotus (entorn natural de sostenibilitat): 4 passos
Làmpada LED de Lotus (entorn natural de sostenibilitat): resum: una làmpada amb una forma similar a la coneguda flor de Lotus. La idea darrere del llum és que es pot utilitzar en diferents configuracions en funció de les preferències dels usuaris finals, ja que se li donarà la llum brillant quan el (Lotus flo
Arduino Air Monitor Shield. Viure en un entorn segur: 5 passos (amb imatges)
Arduino Air Monitor Shield. Viu en un entorn segur: hola, en aquest Instructabe faré un escut de control de l'aire per a arduino. La qual cosa pot detectar fuites de GLP i concentració de CO2 a la nostra atmosfera. I també emet un so, quan s’activa un zumbador LED i el ventilador d’escapament cada vegada que es detecta GLP o el concentrat
Permet fer una aplicació de realitat augmentada per a MEMES !: 8 passos
Permet fer una aplicació de realitat augmentada per a MEMES!: En aquest instructiu, farem una aplicació de realitat augmentada per a Android i IOS a Unity3D que utilitza l'API de Google per buscar memes. Utilitzarem la detecció del pla de terra de Vuforia a Unity, de manera que aquesta aplicació mòbil funcionarà durant