Sommario:

La guida che avrei voluto avere sulla costruzione di un drone Arduino: 9 passaggi
La guida che avrei voluto avere sulla costruzione di un drone Arduino: 9 passaggi

Video: La guida che avrei voluto avere sulla costruzione di un drone Arduino: 9 passaggi

Video: La guida che avrei voluto avere sulla costruzione di un drone Arduino: 9 passaggi
Video: Sbriser SPAVENTA Sua SORELLA 😂 2024, Novembre
Anonim
La guida che avrei voluto avere sulla costruzione di un drone Arduino
La guida che avrei voluto avere sulla costruzione di un drone Arduino

Questo documento è una sorta di "Come guidare" la documentazione barra che attraversa il processo che mi ha portato a comprendere i concetti per raggiungere il mio obiettivo di costruire un semplice quadrirotore che potevo controllare dal mio telefono cellulare.

Per realizzare questo progetto volevo farmi un'idea di cosa fosse effettivamente un drone, nel mio caso un quadrirotore, quindi ho iniziato a fare delle ricerche. Ho guardato molti video di YouTube, letto un sacco di articoli e pagine Insructible e questo è quello che ho ottenuto.

In sostanza puoi dividere un drone in due parti. L'ho chiamato "Fisico" e "Controllore". Il fisico è essenzialmente tutto ciò che ha a che fare con la meccanica che fa volare il drone. Queste sono cose come il motore, il telaio, la batteria, le eliche e ogni altra cosa che dà fisicamente al drone la capacità di volare.

Il controllore è essenzialmente il controllore di volo. Ciò che controlla il fisico in modo che il drone possa volare come un'intera unità senza cadere. Essenzialmente il microcontrollore, il software su di esso e i sensori che lo aiutano a triangolare i suoi cuscinetti. Quindi, per avere un drone, avevo bisogno di un controller e di un mucchio di parti fisiche da "controllare" per il controller.

Forniture

Budget per progetto: $ 250

Intervallo di tempo: 2 settimane

Cose da comprare:

  • Cornice fisica $ 20
  • Lame $ 0 (viene fornito con telaio)
  • Pacco batteria $ 25
  • ESC (regolatori elettronici di velocità) $ 0 (fornito con motori)
  • Motori $ 70

Controllore di volo

  • Arduino nano $ 20
  • Cavo USB Arduino $2
  • Modulo Bluetooth (HC-05) $ 8
  • LED da 3 mm e resistori e cavi da 330 Ohm $ 13
  • GY-87 (accelerometro, giroscopio) $ 5
  • Scheda prototipo $10
  • Intestazioni maschili e femminili $ 5

Altro

  • Kit di saldatura $10
  • Multimetro $ 20

Volevo divertirmi a realizzare questo progetto come ingegnere, quindi ho comprato altre cose che non dovevo.

Totale: $ 208

Passaggio 1: la mia esperienza iniziale

Dopo aver acquistato tutti i miei componenti, ho assemblato il tutto e poi ho provato a lanciare il drone, utilizzando Multiwii (il software di go to che molti utenti della community di droni fai da te usano), ma mi sono subito reso conto che non capivo bene cosa stavo stava facendo perché c'erano molti errori e non avevo idea di come risolverli.

Dopodiché ho deciso di smontare il drone e comprendere ogni componente pezzo per pezzo e ricostruirlo in modo da comprendere completamente tutto ciò che stava succedendo.

Nelle sezioni seguenti esaminerò il processo di ricomposizione del puzzle. Prima di ciò diamo una rapida panoramica.

Fisico

Per il fisico dovremmo avere: il telaio, le eliche, la batteria e gli esc. Questi sarebbero abbastanza facili da mettere insieme. Per capire queste parti e quali dovresti ottenere puoi visitare questo link. Spiega cosa devi sapere sull'acquisto di ciascuna delle parti che ho elencato. Guarda anche questo video su Youtube. Ti aiuterà se sei bloccato a mettere insieme le parti.

Passaggio 2: suggerimenti per il riattacco e il debug delle parti fisiche

Suggerimenti per il riattacco e il debug delle parti fisiche
Suggerimenti per il riattacco e il debug delle parti fisiche

Eliche e motori

  • Per verificare se le tue eliche sono nel giusto orientamento (capovolte o meno), quando le fai girare nella direzione indicata dai motori (la maggior parte dei motori ha frecce che mostrano come dovrebbero girare), dovresti sentire una brezza sotto le eliche e non sopra.
  • Le viti sulle eliche opposte dovrebbero essere dello stesso colore.
  • Il colore delle eliche adiacenti dovrebbe essere lo stesso.
  • Assicurati anche di aver sistemato i motori in modo che ruotino proprio come nell'immagine sopra.
  • Se stai cercando di invertire la direzione di un motore, scambia semplicemente i fili alle estremità opposte. Questo invertirà la direzione del motore.

Batteria e alimentazione

  • Se per qualsiasi motivo le cose si accendono e non riesci a capire perché, è molto probabilmente perché hai scambiato positivi e negativi.
  • Se non sei sicuro di quando caricare le batterie, puoi utilizzare un voltmetro per controllare la tensione. Se è inferiore alle specifiche sulla batteria, allora deve essere caricata. Dai un'occhiata a questo link per caricare le batterie.
  • La maggior parte delle batterie LIPO non viene fornita con caricabatterie. Li acquisti separatamente.

Passaggio 3: il controller Arduino

Il controller Arduino
Il controller Arduino

Questa è senza dubbio la parte più difficile di tutto questo progetto. È molto facile far saltare in aria i componenti e il debug potrebbe essere estremamente frustrante se non sai cosa stai facendo. Anche in questo progetto ho controllato il mio drone tramite bluetooth e un'app che ti mostrerò come costruire. Ciò ha reso il progetto particolarmente più difficile perché il 99% dei tutorial là fuori utilizza controller radio (questo non è un dato di fatto lol), ma non preoccuparti, ho passato la frustrazione per te.

Suggerimenti prima di intraprendere questo viaggio

  • Usa una breadboard prima di finalizzare il tuo dispositivo su un PCB. Ciò consente di apportare modifiche facilmente.
  • Se hai testato ampiamente un componente e non funziona, probabilmente non funziona!
  • Guarda le tensioni che un dispositivo può gestire prima di collegarlo!

    • Arduino può gestire da 6 a 20 V, ma prova a coprirlo a 12 V in modo da non farlo esplodere. Puoi leggere di più sulle sue specifiche qui.
    • L'HC-05 può gestire fino a 5 V, ma alcuni pin funzionano a 3,3 V, quindi fai attenzione. Ne parleremo dopo.
    • Anche l'IMU (GY-521, MPU-6050) funziona a 5V.
  • Useremo RemoteXY per costruire la nostra app. Se vuoi costruirlo su un dispositivo iOS devi usare un modulo bluetooth diverso (l'HM-10). Puoi saperne di più su questo sul sito Web RemoteXY.

Spero che tu abbia letto i suggerimenti. Ora testiamo separatamente ogni componente che farà parte del controller.

Passaggio 4: l'MPU-6050

L'MPU-6050
L'MPU-6050

Questo dispositivo ha un giroscopio e un accelerometro, quindi essenzialmente ti dice l'accelerazione in una direzione (X, Y, Z) e l'accelerazione angolare lungo quelle direzioni.

Per testarlo, possiamo usare il tutorial su questo possiamo usare questo tutorial sul sito web di Arduino. Se funziona, dovresti ottenere un flusso di valori dell'accelerometro e del giroscopio che cambiano man mano che inclini, ruoti e acceleri la configurazione. Inoltre, prova a modificare e manipolare il codice in modo da sapere cosa sta succedendo.

Passaggio 5: il modulo Bluetooth HC-05

Il modulo Bluetooth HC-05
Il modulo Bluetooth HC-05
Il modulo Bluetooth HC-05
Il modulo Bluetooth HC-05
Il modulo Bluetooth HC-05
Il modulo Bluetooth HC-05

Non è necessario eseguire questa parte, ma è importante poter accedere alla modalità AT (modalità impostazioni) poiché molto probabilmente dovrai modificare una delle impostazioni del modulo. Questa è stata una delle parti più frustranti di questo progetto. Ho fatto tante ricerche per capire come portare il mio modulo in modalità AT, perché il mio dispositivo non rispondeva ai miei comandi. Mi ci sono voluti 2 giorni per concludere che il mio modulo era rotto. Ne ho ordinato un altro e ha funzionato. Dai un'occhiata a questo tutorial su come entrare in modalità AT.

L'HC-05 è disponibile in diversi tipi, ce ne sono alcuni con pulsanti e altri senza e tutti i tipi di variabili di design. Una cosa che è costante è che tutti hanno un "Pin 34". Dai un'occhiata a questo tutorial.

Cose che dovresti sapere

  • Per entrare in modalità AT, tieni premuto 5V sul pin 34 del modulo bluetooth prima di collegarlo all'alimentazione.
  • Collegare un divisore di potenziale al pin RX del modulo poiché funziona a 3,3 V. Potresti ancora usarlo a 5V ma potrebbe friggere quel pin se qualcosa va storto.
  • Se usi il Pin 34 (invece del pulsante o in qualche altro modo che hai trovato online), il modulo imposterà la velocità di trasmissione del bluetooth a 38400. Ecco perché nel link per il tutorial sopra c'è una riga nel codice che dice:

BTSerial.begin(38400); // Velocità predefinita di HC-05 nel comando AT altro

Se il modulo continua a non rispondere con "OK", prova a cambiare i pin tx e rx. Dovrebbe essere:

Bluetooth => Arduino

RXD =>TX1

TDX =>RX0

Se ancora non funziona, scegli di cambiare i pin nel codice con altri pin Arduino. Prova, se non funziona scambia i pin tx e rx, quindi prova di nuovo

SoftwareSerial BTSerial(10, 11); // RX | TX

Cambia la riga sopra. Potresti provare RX = 2, TX = 3 o qualsiasi altra combinazione valida. Puoi guardare i numeri dei pin di Arduino nell'immagine sopra.

Passaggio 6: collegamento delle parti

Collegamento delle parti
Collegamento delle parti

Ora che siamo sicuri che tutto funzioni, è ora di iniziare a metterli insieme. È possibile collegare le parti proprio come mostrato nel circuito. L'ho preso da Electronoobs. Mi ha davvero aiutato con questo progetto. Dai un'occhiata alla sua versione del progetto qui. Se stai seguendo questo tutorial, non devi preoccuparti delle connessioni del ricevitore: input_Yaw, input_Pitch, ecc. Tutto ciò verrà gestito con il bluetooth. Inoltre, collega il bluetooth come abbiamo fatto nella sezione precedente. I miei pin tx e rx mi stavano dando un po' di problemi, quindi ho usato quelli di Arduino:

RX come 2 e TX come 3, invece dei normali pin. Successivamente, scriveremo una semplice app che continueremo a migliorare fino a quando non avremo il prodotto finale.

Passaggio 7: la bellezza di RemoteXY

La bellezza di RemoteXY
La bellezza di RemoteXY

Per molto tempo ho pensato a un modo semplice per creare un'app remota utilizzabile che mi permettesse di controllare il drone. La maggior parte delle persone usa MIT App Inventor, ma l'interfaccia utente non è bella come vorrei e non sono nemmeno un fan della programmazione pittorica. Avrei potuto progettarlo utilizzando Android Studio, ma sarebbe stato troppo lavoro. Ero estremamente elettrizzato quando ho trovato un tutorial che utilizza RemoteXY. Ecco il link al sito. È estremamente facile da usare e la documentazione è molto buona. Creeremo una semplice interfaccia utente per il nostro drone. Puoi personalizzare il tuo come preferisci. Assicurati solo di sapere cosa stai facendo. Segui le istruzioni qui.

Una volta fatto, modificheremo il codice in modo da poter cambiare l'acceleratore sul nostro elicottero. Aggiungi le righe che hanno /**** Stuff che dovresti fare e perché ***/ al tuo codice.

Se non sta compilando assicurati di aver scaricato la libreria. Apri anche uno schizzo di esempio e confronta ciò che ha e il tuo non lo fa.

///////////////////////////////////////////////RemoteXY include biblioteca // /////////////////////////////////////////////

// RemoteXY seleziona la modalità di connessione e include la libreria

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Impostazioni di connessione RemoteXY

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Eliche

Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;

// Configura RemoteXY

#pragma pack(push, 1) uint8_t RemoteXY_CONF = { 255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0 }; // questa struttura definisce tutte le variabili della tua interfaccia di controllo struct {

// variabile di input

int8_t Joystick_x; // -100..100 posizione del joystick in coordinata x int8_t Joystick_y; // -100..100 posizione del joystick in coordinata y int8_t ThrottleSlider; // Posizione del cursore 0..100

// altra variabile

uint8_t connect_flag; // =1 se connesso a filo, altrimenti =0

} RemoteXY;

#pragma pack (pop)

/////////////////////////////////////////////

// END RemoteXY include // ////////////////////////////////////////// /

/**********Aggiungi questa riga per mantenere il valore dell'acceleratore ************/

int input_THROTTLE;

void setup() {

RemoteXY_Init ();

/********** Collega i motori ai pin Modifica i valori per adattarli ai tuoi **************/

L_F_prop.attach(4); //motore anteriore sinistro

L_B_prop.attach(5); //motore posteriore sinistro R_F_prop.attach(7); //motore anteriore destro R_B_prop.attach(6); //motore posteriore destro

/************* Impedisci ad esc di entrare in modalità programmazione********************/

L_F_prop.writeMicroseconds(1000); L_B_prop.writeMicroseconds(1000); R_F_prop.writeMicroseconds(1000); R_B_prop.writeMicroseconds(1000); ritardo(1000);

}

ciclo vuoto() {

RemoteXY_Handler ();

/****** Mappa il valore della valvola a farfalla che ottieni dall'app su 1000 e 2000 che sono i valori che la maggior parte degli ESC opera a ********/

input_THROTTLE = map(RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds(input_THROTTLE);

L_B_prop.writeMicroseconds(input_THROTTLE); R_F_prop.writeMicroseconds(input_THROTTLE); R_B_prop.writeMicroseconds(input_THROTTLE); }

Passaggio 8: test

Se hai fatto tutto bene, dovresti essere in grado di testare il tuo elicottero facendo scorrere l'acceleratore su e giù. Assicurati di farlo fuori. Inoltre, non tenere accese le eliche perché ciò farà saltare l'elicottero. Non abbiamo ancora scritto il codice per bilanciarlo, quindi sarebbe una CATTIVA IDEA PROVARLO CON LE ELICHE ACCESE! L'ho fatto solo perché lmao.

La dimostrazione serve solo a dimostrare che dovremmo essere in grado di controllare l'acceleratore dall'app. Noterai che i motori stanno balbettando. Questo perché gli ESC non sono stati calibrati. Per fare ciò, dai un'occhiata alle istruzioni su questa pagina di Github. Leggi le istruzioni, apri il file ESC-Calibration.ino e segui queste istruzioni. Se vuoi capire cosa sta succedendo, dai un'occhiata a questo tutorial di Electronoobs.

Mentre esegui il programma, assicurati di legare il drone con delle corde poiché andrà a tutto gas. Assicurati anche che le eliche non siano accese. Il mio l'ho lasciato acceso solo perché sono mezzo matto. NON LASCIATE ACCESE LE ELICHE!!! Questa dimostrazione è mostrata nel secondo video.

Passaggio 9: sto lavorando sul codice. Finirà l'Instructable in pochi giorni

Volevo solo aggiungere che se stai usando questo tutorial e mi aspetti, ci sto ancora lavorando. Sono solo altre cose nella mia vita su cui sto lavorando, ma non preoccuparti, le pubblicherò presto. Diciamo entro il 10 agosto 2019.

Aggiornamento del 10 agosto: non volevo lasciarti in sospeso. Purtroppo non ho avuto il tempo di lavorare al progetto la scorsa settimana. Sono stato molto impegnato con altre cose. Non voglio portarti avanti. Spero di completare l'istruibile nel prossimo futuro. Se hai domande o hai bisogno di aiuto puoi aggiungere un commento qui sotto e ti risponderò.

Consigliato: