Come posso integrare uno smartphone con il mio progetto di robotica? [chiuso]


24

Gli smartphone in questi giorni in genere sono dotati di giroscopio, accelerometro, bussola, fotocamera e sensore GPS tutti a bordo. Di solito hanno anche una connessione a Internet con Wifi e reti dati mobili. Ho visto molti casi di utilizzo di un telefono come telecomando per un robot, ma a me sembra che il telefono stesso sia una piattaforma di elaborazione e rilevamento leggera perfetta per un robot autonomo.

L'ostacolo principale che vedo è l'interfacciamento con gli attuatori. Essere in grado di controllare i motori per guidare anche un robot da tavolo o per controllare i servi, ad esempio. Anche la connessione e la comunicazione con un microcontrollore potrebbero essere un ostacolo.

Come appassionato di robot, mi piacerebbe sapere come posso superare questi e altri ostacoli per poter sfruttare la potenza del mio smartphone con i miei progetti di robotica.


Solo per aggiungere un'opzione iOS, vedi iPhone
Greenonline,

Risposte:


19

L'Accessory Development Kit di Android (ADK) dovrebbe fare tutto il necessario.

ADK

È una scheda Arduino progettata appositamente per interagire con Android. È possibile collegare i due tramite Bluetooth o USB (o WiFi / Ethernet, credo).

Poiché l'intera architettura è aperta, è possibile utilizzare ogni parte per ciò che è meglio. Scrivi il codice Android per ottenere i dati dai sensori integrati del telefono e controllare il display. E scrivi il codice Arduino per controllare attuatori, servi e altri sensori che il telefono non viene. Il codice per comunicare tra i due viene fornito open source tramite Google.

Dal blog di Arduino :

Android Open Accessory Development Kit (ADK) fornisce un'implementazione di un accessorio USB Android basato sulla piattaforma di prototipazione elettronica open source Arduino, i file di progettazione hardware dell'accessorio, il codice che implementa il firmware dell'accessorio e l'applicazione Android che interagisce con il accessorio. I file e il codice di progettazione hardware sono contenuti nel download del pacchetto ADK.

La maggior parte degli esempi sono progettati in base all'uso del telefono come interfaccia grafica per una sorta di accessorio hardware come un orologio. Ma non c'è motivo per cui non sia possibile accedere anche ai sensori del telefono e passare i dati avanti e indietro.

Adafruit menziona persino l'uso di esso per creare robot nella pagina del loro negozio per l'ADK:

Segui rapidamente lo sviluppo dell'hardware del tuo telefono Android o progetta semplicemente robot per telefoni cellulari con Arduino ADK! Arduino ADK è una scheda microcontrollore basata sul potente ATmega2560 (scheda tecnica). Ha un'interfaccia host USB per connettersi con telefoni basati su Android e un convertitore di boost dell'alimentatore per caricare il telefono dall'alimentazione CC mentre è collegato all'ADK

(enfatizzare il mio)


11

Un'altra opzione è la scheda IOIO-OTG :

Scheda IOIO-OTG

La descrizione del prodotto Sparkfun descrive la sua funzionalità:

È dotato di un microcontrollore PIC che si comporta come un bridge che collega un'app sul tuo PC o dispositivo Android a periferiche di basso livello come GPIO, PWM, ADC, I2C, SPI e UART. Una libreria a livello di app ti aiuta a scrivere codice di controllo per queste periferiche di basso livello nello stesso modo in cui scriveresti qualsiasi altra app Java!

Questa scheda dovrebbe fare tutto ciò che desideri e ha anche un bel tutorial per aiutarti a iniziare.


6

Il problema principale dal momento che vedo che non si interfaccia realmente con gli attuatori: se hai un buon modo per trasferire in modalità wireless segnali digitali (anche meglio sarebbe analogico o un canale abbastanza buono da fare PWM), puoi semplicemente interfacciarlo con un chip del driver del motore (ad esempio L293D) e sii pronto a partire. Per i servi, è necessario un buon tempo di risposta in modo da poter gestire gli impulsi. Se hai un canale compatibile con PWM, questo non dovrebbe essere difficile in quanto il canale ha già un baud elevato. Se si dispone di un canale lento, i servi potrebbero non essere possibili poiché è necessario un tempo di impulso accurato.

La prima opzione che vedo (anche se è piuttosto ingombrante) è prendere un Raspberry Pi, collegarlo tramite Ethernet a un router wireless e collegare il telefono allo stesso wireless. Ora basta scrivere un'app di base per il telefono che invia richieste al Pi in base all'input e scrivere un altro server come l'app per il Pi che li gestisce. Potrebbe essere voluminoso e piuttosto duro, ma è abbastanza estensibile, IMO. Si può anche mettere l'offboard router e bastone presente nel Pi (o l'uso hotspot ed eliminare il router del tutto).

Un'altra opzione è quella di utilizzare un controller bluetooth come quello mostrato qui . Non l'ho mai usato prima, ma sembra che avrai ancora bisogno di un microcontrollore per gestirlo. Immagino che tu possa collegare i suoi pin RX / TX direttamente al TX / RX su un arduino, anche se non ne sono troppo sicuro.

Se hai già usato XBee / ZigBee, potresti provare l' ape bluetooth .

Un'ultima opzione è quella di utilizzare la porta USB del telefono con un'impostazione di controllo wireless convenzionale (XBee / qualunque) - ma ciò richiederà uno per scrivere i driver e tutto il resto.


5

Sì, la mancanza di pin GPIO sugli smartphone è un peccato. Se hai già ROS in esecuzione sul robot, puoi utilizzare questa app su un telefono Android per accedere alla suite di sensori sul telefono.


4

Molti dispositivi Android recenti, come il Nexus 7, supportano USB On The Go (OTG), che è un modo elegante per dire che è supportata la "Modalità host USB". In questi casi, con il cavo giusto disponibile per meno di $ 1, è possibile utilizzare qualsiasi dispositivo USB compatibile. Non è necessaria una versione speciale di Arduino con hardware per la modalità host USB.

Ho sperimentato questo abbastanza per sapere che un Arduino "normale" come Leonardo o Teensy 2 appare a un telefono Android come un dispositivo TTY (ad es. Porta seriale) quando è collegato con un cavo OTG.

Questo articolo approfondisce come utilizzare l'API host USB Android per comunicare con Arduino da un'app Android. Richiede Android 3.1+ e non richiede il root del dispositivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.