Sommario:

Controlla il tuo aereo RC con l'accelerometro del telefono: 15 passaggi (con immagini)
Controlla il tuo aereo RC con l'accelerometro del telefono: 15 passaggi (con immagini)

Video: Controlla il tuo aereo RC con l'accelerometro del telefono: 15 passaggi (con immagini)

Video: Controlla il tuo aereo RC con l'accelerometro del telefono: 15 passaggi (con immagini)
Video: L'incidente in superstrada 2024, Luglio
Anonim
Image
Image
Controlla il tuo aereo RC con l'accelerometro del telefono
Controlla il tuo aereo RC con l'accelerometro del telefono

Hai mai desiderato controllare il tuo aeroplano RC inclinando un oggetto? Ho sempre avuto l'idea nella parte posteriore della mia testa, ma non l'ho mai perseguita fino alla scorsa settimana. I miei pensieri iniziali erano di utilizzare un accelerometro a tre assi, ma poi ho avuto un'idea…

La maggior parte di voi ha uno smartphone vero? E un'altra grande maggioranza di voi ragazzi elettronici là fuori usa Android per la sua flessibilità. Voglio dire, adoro l'iPhone, ma non è così versatile per quanto riguarda il collegamento via Bluetooth o via cavo a un Arduino o un altro microcontrollore. Allora perché non solo l'accelerometro del telefono? Così ho preso l'idea e l'ho seguita. Due settimane dopo vi presento questo progetto!

Siamo spiacenti utenti IOS, questo progetto riguarda solo gli utenti Android.

Ora questo progetto non ha il controllo sul timone o sull'acceleratore. Se noterai che ho aggiunto il codice per usare un potenziometro sul pin A1 per controllare l'acceleratore, anche se io stesso non lo userò. Userò solo l'acceleratore del mio trasmettitore.

Se desideri completare questo progetto ti suggerisco di guardare l'intero video prima di iniziare a lavorare. Le competenze elettroniche richieste per questo progetto sono minime, ma la parte difficile è lavorare con il codice. Quindi prendi il tuo saldatore e Arduino e iniziamo.

Costo del progetto: (gratuito, basso, medio, lassù, sul serio?)

Difficoltà del progetto: (Svasso, Facile, Medio, Difficile, Esperto, Maestro)

Tempo del progetto: (Su una tazza di caffè, medio, su una caffettiera, diversi giorni)

Di seguito è riportato un volo veloce che ho avuto prima quando c'era un po' di vento!

Passaggio 1: guarda il video completo

Image
Image

Il video e il testo coprono praticamente le stesse cose, tranne che il testo non include il processo passo passo per costruire il caso del progetto e collegare tutto. Il testo è un po' più analfabeta su alcuni dei codici coinvolti.

Passaggio 2: AGGIORNAMENTO IMPORTANTE [7/16/18]

In realtà ho iniziato a realizzare questo progetto qualche anno dopo e ho dovuto tornare a questo per ottenere alcune informazioni:D

Ad ogni modo ho scoperto che c'è un piccolo errore con il codice e ti mostrerò di risolverlo in pochi secondi. Se scarichi il codice, non verrà compilato. Devi entrare e cambiare una piccola riga.

Quando compili, la riga 20 ti dà un errore.

int ppm[chanAmount];

Basta cambiarlo in:

int ppm[2];

Ed ecco fatto! Goditi il resto del tutorial e, se ti è capitato di realizzare questo progetto, scorri fino in fondo al i'ble e fai clic sul pulsante "Ce l'ho fatta" e carica una foto!

Fase 3: Ingredienti:

Download
Download

Di cosa ha bisogno ogni buona ricetta? Ingredienti. Sfortunatamente potresti aver bisogno di andare in un posto diverso dalla tua drogheria all'angolo per questi.

Ingredienti:

  • Telefono Android
  • Arduino (Uno, Nano, Micro, non ha molta importanza)
  • Fonte di alimentazione per Arduino. Userò un piccolo LiPo da 500 mAh a 2 celle.
  • Modulo Bluetooth HC-05 o HC-06
  • FTDI Breakout Board (può essere fatto con Arduino, ma non ti mostrerò come)
  • Spina audio maschio mono da 3,5 mm. Un jack stereo NON FUNZIONA! Ho provato!
  • 2x LED e resistori corrispondenti
  • Progetto allegato
  • Cavo a 2 conduttori (il cavo dell'altoparlante funziona alla grande o un cavo USB lungo)
  • Termoretraibile o nastro isolante
  • Pin Header femmina (per lo shield Arduino se scegli di crearne uno)
  • Perf board (per Arduino Shield se dovessi scegliere di crearne uno.

Utensili:

  • Saldatore
  • Spelafili
  • Forbici
  • Trapano con varie punte da trapano
  • Pistola per colla a caldo

Passaggio 4: download

Se desideri scaricare un file.zip di tutto ciò di cui hai bisogno, puoi trovarlo qui. Altrimenti leggi sotto.

Prima di tutto devi scaricare l'app Amarino e Amarino Toolkit e scaricarli sul tuo telefono. Puoi farlo con una micro SD o semplicemente utilizzare il tuo sito Web di file hosting preferito, come Google Drive.

In secondo luogo è necessario scaricare la libreria MeetAndroid per l'IDE Arduino. Per installare la libreria seguire attentamente i passaggi.

PER PC:

  1. Chiudi l'IDE di Arduino.
  2. Decomprimi la cartella MeetAndroid. Ora dovresti avere una cartella MeetAndroid_4 decompressa. Apri questa cartella e taglia la cartella all'interno chiamata MeetAndroid.
  3. Vai a C:\Programmi (x86)\Arduino\libraries e incolla il file MeetAndroid. Se hai fatto tutto correttamente dovrebbe apparire come la prima immagine.
  4. Riapri l'IDE Arduino e dovresti vedere nelle librerie sotto "Contribuito" la libreria MeetAndroid.

PER MAC

  1. Chiudi l'IDE di Arduino.
  2. Decomprimi la cartella MeetAndroid. Ora dovresti e decomprimere la cartella MeetAndroid_4. Apri questa cartella e copia la cartella all'interno chiamata MeetAndroid.
  3. Passare all'applicazione Arduino, fare clic con il tasto destro del mouse su mostra il contenuto del pacchetto, quindi su Contents/Java/libraries e incollare nella cartella MeetAndroid.
  4. Riapri l'IDE Arduino e dovresti vedere nelle librerie sotto "Contribuito" la libreria MeetAndroid.

Infine scarica entrambi i miei schizzi Arduino che sono allegati alla fine di questo passaggio (inclusi nel file.zip).

Passaggio 5: configurazione dell'HC-06

Configurazione dell'HC-06
Configurazione dell'HC-06
Configurazione dell'HC-06
Configurazione dell'HC-06
Configurazione dell'HC-06
Configurazione dell'HC-06

Il tuo modulo Bluetooth HC-06 non esce dalla scatola pronto per l'uso in questo progetto. Dobbiamo cambiare solo 1 cosa semplice: il baud rate. A seconda di chi acquisti, il tuo può essere impostato a velocità di trasmissione diverse. Ho ricevuto due HC-06 da due venditori diversi e ognuno funzionava a una velocità di trasmissione diversa. Dobbiamo cambiarlo a 115200 bit al secondo. Effettuare i seguenti collegamenti:

HC-06 ------- Scheda di sblocco FTDI

| -------------- |

GND ----- GND

VCC ------ 3.3v

TX -------- RX (o DRX)

RX -------- TX (o DTX)

  1. Collega la scheda breakout FTDI al tuo computer.
  2. Apri l'IDE di Arduino. Seleziona la porta COM disponibile. (assicurati che non ci siano Arduino o altro collegati al computer).
  3. Apri il monitor seriale (non c'è bisogno di codice!)
  4. Selezionare 9600 per la velocità di trasmissione in basso a destra della finestra com. Digita "AT" (DEVE essere maiuscolo) e premi invio. Se non ricevi nulla in cambio, va bene. Ciò significa che il tuo dispositivo è configurato a una velocità di trasmissione diversa. Prova una velocità di trasmissione di 115200 e digita "AT". Se ancora non ottieni nulla, prova tutte le velocità di trasmissione e digita "AT" su tutte finché non ricevi una risposta. Se non ricevi una risposta, molto probabilmente non hai cablato correttamente l'HC-06. Controllare i collegamenti.
  5. Se ottieni la risposta "OK", allora fantastico! Se ottieni quella risposta su qualsiasi altro baud rate quindi 115200, devi cambiarlo in 115200. Per farlo, digita "AT+BUAD8". Riceverai la risposta "OK115200". Dovrai modificare la velocità di trasmissione in 115200 per continuare a parlare con il Bluetooth. Quindi puoi fare cose come cambiare il nome digitando "AT+NAMERANDOM" casuale come nome che desideri. Ora puoi chiudere il monitor seriale.

Passaggio 6: il circuito incompleto per i test

Questo circuito è abbastanza semplice. È necessario alimentare Arduino (tramite USB poiché dovremo caricare alcune cose su di esso), quindi collegare l'HC-06. Basta collegarsi e seguire i collegamenti sottostanti.

HC-05/6 --------- Arduino

|=============|

GND ------------ GND

VCC ------------- 5v

TX -------------- RX

RX -------------- TX

Passaggio 7: installazione di Amarino e Amarino Toolkit

Installazione di Amarino e Amarino Toolkit
Installazione di Amarino e Amarino Toolkit
Installazione di Amarino e Amarino Toolkit
Installazione di Amarino e Amarino Toolkit
Installazione di Amarino e Amarino Toolkit
Installazione di Amarino e Amarino Toolkit

A questo punto dovresti aver scaricato e trasferito la tua app Amarino e il toolkit sul tuo telefono. Ma prima di installarlo è necessario modificare un'impostazione sul telefono. Il tuo telefono non ti consente di installare l'app all'inizio perché non è un'applicazione certificata dal Play Store di Android. Quindi dovremo consentire al telefono di installare app non certificate. Questo è abbastanza semplice.

  1. Vai a Impostazioni/Sicurezza e scorri verso il basso. Dovresti vedere una casella che dice Fonti sconosciute e una piccola casella accanto. Tocca la casella e abilita. Apparirà una finestra di dialogo che ti dice quanto sia rischioso; suona bene vero? Quindi tocca quel pulsante OK. Guarda le immagini 1, 2 e 3.
  2. Ora puoi aprire la tua app Amarino e seguire le istruzioni sullo schermo. Non troppo difficile basta colpire sì.
  3. Installa Amarino Toolkit. Neanche troppo difficile.

Passaggio 8: configurazione del Bluetooth

Configurazione del Bluetooth
Configurazione del Bluetooth
Configurazione del Bluetooth
Configurazione del Bluetooth
Configurazione del Bluetooth
Configurazione del Bluetooth

Con il tuo progetto alimentato (il chip Bluetooth è attivo) trova le impostazioni Bluetooth del tuo telefono. È necessario associare il telefono al chip Bluetooth. Tocca Cerca dispositivi e il tuo dispositivo dovrebbe essere visualizzato come HC-05 o HC-06 a meno che tu non lo abbia nominato in precedenza. Richiederà un numero pin e sarà 1234. (So di essere un genio nell'hackerare il dispositivo e trovare la password super-segreta). Vedere le immagini 1, 2 e 3. Assicurati di essere associato al dispositivo e di essere pronto per il passaggio successivo. NOTA: la luce sul dispositivo Bluetooth non diventa fissa quando si accoppia con il telefono! Ho scoperto che sul mio telefono dovevo riavviarlo dopo questo processo affinché venisse visualizzato nell'app Amarino, quindi vai avanti e riavvia il telefono.

Fase 9: Amarino

Amarino
Amarino
Amarino
Amarino
Amarino
Amarino

È ora di aprire Amarino. Ti verranno presentate le note di rilascio e tocca OK. Grazie Bonifaz Kaufman per aver creato questa meravigliosa app. I numeri sottostanti corrispondono al numero dell'immagine, ad es. passo 1 = immagine 1.

  1. Schermata di benvenuto. Tocca "Aggiungi dispositivo".
  2. Il tuo dispositivo dovrebbe ora essere nell'elenco; toccalo. Se non viene visualizzato, prova a riavviare il telefono e assicurati che il dispositivo Bluetooth sia connesso al telefono.
  3. Ora dovresti arrivare a questa schermata. Tocca "Connetti". Questa operazione potrebbe richiedere alcuni secondi.
  4. Se si connette, la luce sul dispositivo Bluetooth diventerà fissa e vedrai in alto "Connessioni attive: 1. Ora tocca il nome del dispositivo e NON disconnettiti.
  5. Tocca "Mostra eventi".
  6. Non dovrebbero esserci eventi. Tocca "Aggiungi evento".
  7. Apparirà un elenco e dovrai selezionare l'accelerometro. Tieni a mente questi altri sensori integrati nel tuo telefono. Potrebbero tornare utili un giorno per un progetto successivo!
  8. Qui ci sono solo alcune impostazioni per l'accelerometro. Assicurati che il cursore sia su "molto veloce" e che il visualizzatore di dati sia su "Testo". Quindi tocca salva.
  9. Se vedi i numeri a destra del "Sensore accelerometro", allora sei a posto. Puoi lasciare il tuo telefono da solo ora. Se non vedi i numeri, premi a lungo sull'area grigia per visualizzare un menu.
  10. Seleziona "Forza abilitazione".
  11. Bingo! Numeri! Inclina il telefono e scopri come i numeri corrispondono all'accelerometro.
  12. Ora puoi posizionare il telefono su una superficie piana e prepararti per iniziare a programmare!

Passaggio 10: saltare il codice

Saltare il codice
Saltare il codice

Quindi, se non vuoi sporcarti le mani con il codice e vuoi solo caricare e andare, potresti essere nei guai. Finora ho usato solo il mio telefono, quindi non so se i telefoni di altre persone sono uguali. Se scarichi l'app SensoDuino e fai clic sulla scheda "Sensori integrati" dovresti essere in grado di trovare il tuo accelerometro. Se l'accelerometro è un MPU6050, è lo stesso sensore che ho io e probabilmente non è necessario apportare modifiche al codice. Se hai lo stesso sensore, prova il codice caricato in questo passaggio.

In caso contrario, probabilmente dovrai seguire i passaggi successivi.

Passaggio 11: assegnazione dei dati dell'accelerometro

Assegnazione dei dati dell'accelerometro
Assegnazione dei dati dell'accelerometro
Assegnazione dei dati dell'accelerometro
Assegnazione dei dati dell'accelerometro
Assegnazione dei dati dell'accelerometro
Assegnazione dei dati dell'accelerometro
Assegnazione dei dati dell'accelerometro
Assegnazione dei dati dell'accelerometro

Ora arriviamo alla parte divertente, scherzando con lo sketch di Arduino! Se il tuo schizzo non viene compilato, vedi l'ultimo passaggio di questo istruibile.

A questo punto dovresti avere il tuo Arduino collegato correttamente al tuo HC-06 e dovresti avere Amarino che invia i numeri al tuo Arduino tramite Bluetooth. Ricontrolla per assicurarti che l'HC-06 sia ancora associato e carica il seguente schizzo su Arduino. (Allegato a questo passaggio).

NOTA: quando si caricano schizzi su Arduino, sarà necessario scollegare TX e RX dell'HC-06 da Arduino. L'Arduino non può essere caricato mentre RX e TX sono collegati a qualcosa.

Dopo aver caricato questo schizzo su Arduino, apri il monitor seriale. Dovresti vedere tre numeri confusi insieme separati da una casella (□). Esempio: [0.01□0.02□□9.21] I primi due numeri sono roll e pitch. Non ho nemmeno provato a capire cosa fosse il terzo:D. Il tuo telefono potrebbe o non potrebbe essere simile a questo. Per scoprire quali numeri sono roll e quali numeri sono pitch sono per il tuo telefono segui questi passaggi.

  1. Posiziona il telefono su una superficie piana. Orienta il telefono in modo che la fotocamera/l'altoparlante dell'orecchio punti a sinistra e il microfono a destra. (foto 2).
  2. Inclinare il lato sinistro del telefono verso l'alto (immagine 3) (lungo l'asse Z, vedere l'immagine 1 per l'asse) a 45 gradi. Nota quale numero cambia drasticamente nel monitor seriale. Questo numero sarà il tuo tiro.
  3. Inclinare il telefono verso di sé (immagine 4) (lungo l'asse X, vedere l'immagine 1 per l'asse) a 45 gradi.. Qualunque sia il numero che cambia drasticamente è il tono. Registra questo.

Ora che sappiamo quali due serie di numeri sono roll e pitch, possiamo andare a modificare il codice. Daremo un'occhiata alla sezione 2.

passo = dati[0];

rotolo = dati[1];

Se hai guardato prima nel codice, noterai che i dati dell'accelerometro sono inseriti in un array. L'array "data" ha tre "punti" chiamati "indici" per i numeri, indice 0, indice 1 e indice 2. Ora che sai quali numeri rappresentano pitch e roll puoi assegnare gli interi "pitch" e "roll" a i numeri corretti nell'array. Esempio: se la terza serie di numeri è cambiata quando hai inclinato il telefono a sinistra/destra, che è roll, allora cambieremmo il codice in questo:

rotolo = dati[2];

Ed è così semplice. Se il tuo telefono è simile al mio, il primo numero sarà pitch, il secondo numero roll e il terzo numero sarà un altro aspetto delle tre dimensioni.

Passaggio 12: mappatura dei dati dell'accelerometro

Mappatura dei dati dell'accelerometro
Mappatura dei dati dell'accelerometro

Una volta che "roll e "pitch" sono stati assegnati ai numeri corretti nei dati dell'array, possiamo andare avanti. Guarda l'immagine 1 tutta a sinistra. Questi sono i dati grezzi del tuo accelerometro. Ma non possiamo usare direttamente questi numeri dobbiamo rimapparli a un valore compreso tra 1000 e 2000 con un punto medio di 1500. Per aumentare i numeri moltiplicheremo "roll" e "pitch" per 1000. Questo eliminerà tutti i decimali e dacci una risoluzione decente. Ora se guardi i numeri nella seconda colonna puoi vedere i "nuovi" numeri. Impostiamo alcuni punti di entrata e di uscita!

  1. Inclinare il telefono a sinistra di 45 gradi (rotolare) e registrare questo numero.
  2. Inclinare il telefono a destra di 45 gradi (rotolare) e registrare questo numero.
  3. Inclinare il telefono in avanti di 45 gradi (passo) e registrare questo numero.
  4. Inclinare il telefono all'indietro di 45 gradi (inclinazione) e registrare questo numero.

Se i due numeri sono più o meno gli stessi per quando hai inclinato il telefono di 45 gradi in entrambe le direzioni, puoi eliminare il secondo numero e utilizzare solo il primo. Crea un secondo numero prendendo il negativo del primo numero.

Esempio: inclinare il telefono di 45 gradi a destra. Il numero mostrato per il rotolo è 5500. Per il secondo numero basta usare -5500. Questi saranno i nostri punti di entrata e uscita. Non vogliamo che il nostro TX registri qualcosa di più di quei punti. Quindi dobbiamo rimappare quei valori su 1000-2000. Nel mio caso da -5500 a 5500 sono stati i numeri che ho ottenuto quando ho lanciato il mio telefono di 45 gradi e quando ho ruotato il mio telefono di 45 gradi. Quindi ho usato il seguente codice: NOTA: ora è il momento di eliminare /* e */ nella sezione 4 per abilitare questo codice. Elimina anche tutta la sezione 3.

pitchval = map(pitch, -5500, 5500, 1000, 2000) -12;

rollval = map(roll, -5500, 5500, 1000, 2000) + 7;

Ora -12 e +7 sono regolazioni per portare "pitchval" e "rollval" a un centro di 1500. Assicurati che il telefono sia su una superficie piana quando esegui queste regolazioni. Se il tuo centro non è a 1500, il tuo aereo potrebbe deviare in una direzione anche se hai il telefono a livello.

Dobbiamo vincolare rollval e pitchval. Non vogliamo che vadano più di 2000 o meno di 1000, altrimenti le cose iniziano a incasinarsi! Quindi scriviamo questo…

pitchval = constrain(pitchval, 1000, 2000);

rollval = constrain(rollval, 1000, 2000);

L'ultima cosa che dobbiamo fare con questi numeri è assicurarci che corrispondano correttamente al modo in cui incliniamo il telefono. Controlla se il tuo telefono è rivolto verso l'alto con la fotocamera a sinistra e il microfono a destra.

  • Quando ruoti il telefono a sinistra, rollval dovrebbe diminuire a 1000.
  • Quando tiri a destra, dovrebbe aumentare a 2000.
  • Quando inclini il telefono all'indietro, pitchval dovrebbe diminuire a 1000.
  • Quando lanci il telefono in avanti, dovrebbe aumentare a 2000.
  • Entrambi i centri dovrebbero essere a 1500 quando si posiziona il telefono su una superficie piana.

Se quando ruoti il telefono a sinistra e rollval aumenta anziché diminuire, cambia il 1000 che hai moltiplicato "roll" per -1000 (nella sezione 2). Lo stesso vale per il "pitch" se i numeri sono invertiti.

Esempio di codice per il fissaggio del rullo nell'esempio sopra.

passo = (passo * -1000); // moltiplica per 1000 per eliminare i decimali

rotolo = (rotolo * -1000);

Quindi, se tutto funziona correttamente, possiamo aggiungerlo al codice finale!

  1. Apri lo schizzo ReadRawAccel. Copia tutto sotto il creatore di page1.
  2. Apri lo schizzo TiltTX_Final. Scorri fino in fondo dove dice "incolla qui la pagina 1" e sostituisci tutto il codice sottostante.
  3. Carica lo schizzo TiltTX_Final sul tuo arduino.

Passaggio 13: tempo di circuiti

Tempo di circuiti!
Tempo di circuiti!
Tempo di circuiti!
Tempo di circuiti!
Tempo di circuiti!
Tempo di circuiti!
Tempo di circuiti!
Tempo di circuiti!

Ora che abbiamo finito con la parte difficile, è il momento di fare il circuito. Puoi scegliere di non creare uno scudo per risparmiare tempo e parti, ma mi piace sempre realizzare i miei progetti con gli scudi nel caso in cui avessi bisogno di usare quell'Arduino con un altro progetto. Per questo progetto userò il mio Arduino Nano perché voglio che tutto questo stia in una piccola scatola. Ma potresti usare qualsiasi altro Arduino, da un Mega a un LilyPad. Quindi studia lo schema, guarda il video e inizia a saldare! Non posterò qui tutta la foto perché vi mostro passo passo come realizzarla nel video.

Passaggio 14: configurazione del trainer

Ora che hai finito con il circuito, accendilo, connettiti al telefono e collega il jack mono alla porta di allenamento sul retro della radio. Imposta il moltiplicatore su 1,3 e posiziona il telefono su una superficie piana. Quindi calibrare.

Nota, il canale 0 è il motore, il canale 1 è il rollio e il canale 2 è il beccheggio.

Se vuoi cambiarli entra nel codice qui:

ppm[0] = farfalla;

ppm[1] = valore roll; ppm[2] = valore del passo;

Passaggio 15: Conclusione

Alcune persone hanno avuto il problema della mancata compilazione del codice. Perché non lo so perché funziona bene per me su entrambe le mie piattaforme, ma se ricevi il messaggio di errore (errore non definito in questo ambito), devi posizionare la riga 1 dopo il ciclo di errore void.

1. MeetAndroid MeetAndroid (errore); //La roba bluetooth per Android. Non toccare this.void error(uint8_t flag, uint8_t values) // altro materiale bluetooth. { Serial.print("Errore: "); Serial.println(flag); }

Quando hai finito dovrebbe assomigliare a questo:

void error(uint8_t flag, uint8_t values) // altro materiale bluetooth.

{ Serial.print("Errore: "); Serial.println(flag); } MeetAndroid meetAndroid(errore); //La roba bluetooth per Android. Non toccare questo.

Spero davvero che tu abbia trovato questo istruttivo interessante e fresco. Ho cercato di assicurarmi che fosse facile da seguire. Se dovessi essere confuso con qualcosa, il video va un po 'più in dettaglio rispetto all'istruibile. In caso di problemi, contattami e sarò felice di aiutarti finché la tua domanda è pertinente. Per favore dai un voto a questo istruibile e pubblica un'immagine qui sotto per la tua replica, e se hai fatto un video, pubblica un link! Assicurati di lasciare un feedback qui sotto!

HavocRC, ~AJ

Consigliato: