• Meetings e Workshop
    l'associazione organizza workshop e meeting periodici

  • HowTo e manuali
    come costruire da te gadget elettronici e come programmarli

  • Hacking della PS3
    howto su come installare linux ed effettuare altri hack

  • Una comunità organizzata
    entra a far parte di una associazione organizzata e attiva

  • Strumenti di supporto
    per mantenersi in contatto e favorire la cooperazione

automotive CDSAP: android + arduino (video inside) PDF Stampa E-mail
Scritto da Carlo Denaro - Blackout   
Carlo Denaro - Blackout

Tutto nasce da un materia da dare con il prof.Catania dell'Università da Catania relativa ai sistemi embedded. Quindi parte la nostra proposta (partorita dalla mente malata di due ingegneri che hanno visto un video su internet di alcuni anni fa). L'idea di base è quella di realizzare un sistema che permette all'auto di capire chi è il conducente e di conseguenza regolare alcuni parametri interni in maniera automatica.

 

Il progetto consta di parti diverse sia di elettronica sia di programmazione pura. Iniziamo dalla parte più divertente,ovvero quella elettronica. Il buon Crusher (Fabio Barbara) ha scoperto con ingegneria inversa come funziona una parte della centralina relativa ai comandi del sedile del guidatore.

Hardware

 

 

Una volta capito questo, bypassare il tutto è abbastanza semplice. Crusher inserisce dei ponti in modo da poter comandare noi, tramite dei pulsanti virtuali i comandi che ci interessano (nello specifico quelli relativi al movimento del sedile del guidatore).

 

 

Dopo questa estenuante estrapolazione di preziose informazioni e lo studio di ulteriori parti della centralina dell'Alfa Romeo 159 (l'auto in questione) si passa a creare un sistema che ci permetta di interagire con essa nel modo che più ci piace. La centralina che si occupa del movimento del sedile ha il codice seriale H066. Gli ingressi che con tanta dovizia abbiamo portato fuori saranno collegati a una board apposita imbottita di relay (immaginate a cosa servono) allo scopo di comandare da arduino i suddetti.

Quindi costruiamo la nostra scheda (dopo aver dimensionato il tutto).

 

Partendo da questo circuito base.

Fatto questo non abbiamo fatto altro che collegare tutto insieme, ovvero arduino e la board con i relay. Ed effettuare le prove in "laboratorio".

 

 

Dopo l'esito positivo di tutto il sistema (notare lo slave BlueTooth) abbiamo provveduto a montare il tutto in una parte "nascosta" dell'auto.

 

Creando un prototipo (per avere minor spazio e salvare l'arduino!) di una scheda con atmega standalone, successivamente creata con una (ahimè) millefori.

 

 

Qui trova la conclusione la parte hardware, adesso da arduino tramite bluetooth possiamo premere virtualmente i pulsanti della bottoniera del sedile lato guidatore. Fantastico ma serve anche il software per fare una cosa clean.

Software - Phone

La prima parte del software riguarda ovviamente il dispositivo (android) il quale colloquia con un web service (altra parte software) per raccogliere alcune informazioni sull'utente. Da uno stesso dispositivo possono quindi avere accesso più persone. Quindi abbiamo installato l'SDK per Android e ci siamo buttati nella creazione dell'app che ci permetteva di collegarci alla webapplication in questione (JSON) e di collegarsi tranquillamente ad arduino via bluetooth.

 

 

Qui vedete alcune delle prove effettuate da prode Crusher sul suo sistema di sviluppo. Sono stati prodotti diversi layout per la fruizione del servizio. Ad esempio il layout di login.

 

 

Che permette di effettuare il login. Questa parte instaura una connessione con la webapplication per verificare che la coppia username/password sia valida. Successivamente una volta effettuato l'accesso abbiamo il layout principale.

 

Questo layout banalmente ci permette di vedere la lista di automobili a cui abbiamo l'accesso ed effettuare il logout.  Se vogliamo vedere quali automobili possiamo usare basta cliccare nell'apposito tasto per vedere cosa possiamo usare.

 

 

Nella fattispecie abbiamo accesso a due autovetture. Basta effettuare la scelta dell'autovettura che, l'applicazione recupera il MAC dello slave bluetooth (silent e hidden) e instaura una connessione aprendoci l'ultimo layout per il controllo del sedile lato guidatore.

 

Le freccette ci consentono di spostare il sedile,mentre pigiando una sola volta il tasto centrale si ottiene di riportare alla posizione default, tenendolo premuto per 5 secondi otteniamo di memorizzare la posizione attuale come default.

In alto a sinistra vi è il nome della pagina mentre a destra viene mostrato lo stato della connessione bluetooth:

  • Non connesso
  • Connessione.....
  • Modello dell’automobile a cui si è connessi

Software - webapplication

La parte relativa alla webapplication è stata creata utilizzando il framework MVC Cakephp versione 2.0.x. E' stato progettato il database con Mysql workbench e portato su Mysql 5.x. Dopodichè tramite la consolle testuale di cake sono stati generati i trittici MVC base a cui poi sono state apportate delle modifiche. Alla fine le schermate finali sono risultate queste.

 

 

Lista degli utenti. Entrando a visualizzare l'utente era possibile osservare quali auto, quale posizione e mac assegnato.

 

 

In background cmq la webapplication fornisce un set di API JSON based per interloquire in maniera più semplice e naturale con l'applicazione android precedentemente creata.

Curiosità

L'acronimo del progetto/prototipo CDSap sarebbe Car's Driver Seat Auto-Profile partorito da me davanti a una birra e un panino insieme al prode Fabio. Nelle nostre elucubrazioni mentali e trip ha partecipato anche Xanio, famosi i nostri simpatici Pizzarduino a base di Pizza-CocaCola e Arduino. Famoso anche il mio crollare sul letto di Crusher mentre i due continuavano a smanettare con il tastierino a matrice numerica.

Video

http://youtu.be/VxWsTTid4Ys

Download

  • Slides PDF Presentazione
  • Relazione (coming soon)
  • Fritzing (coming soon)
  • Sketch PDE (coming soon)
  • Android Code (coming soon)

 

Aggiungi commento


Codice di sicurezza
Aggiorna


grayhats.org, Powered by Joomla!; Joomla templates by SG web hosting
valid xhtml valid css