Sommario:

Android G1 da seriale a robot Arduino: 8 passaggi
Android G1 da seriale a robot Arduino: 8 passaggi

Video: Android G1 da seriale a robot Arduino: 8 passaggi

Video: Android G1 da seriale a robot Arduino: 8 passaggi
Video: How to Unlock Sim Network Unlock Pin FREE | Unlock phone from Carrier with Sim Network Unlock Pin 2024, Novembre
Anonim
Da seriale Android G1 a Robot Arduino
Da seriale Android G1 a Robot Arduino
Seriale da Android G1 a Robot Arduino
Seriale da Android G1 a Robot Arduino
Seriale da Android G1 a Robot Arduino
Seriale da Android G1 a Robot Arduino

Scopri come il tuo cellulare Android può controllare un robot utilizzando una scheda Arduino. Il telefono riceve i comandi via telnet da un altro telefono o da un PC, così puoi controllare il robot da remoto. Questo progetto non modificherà in altro modo il G1 in modo che tu possa continuare a usarlo come un normale telefono dopo averlo sganciato. Perché? Utilizzando componenti elettronici economici come le schede Arduino, puoi abbinarli al tuo telefono da $ 400 per creare un robot fantastico. Costerebbe centinaia di dollari per aggiungere GPS, LCD, sensori di movimento, Wi-Fi, connessioni cellulari, altoparlanti e altro a un robot per hobby, ma il tuo telefono li ha già! Insieme, la scheda Android G1 e Arduino ti consentono di utilizzare elettronica economica come semplici servi e sensori, per costruire dispositivi potenti come robot, telepresenza remota o giocattoli divertenti per bambini. Ulteriori informazioni su Cellbots.com. Notice: questo progetto attualmente richiede un Android G1 con accesso root per utilizzare l'uscita seriale dal telefono al robot Arduino. Puoi aggiungere un modulo BlueTooth da $ 20 alla tua scheda Arduino per far parlare il telefono tramite BlueTooth seriale se desideri utilizzare il software Android commerciale. Ringraziamenti speciali: dobbiamo ringraziare l'Hacker Dojo di Mountain View, in California, per averci messo in contatto, aiutando con alcuni problemi complicati tramite la loro mailing list di fantastici membri e per avere i chip 74LS04 in stock. La maggior parte del montaggio è stata eseguita presso il Tech Shop di Menlo Park.

Passaggio 1: articoli necessari

Articoli necessari
Articoli necessari
Articoli necessari
Articoli necessari
Articoli necessari
Articoli necessari

Per completare questo tutorial avrai bisogno di quanto segue: Hardware: - Android G1 Dev Phone (o altro dispositivo Android con accesso root e uscita seriale) - Arduino (sto usando un Freeduino SB ma dovrebbe farlo chiunque) - 3.3v a 5v convertitore se non si utilizza un Arduino 3.3v (sto usando un chip 74LS04 per meno di $ 1 ma sono disponibili altre opzioni) - Scheda breakout USB HTC per il G1 - Attrezzatura di saldatura per due connessioni rapide - Un corpo robot con micro servi (cartone, acrilico, gradini, ruote, va bene qualsiasi cosa) Software: - Android Scripting Environment (ASE) - Client Telnet per il tuo PC (sto usando PuTTY su Windows) - Ambiente di sviluppo Arduino - (opzionale) Client seriale per il tuo PC (sto usando anche PuTTY su Windows per questo) - (opzionale) Android SDK Se puoi seguire le istruzioni puoi completare questo tutorial con poca conoscenza di Python, Arduino, Android o elettronica. Avrai voglia di sapere queste cose se vuoi andare oltre un LED lampeggiante, ma questo ti consentirà di iniziare.

Passaggio 2: Android G1 con uscita seriale abilitata

Android G1 con uscita seriale abilitata
Android G1 con uscita seriale abilitata
Android G1 con uscita seriale abilitata
Android G1 con uscita seriale abilitata
Android G1 con uscita seriale abilitata
Android G1 con uscita seriale abilitata

I G1 non vengono forniti con la possibilità di inviare comandi seriali dalla porta USB e non esiste un'opzione nativa per abilitarlo. Se sei un utente Android SDK avanzato puoi creare la tua build, ma ho scelto di utilizzare Cyanogenmod 4.2.13. Se conosci altri dispositivi Android con uscita seriale funzionante, aggiungili ai commenti.

Facoltativamente, puoi seguire i collegamenti a questa istruzione su come parlare con il tuo G1 tramite USB dal tuo PC. Quella connessione seriale a USB non è richiesta per questo tutorial, ma l'ho usata come un buon controllo di integrità per verificare che il telefono stesse inviando seriale. Se non usi l'altro intrucable per verificare che l'uscita seriale funzioni, puoi provare questo semplice controllo: 1. Apri l'app Terminale sul G1 (fornito con Cyanogen ma scaricane uno dal Market se hai un'immagine diversa) 2 Passare alla directory /dev/ digitando cd /dev/ 3. Digitare ls (che è una L) e cercare ttyMSM2 nell'elenco restituito Lo script Python che utilizzeremo in seguito invia i comandi a '/dev/ttyMSM2' in ordina loro di uscire dalla connessione seriale. Poiché ciò richiede l'accesso come root, dovrai modificarne le autorizzazioni ogni volta che riavvii il telefono. Per farlo: 1. Apri l'app del terminale sul telefono 2. Inserisci 'chmod 777 /dev/ttyMSM2' Quindi puoi eseguire lo script Python dalla modifica di script di Android nel passaggio successivo e avrà accesso per inviare l'output seriale.

Passaggio 3: installa l'ambiente di scripting Android (ASE) con Python

Installa l'ambiente di scripting Android (ASE) con Python
Installa l'ambiente di scripting Android (ASE) con Python
Installa l'ambiente di scripting Android (ASE) con Python
Installa l'ambiente di scripting Android (ASE) con Python

Gli script che utilizzeremo per creare una connessione socket aperta sul telefono e inviare comandi sono scritti in Python. Per eseguirlo su G1 avremo bisogno di Android Scripting Environment. Se non lo vedi nel Market, puoi scaricarlo scansionando il codice a barre su quella pagina che collega al file apk in questa pagina.

Una volta installato ed eseguito ASE, vorrai aggiungere il modulo Python dal menu: 1. Apri ASE e assicurati di disporre di una connessione Internet funzionante (wi-fi o 3G) 2. Premi il pulsante menu sul telefono e seleziona Interpreti 3. Premi di nuovo menu e seleziona Aggiungi 4. Seleziona Python (attualmente v2.6.2 al momento della stesura di questo) e scaricherà alcuni file zip Potresti voler esplorare la creazione, l'apertura, la modifica e l'esecuzione di script per familiarizzare con Python tramite ASE ma non è richiesto.

Passaggio 4: copia ed esegui lo script Cellbot.py per avviare il programma Python

Copia ed esegui lo script Cellbot.py per avviare il programma Python
Copia ed esegui lo script Cellbot.py per avviare il programma Python

Questo tutorial utilizza uno script Python per essere il "cervello" del robot. Ottieni il codice più recente dal nostro progetto Google Code open source. Hai solo bisogno del file cellbot.py ma altri potrebbero aiutarti con varie cose che vuoi esplorare. Ho semplicemente collegato il telefono alla connessione USB del mio PC e montato l'unità prima di copiare il file su /sdcard/ase/scripts.

Il programma crea una connessione socket aperta per accettare una sessione telnet in entrata. Stampa anche i comandi ricevuti sullo schermo mentre li invia alla porta seriale. Metti questo file sulla scheda SD del telefono nella directory /ase/scripts/. Passaggi dettagliati per caricare ed eseguire gli script: 1. Copia lo script cellbot.py nella directory /ase/scripts/ della scheda SD 2. Assicurati di smontare la scheda SD dal tuo PC se li hai copiati in questo modo poiché il telefono non può accedere ai file contemporaneamente al tuo PC. 3. Aprire l'app Android Scripting Environment 4. Fare clic su cellbot.py per avviarlo Si dovrebbe vedere una conferma che il dispositivo è pronto a questo punto per accettare le sessioni telnet in entrata sulla porta 9002. Suggerimento: assicurarsi di eseguire "chmod 777 comando /dev/ttyMSM2" dal passaggio #3 prima. Vedere il passaggio 5 per trovare l'indirizzo IP del telefono.

Passaggio 5: Telnet nel G1 e test di invio dei comandi

Telnet nel G1 e prova a inviargli i comandi
Telnet nel G1 e prova a inviargli i comandi
Telnet nel G1 e prova a inviargli i comandi
Telnet nel G1 e prova a inviargli i comandi
Telnet nel G1 e prova a inviargli i comandi
Telnet nel G1 e prova a inviargli i comandi

Il telefono dovrebbe essere pronto per il collegamento tramite telnet e l'invio di comandi dal PC. Li stamperà sullo schermo del telefono per confermare ciò che riceve. Ho usato PuTTY su Windows ma abbiamo confermato che minicom funziona alla grande su Mac come descritto in questo istruzioni.

Dovrai prima trovare l'indirizzo IP del tuo telefono. Questo è disponibile andando su Menu > Impostazioni > Controlli wireless > Impostazioni Wi-Fi e quindi premendo la connessione attualmente attiva. Verrà visualizzato un messaggio pop-up con l'indirizzo IP corrente sulla rete locale. Annotalo poiché lo utilizzerai ogni volta che vorrai aprire una sessione telnet dal tuo PC. Le assegnazioni IP in genere scadono dopo un certo numero di giorni, quindi potrebbe essere necessario ricontrollare. Nota: questo tutorial presuppone che il PC e il telefono si trovino sulla stessa rete locale. Il routing al telefono dall'esterno della rete locale dovrebbe essere possibile, ma non è coperto qui. Apri il tuo client telnet preferito e connettiti all'IP del telefono sulla porta 9002. Da una riga di comando puoi farlo come "telnet 192.168.1.1 9002" usando l'IP effettivo del telefono. Digita alcuni caratteri e premi invio per vederli apparire sullo schermo del telefono. Puoi digitare una q per chiudere lo script Python, che dovrebbe chiudere la sessione del terminale. Se per qualsiasi motivo non riesci a connetterti tramite telnet e hai bisogno di terminare il programma, un semplice riavvio del telefono dovrebbe fare il trucco. Gli utenti avanzati potrebbero voler trovare l'ID del processo tramite ps e quindi utilizzare kill per interromperlo. Avanzato: una versione futura di questo potrebbe eseguire un server Web locale dal telefono anziché accettare comandi tramite telnet. Stiamo anche esplorando XMPP per chattare con il tuo robot.

Passaggio 6: collegare un cambio di livello da 3.3v a 5v ad Arduino

Collega un Level Shifter da 3.3v a 5v ad Arduino
Collega un Level Shifter da 3.3v a 5v ad Arduino
Collega un Level Shifter da 3.3v a 5v ad Arduino
Collega un Level Shifter da 3.3v a 5v ad Arduino
Collega un Level Shifter da 3.3v a 5v ad Arduino
Collega un Level Shifter da 3.3v a 5v ad Arduino

L'Arduino utilizzato in questo tutorial è un modello 5v quindi dobbiamo convertire il segnale 3.3v che esce dal G1 usando un traslatore di livello. Dovrebbe essere possibile connettersi direttamente a un Arduino 3.3v ma non era qualcosa che ho testato.

Ci sono diversi modi per avvicinarsi a questo, ma in questo esempio useremo un chip 74LS04. Puoi cercarne uno qui e probabilmente costano meno di $ 1. Tim e io abbiamo ritirato i nostri dall'Hacker Dojo di Mountain View, in California, ma sono MOLTO comuni e dovrebbero essere abbondanti ovunque vengano venduti o donati chip. Ad alto livello invieremo semplicemente il segnale TX dalla scheda breakout USB HTS al pin 1 del chip 74LS04. Per farlo funzionare, passiamo due volte attraverso il chip e usciamo dal pin 4 al pin RX sul Freeduino SB (il tuo pin seriale potrebbe essere diverso se hai un'altra scheda Arduino ma tutti dovrebbero supportarlo). Seguire questi passaggi per cablare il traslatore di livello e collegare la scheda USB HTC (non collegarla ancora al telefono e scollegare l'alimentazione ad Arduino): 1. Inserire il chip 74LS04 sulla breadboard. Assicurati che il chip ostacoli l'interruzione centrale in modo che i pin non siano in cortocircuito (una mossa stupida che ho fatto all'inizio) 2. Saldare due fili alla scheda USB HTC come descritto in questa istruzione, ma useremo solo i pin 7 (Ground) e 8 (TX0) poiché stiamo eseguendo solo la trasmissione unidirezionale per questo tutorial. 3. Collegare l'altra estremità del cavo di terra (pin 7) a una massa sulla breadboard (che dovrebbe essere collegata a una massa su Arduino) 4. Collegare l'altra estremità del cavo TX0 (pin 8) alla breadboard dove si imbatte nel pin 1 del chip 74LS04. (fai una ricerca immagine per uno schema completo del chip) 5. Usa un filo per collegare i pin 2 e 3 del chip 6. Collega il pin 4 del chip al punto RX di Arduino (pin 0 su Freeduino SB e Arduino Duemilanove) 7. Collega il pin 7 (GND) sul chip alla massa della tua breadboard (che si collega anche alla massa di Arduino) 8. Collega il pin 14 (VCC) all'alimentazione 5v sulla tua breadboard (che riceve l'alimentazione dall'Arduino Uscita 5v) Ora dovresti essere pronto per collegare la scheda breakout USB HTC nella parte inferiore del telefono e accendere Arduino. Verificare la presenza di scintille e odori e toccare gli oggetti per assicurarsi che siano freddi. Nota: l'attuale codice cellbot accende il LED #13 quando i servomotori del robot dovrebbero essere in funzione. Se non hai ancora un robot puoi controllare che il LED si accenda e si spenga per confermare che funziona.

Passaggio 7: caricare il programma Cellbots su Arduino

Carica il programma Cellbots su Arduino
Carica il programma Cellbots su Arduino
Carica il programma Cellbots su Arduino
Carica il programma Cellbots su Arduino

Ottieni il codice sorgente di Arduino dal nostro sito del progetto Google Code. Apri il programma Arduino Cellbots.pde nell'editor Arduino. Quindi spingilo sulla tua scheda Arduino.

Puoi provare a parlare con il codice Arduino aprendo il monitor seriale nell'editor Arduino. Questo è un ottimo modo per testare il tuo robot o dispositivo parlando direttamente con Arduino prima di collegare tutto al telefono. Il codice invia i comandi seriali al monitor seriale per confermare cosa sta facendo anche se non hai ancora costruito il tuo robot. Nota: non puoi caricare programmi su Arduino mentre il cavo è collegato al pin di ingresso seriale RX. Quindi potresti voler mettere questo interruttore, ma l'ho semplicemente scollegato quando avevo bisogno di caricare un nuovo programma.

Passaggio 8: eseguire l'intero processo

Esegui l'intero processo
Esegui l'intero processo
Esegui l'intero processo
Esegui l'intero processo
Esegui l'intero processo
Esegui l'intero processo

Dovresti essere in grado di connettere la scheda USB HTC al telefono, avviare il file cellbot.py in ASE e aprire una sessione di terminale nel telefono. Digita "H" per far salutare il telefono o qualsiasi altro comando dal file README.txt.

Una "q" uscirà dallo script Python sul telefono e chiuderà il socket del terminale. Ecco un riepilogo di come funziona: 1. Lo script Python apre un socket per accettare le connessioni telnet in entrata e fa eco ai comandi dalla porta seriale 2 Ci colleghiamo dal nostro PC al telefono tramite telnet sulla porta 9002 e gli inviamo i comandi che vediamo sullo schermo 3. La scheda USB HTS si interfaccia con la porta USB del G1 e invia il segnale 3.3v nel pin 1 74LS04. il segnale esce dal chip sul pin 2, torna sul pin 3, e esce di nuovo sul pin 4 a 5v 5. Il nostro Arduino accetta il segnale seriale sul pin 0 RX e lo elabora tramite il programma Cellbot.pde 6. Noi puoi digitare 'q' per uccidere lo script Python e chiudere la connessione telnet Ora che hai completato questo processo molto complicato per inviare comandi di base a un robot Arduino, è tempo che tu lo modifichi per essere più fantastico! Non abbiamo ancora la seriale a 2 vie funzionante, quindi Arduino non può inviare comandi al telefono, ma ci stiamo lavorando. Rimani aggiornato iscrivendoti al nostro blog su Cellbots.com. Informazioni sugli autori: Tim Heath Ricercatore capo che per primo ha messo insieme questo processo presso il Tech Shop di Menlo Park, di cui è membro. Ryan Hickman Programmatore che ha lavorato sul codice Python e Arduino e ha creato questo Instructable.

Consigliato: