Autore Topic: Bluetooth radiocontrolled car  (Letto 1399 volte)

Offline Denis93

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc one x
  • Sistema operativo:
    Windows 7
Bluetooth radiocontrolled car
« il: 19 Maggio 2013, 16:22:07 CEST »
0
Ciao a tutti  :-) sono una new entry del forum. E' da due mesetti circa che sto cercando di apprendere qualcosa sul mondo android e sulla programmazione java. So programmare in c e c++ e me la cavo anche con altri linguaggi di programmazione come php e visual basic quindi me la sto cavando abbastanza bene nel complesso. Ora arriviamo al problema: sto cercando di realizzare un progetto ovvero una macchina giocattolo guidata da un arduino che riceve attraverso un modulo bluetooth i comandi da un dispositivo android sulla parte dell'elettronica e della programmazione arduino non ci sono problemi, è realizzare l'applicazione per lo smartphone che mi sta mandando in crisi! L'app dovrebbe connettersi al modulo e  inviare a seconda del tasto cliccato(su giù su/destra su/sinistra giù/destra giù/sinistra) un carattere o un intero che poi l'arduino codificherà. Il problema è che non ho la più pallida idea di come effetuare la connessione e di come inviare caratteri tramite bluetooth. ho già cercato in giro sul forum o su internet in generale ma niente. ho anche visto il sample BluetoothChat ma non riesco a capirci niente. Qualcuno riesce a darmi una mano?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Bluetooth radiocontrolled car
« Risposta #1 il: 19 Maggio 2013, 17:01:42 CEST »
0
Se sei pratico di arduino ed elettronica anche a livello hobbystico, sei già un pezzo avanti  :-).

Fai conto di utilizzare un modulino bluetooth di quelli che si collegano alla seriale di arduino. Dal lato android fai il detect e ti ci colleghi, quindi spedisci caratteri (byte) proprio come se fosse una seriale uart.

La bluetoothchat va già bene come base. Devi però perderci un po' di tempo, perchè effettivamente non è banale da capire alla prima ed è comunque l'esempio più semplice.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Denis93

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc one x
  • Sistema operativo:
    Windows 7
Re:Bluetooth radiocontrolled car
« Risposta #2 il: 19 Maggio 2013, 17:29:20 CEST »
0
Fin ora guardando un po' in giro son riuscito ad accendere il bluetooth tramite l'applicazione e a connettermi al modulo. Ma tutto scopiazzando codice. E' che dovrei approfondire di più le basi java ma non ho molto tempo perchè il mio obbiettivo è presentare questo progetto a scuola entro la fine di questo anno scolastico. Mi manca la parte di invio del codice. Come faccio ad inviare un carattere tramite bluetooth? non c'è una specifica funzione?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Bluetooth radiocontrolled car
« Risposta #3 il: 19 Maggio 2013, 17:57:55 CEST »
0
Fin ora guardando un po' in giro son riuscito ad accendere il bluetooth tramite l'applicazione e a connettermi al modulo. Ma tutto scopiazzando codice. E' che dovrei approfondire di più le basi java ma non ho molto tempo perchè il mio obbiettivo è presentare questo progetto a scuola entro la fine di questo anno scolastico. Mi manca la parte di invio del codice. Come faccio ad inviare un carattere tramite bluetooth? non c'è una specifica funzione?

Se hai sotto mano la bluetoothchat, dovrebbe esserci una funzione SEND, che non fa altro che scrivere nell'outputbuffer.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Bluetooth radiocontrolled car
« Risposta #4 il: 19 Maggio 2013, 18:18:14 CEST »
0
Se ti mancano le basi di Java la vedo dura, anche se dici di saper programmare in C++, quello che vuoi realizzare non è facile per un principiante.

Qui ci sono le specifiche dell'emulazione seriale del Bluetooth, RFCOMM:
 
http://developer.bluetooth.org/TechnologyOverview/Documents/RFCOMM_SPEC.pdf

consiglio di leggerlo almeno conosci le basi della comunicazione seriale via Bluetooth.

L'invio non è a caratteri ma è a pacchetti, simili al TCP dopo la connessione. Se vuoi puoi inviare un carattere in un pacchetto ma è poco efficiente se devi comunicare più cose. Di solito di crea un pacchetto formato da una stringa con il comando desiderato e un carattere di fine comando.

Ad esempio se vuoi girare a sinistra di 30°, invece di inviare il carattere 'L' e poi i carattere '3', poi '0' e infine un carattere sentinella come fine comando, con API di Android per il Bluetooth prepari una stringa del tipo "L30\n" (quindi un solo invio e non 4 come prima), dove '\n' è il carrettiere di return usato come fine comando.

Arduino deve ricevere da seriale i caratteri e processarli di conseguenza, ignora tutto il passaggio via Bluetooth e l'adattatore seriale.

Quello che vuoi fare non è originale, da diverso tempo si vedono in rete progetti simili, ad esempio:

Simple RC car for beginners (Android control over Bluetooth)

visto che hai poco tempo puoi studiartelo per capire come sono state unite le varie parti del progetto.
« Ultima modifica: 19 Maggio 2013, 18:35:09 CEST da iceweasel »
adb logcat | tee /tmp/logcat | grep TAG

Offline Denis93

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc one x
  • Sistema operativo:
    Windows 7
Re:Bluetooth radiocontrolled car
« Risposta #5 il: 26 Maggio 2013, 10:43:58 CEST »
0
Già, il tempo è poco e in più mi son preso una bella malattia virale :-( Comunque so già che non è originalissimo come progetto ma non importa, e poi fin ora non ne ho trovato nessuno con un applicazione scritta in java oggi mi impegno e provo ad andare avanti nonostanla febbre.