Sommario:
- Passaggio 3: configura il tuo sistema di localizzazione per interni
- Passaggio 4: adattare il software Python
Video: Localino tiene traccia di Roomba IRobot, mappa l'ambiente e consente il controllo.: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Per costruire il bridge WiFi-UART, puoi controllare questo repository github:
Ha una buona base per iniziare. Assicurati di leggere bene le linee guida, perché Roomba VCC durante la ricarica aumenta fino a 20 Volt! Se aggiungi un ESP8266 senza un convertitore buck adeguato che funziona anche fino a 20 V e converte fino a 3,3 V, danneggerai il tuo ESP.
Assicurati inoltre di utilizzare un traslatore di livello (ad esempio utilizzando un divisore di tensione) per spostare i livelli logici UART a 5 V dal Roomba a 3,3 V, che vengono utilizzati dall'ESP.
Un altro dettaglio importante è che il convertitore buck dovrebbe avere 300 mA, ma non molto meno o molto di più (a seconda del convertitore buck stesso). Ce ne sono alcuni là fuori che possono fare molta più corrente, ma causano il crash di Roomba perché assorbono troppa corrente durante l'avvio. Abbiamo scoperto che il regolatore di tensione step-down Pololu 3.3V, 300mA (D24V3F3) funziona perfettamente. Le versioni alternative che hanno 500 mA / 600 mA hanno causato l'arresto anomalo dell'interfaccia UART di Roomba. Fondamentalmente il Roomba reagiva alla pressione del pulsante, ma non ai comandi tramite l'interfaccia UART. Una volta che ciò è accaduto, abbiamo dovuto rimuovere la batteria di Roomba e riavviare a freddo Roomba con il bridge WiFi-UART collegato. Tuttavia, solo il D24V3F3 ha funzionato bene.
A parte questo dettaglio tecnico, devi aggiungere ulteriori comandi al codice, che puoi trovare nelle specifiche dell'interfaccia aperta di Roomba. Dovrai aggiungere tutti i comandi a cui vuoi far reagire il tuo roomba (ad esempio, indietro, avanti, velocità, ecc.).
esempi all'interno dell'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); }
se scrivi in lua sembra un po' diverso, un esempio per una svolta a SINISTRA sarebbe simile a questo:
if(_GET.pin == "LEFT")allora print ('\137'); --VOR
tmr.delay(100);
stampa ('\00'); -- Velocità = 200 = 0x00C8 -> 0 e 200
tmr.delay(100);
stampa ('\200'); -- Velocità
tmr.delay(100);
stampa ('\254'); -- Raggio = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay(100);
stampa ('\12'); -- Giro
fine
Assicurati di dover correggere la descrizione dell'interfaccia aperta per Roomba. Sono disponibili almeno due specifiche dell'interfaccia aperta.
per la serie Roomba 5xx:
per la serie Roomba 6xx:
Dopo aver costruito il tuo bridge WiFi-UART e testato i comandi, hai fatto un grande passo avanti. Questo video dimostra che l'applicazione e l'approccio funzionano. Eravamo un po' pigri, all'interfaccia web mancano tutti gli altri comandi di controllo, come avanti, indietro, velocità, destra, sinistra e così via, ma puoi impartire i comandi tramite http. Ad ogni modo, è solo una dimostrazione che il telecomando di Roomba funziona con un semplice componente hardware e software utilizzando un ESP8266.
Ora che puoi controllare il tuo Roomba in remoto da un'applicazione per PC, l'unica cosa che manca è la localizzazione interna. Ne abbiamo bisogno per chiudere il ciclo di feedback, perché il nostro obiettivo era guidare il robot in una certa direzione. Facciamolo.
Passaggio 3: configura il tuo sistema di localizzazione per interni
Per chiudere il ciclo di feedback ci avvaliamo di un sistema di localizzazione indoor. Usiamo Localino per questo. Il sistema Localino è composto da "ancore" e "tag". Gli ancoraggi sono posizionati in posizioni fisse all'interno della stanza e individuano la posizione dell'etichetta mobile (che è posizionata sul Roomba). L'elaborazione della posizione viene eseguita in un'applicazione per PC. Questo è un grande vantaggio, perché puoi controllare Roomba anche dallo stesso PC! C'è un codice sorgente gratuito disponibile dal sito web di Localino, è scritto in python e c'è anche un flusso in tempo reale disponibile che offre le coordinate XYZ del tag. Il flusso di dati è disponibile tramite la rete UDP, ma puoi anche aggiungere MQTT o qualsiasi altra cosa fantasiosa che ti piace. Se conosci Python, ci sono un sacco di librerie che ti aiutano.
In questo video viene dimostrata la localizzazione di Roomba. Pertanto abbiamo 4 ancore installate nella stanza in posizioni fisse, che consentono il posizionamento 3D del Roomba. In generale, avremmo bisogno solo di 3 ancoraggi, perché il Roomba probabilmente non si sposterà sull'asse Z, quindi 2D sarebbe sufficiente. Ma poiché gli ancoraggi si trovano all'altezza della presa principale CA (che è a circa 30 cm dal suolo), una configurazione 2D causerebbe piccoli errori di stima della posizione. Quindi abbiamo deciso di avere 4 ancore e localizzare in 3D.
Ora che abbiamo la posizione di Roomba, il nostro prossimo passo è controllare Roomba dalla stessa applicazione. L'idea è quella di utilizzare la verità del terreno e stimare un percorso di pulizia perfetto per il robot. Con l'utilizzo del Localino possiamo chiudere l'anello di retroazione e controllare il robot dall'applicazione PC.
Note di installazione
Posizionare gli ancoraggi Localino all'interno della stanza in diverse posizioni x, y e tre di essi nella stessa posizione z. Posizionare uno dei quattro ancoraggi a un'altezza z diversa per stanza. Assicurati che ci sia una buona copertura dal tag Localino, che si sposterà con Roomba.
Tutte le ancore hanno un ID di ancoraggio univoco, che viene visualizzato sul codice a barre del Localino e può essere letto con lo strumento “configurazione localino”.
Annotare le posizioni in X, Y, Z e gli ID di ancoraggio. Questo è necessario per il Software Processore Localino e deve essere adattato nel file “localino.ini” nella cartella “LocalinoProcessor”
Gli ancoraggi devono puntare verso l'alto o verso il basso in Z (quando l'area XY è coperta), ma non nella direzione dell'area coperta. Inoltre, gli ancoraggi non devono essere coperti da metallo o altro materiale che disturba il segnale wireless. Se ciò non è possibile, dovrebbe esserci anche un certo spazio d'aria tra qualsiasi materiale e l'ancoraggio.
…e c'è dell'altro.
Passaggio 4: adattare il software Python
rimani sintonizzato. e c'è dell'altro.
Consigliato:
Oscilloscopio a doppia traccia: 11 passaggi (con immagini)
Oscilloscopio a doppia traccia: quando ho costruito il mio precedente mini oscilloscopio volevo vedere quanto bene potevo far funzionare il mio microcontrollore ARM più piccolo, un STM32F030 (F030), e ha fatto un buon lavoro. In uno dei commenti è stato suggerito che una "Pillola Blu" con un STM32F103
Consente di riparare un Fitbit Charge 2 insieme. Linee sullo schermo.: 3 passaggi
Consente di riparare un Fitbit Charge 2 insieme. Linee sullo schermo.: Quindi circa 13 supporti dopo aver acquistato il mio primo Fitbit ho iniziato a ricevere linee che attraversavano lo schermo. Ogni giorno un altro si presentava a volte più di uno al giorno. Mi sono preso molta cura del mio Fitbit pensavo e non sapevo perché è iniziato. una volta
Crea una traccia sensoriale a basso costo in pochi minuti!: 10 passaggi (con immagini)
Crea un binario con sensori a basso costo in pochi minuti!: Nel mio precedente Instructable, ti ho mostrato come creare un layout di treno modello con binario di raccordo automatizzato. Utilizzava un segmento di traccia, chiamato "traccia sensoriale". È una cosa molto utile da avere in un plastico ferroviario. Posso essere utilizzato per quanto segue: Blocco
Aumentare la distanza tra il piano in rame e la traccia del segnale: 3 passaggi
Aumentare la distanza tra il piano in rame e la traccia del segnale: sono un hobbista e progetto circuiti stampati (PCB) per i miei blog e video di Youtube. Ho ordinato il mio PCB online da LionCircuits. È un'azienda indiana e hanno una piattaforma automatizzata per la produzione. Esamina automaticamente il tuo Ger
Controllo della temperatura ambiente basato su IOT: 5 passaggi
Controllo della temperatura della stanza basato su IOT: questo è istruibile sul progetto di controllo della temperatura della stanza basato su IOT. Caratteristiche: -1. Accendere automaticamente la ventola al di sopra della temperatura ambiente specificata.2. Spegnere automaticamente la ventola al di sotto della temperatura ambiente specificata.3. Controllo manuale in qualsiasi momento