Aggiungiamo un ESP8266 ad un aspirapolvere Roomba

ESP8266 Roomba 761

Un ESP8266 può essere utilizzato per connettersi a un Roomba 761 e controllarlo tramite WiFi attraverso un’interfaccia seriale chiamata ROI.

Girellando sul blog denominato “Arduino, ESP8266, ESP32 & Raspberry Pi stuff” abbiamo trovato uno schema di base per pilotare la Roomba Open Interface con un semplice ESP8266 collegato tramite wifi. Vediamo come.

Requisiti

Passaggi

  1. Cablaggio dell’ESP8266 al Roomba:
    • Collegare il pin TX dell’ESP8266 al pin RX del Roomba.
    • Collegare il pin RX dell’ESP8266 al pin TX del Roomba.
    • Assicurarsi che la terra (GND) dell’ESP8266 sia collegata al GND del Roomba.
  2. Impostazione del Roomba:
    • Il Roomba deve essere in modalità provvisoria o modalità completa per accettare i comandi.
    • La modalità predefinita all’accensione è la modalità passiva. Sarà necessario inviare un comando per commutarla.
  3. Programmazione dell’ESP8266:
    • Il programma dovrebbe collegare l’ESP8266 a una rete WiFi e configurare un semplice server Web per ricevere comandi.
    • Dovrebbe aprire una connessione seriale al Roomba e inviare i comandi appropriati in base alle richieste del server Web.

Codice sorgente

Ecco un programma di esempio per ESP8266 che utilizza l’IDE Arduino:

Spiegazione

  1. WiFi Connection: ESP8266 si connette alla rete WiFi specificata.
  2. Web Server: ESP8266 imposta un server Web con endpoint /start e /stop per avviare e arrestare Roomba.
  3. Comunicazione seriale: la funzione sendRoombaCommand() invia comandi tramite la connessione UART a Roomba.
  4. Comandi Roomba:
    128 è il comando per avviare Roomba in modalità passiva.
    131 commuta Roomba in modalità provvisoria, consentendogli di ricevere comandi di movimento.
    133 fa tornare Roomba alla sua base (fermandolo di fatto).

Roomba ESP8266

 

Note

  • Questa è un’implementazione semplice; potresti dover regolare la velocità in baud se il tuo Roomba ne usa una diversa (il valore predefinito è solitamente 115200).
  • Assicurati che ESP8266 e Roomba abbiano livelli di tensione compatibili, poiché ESP8266 funziona a 3,3 V e Roomba potrebbe usare 5 V.
  • Puoi espandere il programma per includere funzionalità aggiuntive come modalità di pulizia o altri comandi specifici di Roomba.

Roomba 761 ha diverse modalità che controllano il suo comportamento, come definito dalla Roomba Open Interface (ROI). Ogni modalità consente diversi livelli di controllo e funzionalità. Ecco le modalità disponibili:

Modalità Spento

Roomba è completamente spento. Non risponde ad alcun comando in questo stato e devi premere manualmente il pulsante CLEAN per accenderlo.

Modalità Passiva (Default)

Quando accendi per la prima volta Roomba, entra in Modalità Passiva. In questa modalità:

  • I sensori di Roomba possono essere letti.
  • L’interfaccia seriale è attiva, quindi puoi comunicare con essa.
  • Non puoi controllare direttamente i motori o gli attuatori di Roomba.
  • Per uscire da questa modalità, devi inviare comandi specifici tramite l’interfaccia seriale.

Modalità Sicura

Questa modalità consente il controllo parziale di Roomba. Puoi:

  • Guidare Roomba e controllare i suoi motori.
  • Leggere i dati dei sensori.
  • Controllare altri attuatori, come il motore dell’aspirapolvere e la spazzola laterale.

Roomba passerà automaticamente alla Modalità Passiva se:

  • Rileva un dirupo (per evitare di cadere dalle scale).
  • La ​​tensione della batteria scende troppo.
  • Rileva altre condizioni critiche. Questa modalità è più sicura per i test perché protegge automaticamente il dispositivo da condizioni potenzialmente dannose.

Modalità completa

Questa modalità ti dà il controllo completo sul Roomba. Puoi:

  • Controllare tutti i suoi motori, sensori e attuatori senza alcun override di sicurezza automatico.
  • Usa questa modalità per funzionalità avanzate, ma fai attenzione: poiché le funzioni di sicurezza come il rilevamento di dislivelli sono disabilitate, potrebbe uscire dai bordi o colpire ostacoli se non monitorato correttamente.
  • Per attivare questa modalità, invia il comando 132 dopo essere entrato in Modalità provvisoria (131).

Modalità pulizia

Questa è la modalità di pulizia standard che il Roomba usa quando viene premuto il pulsante CLEAN. Il Roomba si muove autonomamente, evitando gli ostacoli e pulendo l’area.

In Modalità pulizia, il Roomba non accetta comandi di movimento tramite l’interfaccia seriale ma potrebbe comunque rispondere ad altri comandi ROI (ad esempio, verificando lo stato del sensore).

Modalità dock

Questa modalità viene attivata quando invii il comando Dock (133). Il Roomba cerca la sua docking station e tenta di agganciarsi. Come la modalità Clean, Roomba funziona in modo autonomo e non accetta comandi di movimento diretti.

Modalità Spot

In modalità Spot, Roomba si concentra su una piccola area, eseguendo un ciclo di pulizia completo. Questa modalità viene attivata manualmente tramite il pulsante SPOT o tramite comandi specifici.
Roomba funziona in modo autonomo e non risponde ai comandi di movimento in questa modalità.

Comandi per cambiare modalità

Per controllare queste modalità tramite l’interfaccia seriale:

  • 128: Start (mette Roomba in modalità passiva)
  • 131: Modalità sicura (consente un controllo limitato)
  • 132: Modalità completa (consente un controllo completo senza limiti di sicurezza)
  • 135: Modalità pulizia
  • 143: Modalità dock (riporta Roomba alla base di ricarica)
  • 134: Modalità spot (si concentra su un’area specifica per la pulizia)

Utilizzando questi comandi, puoi personalizzare il modo in cui ESP8266 interagisce con Roomba per sfruttare queste modalità e comportamenti.

 

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.