Taula de continguts:

Drone Arduino amb GPS: 16 passos
Drone Arduino amb GPS: 16 passos

Vídeo: Drone Arduino amb GPS: 16 passos

Vídeo: Drone Arduino amb GPS: 16 passos
Vídeo: Drone Battle Part 2🔥: DJI Mini 3 Pro vs DJI AVATA🚀 #shorts 2024, De novembre
Anonim
Drone Arduino amb GPS
Drone Arduino amb GPS

Ens vam proposar construir un dron quadricòpter habilitat per GPS en primera persona (FPV), controlat i estabilitzat per Arduino, amb retorn a casa, anar a coordinar i mantenir les funcions del GPS. Assumíem ingènuament que combinar els programes Arduino i el cablejat existents per a un quadcopter sense GPS amb els d’un sistema de transmissió GPS seria relativament senzill i que podríem passar ràpidament a tasques de programació més complexes. No obstant això, es va haver de canviar una quantitat sorprenent per emmagatzemar aquests dos projectes i, per tant, vam acabar fabricant un quadcòpter FPV habilitat per GPS, sense cap de les funcions afegides.

Hem inclòs instruccions sobre com replicar el nostre producte si esteu satisfet amb el quadcòpter més limitat.

També hem inclòs tots els passos que vam fer en el camí cap a un quadcòpter més autònom. Si us sentiu còmode aprofundint en Arduino o ja teniu molta experiència en Arduino i voleu prendre el nostre punt d’aturada com a punt de partida per a la vostra pròpia exploració, aquest instructiu també és per a vosaltres.

Aquest és un gran projecte per aprendre alguna cosa sobre la creació i codificació d'Arduino, per molt que tingueu experiència. A més, amb sort s’anirà amb un dron.

La configuració és la següent:

A la llista de materials, es requereixen parts sense asterisc per a tots dos objectius.

Les peces amb un asterisc només són necessàries per al projecte inacabat d’un quadcòpter més autònom.

Les peces amb dos asteriscs només es requereixen per al quadricòpter més limitat.

Els passos comuns a tots dos projectes no tenen cap marcador després del títol

Els passos necessaris només per al quadricòpter no autònom més limitat tenen "(Uno)" després del títol.

Els passos només necessaris per al quadricòpter autònom en curs tenen "(Mega)" després del títol.

Per construir el quad basat en Uno, seguiu els passos en ordre i ometeu els passos amb "(Mega)" després del títol.

Per treballar al quad basat en Mega, seguiu els passos en ordre, ometent els passos amb "(Uno)" després del títol.

Pas 1: reuniu materials

Components:

1) Un quadre quadricòpter (és probable que el marc exacte no importi) (15 dòlars)

2) Quatre motors sense escombretes de 2830, 900kV (o similars) i quatre paquets d'accessoris de muntatge (4x $ 6 + 4x $ 4 = $ 40 en total)

3) Quatre ESC UBEC de 20A (4x 10 $ = 40 $ en total)

4) Una placa de distribució d’energia (amb connexió XT-60) (20 dòlars)

5) Una bateria LiPo de 3 s, 3000-5000 mAh amb connexió XT-60 (3000 mAh corresponen amb aproximadament 20 minuts de vol) (25 dòlars)

6) Molts propulsors (es trenquen molt) (10 dòlars)

7) Un Arduino Mega 2560 * (40 dòlars)

8) Un Arduino Uno R3 (20 dòlars)

9) Un segon Arduino Uno R3 ** (20 dòlars)

10) Un Arduino Ultimate GPS Shield (no necessiteu el blindatge, però utilitzar un GPS diferent requerirà un cablejat diferent) (45 dòlars)

11) Dos transceptors sense fils HC-12 (2x 5 $ = 10 $)

12) Un giromètric / acceleròmetre MPU- 6050, 6DOF (grau de llibertat) (5 dòlars)

13) Un parell de transmissors / receptors de 9 canals de 9 x 2,4 GHz, 9 canals (70 dòlars)

14) Capçaleres femenines (apilables) Arduino (20 dòlars)

15) Carregador de balanç de bateria LiPo (i adaptador de 12 V CC, no inclòs) (20 dòlars)

17) Cable adaptador USB A a B mascle a mascle (5 dòlars)

17) Cinta adhesiva

18) Tubs retràctils

Equipament:

1) Un soldador

2) Soldar

3) Epoxi plàstic

4) Encenedor

5) Decapant de filferro

6) Un joc de claus Allen

Components opcionals per a transmissió de vídeo FPV en temps real (visualització en primera persona):

1) Una càmera FPV petita (això enllaça amb la bastant barata i de mala qualitat que hem utilitzat, podeu substituir-ne una de millor) (20 dòlars)

2) Parell de transmissor / receptor de vídeo a 5,6 GHz (832 models utilitzats) (30 dòlars)

3) Bateria LiPo de 500 mAh, 3 s (11,1 V) (7 dòlars) (la vam utilitzar amb un endoll de plàtan, però recomanem retrospectivament que utilitzeu la bateria enllaçada, ja que té un connector compatible amb el transmissor TS832 i, per tant, no ' no requereixen soldadura).

4) 2 bateries LiPo de 1000 mAh 2 s (7,4 V) o similars (5 dòlars). Nombre de mAh no crític sempre que superi els 1000 mAh aproximadament. La mateixa afirmació anterior s’aplica al tipus d’endoll d’una de les dues bateries. L’altre s’utilitzarà per alimentar el monitor, de manera que haureu de soldar, passi el que passi. Probablement el millor és aconseguir-ne un amb un endoll XT-60 (això és el que vam fer). Un enllaç per a aquest tipus és aquí: 1000mAh 2s (7.4V) LiPo amb endoll XT-60

5) Monitor LCD (opcional) (15 dòlars). També podeu utilitzar un adaptador AV-USB i un programari de còpia de DVD per visualitzar-los directament en un ordinador portàtil. Això també ofereix l'opció de gravar vídeos i fotos, en lloc de veure'ls en temps real.

6) Si heu comprat bateries amb endolls diferents dels enllaçats, és possible que necessiteu els adaptadors adequats. Independentment, obteniu un adaptador corresponent al endoll de la bateria que alimenta el monitor. Aquí és on obtenir els adaptadors XT-60

* = només per a projectes més avançats

** = només per a projectes més bàsics

Costos:

Si comenceu de zero (però amb un soldador, etc …), no hi ha cap sistema FPV: ~ 370 $

Si ja teniu un transmissor / receptor RC, carregador de bateria LiPo i bateria LiPo: ~ 260 $

Cost del sistema FPV: 80 dòlars

Pas 2: munteu el marc

Muntar el marc
Muntar el marc
Muntar el marc
Muntar el marc
Muntar el marc
Muntar el marc

Aquest pas és bastant senzill, sobretot si s'utilitza el mateix marc prefabricat que hem utilitzat. Simplement utilitzeu els cargols inclosos i ajunteu el marc com es mostra, amb una clau Allen o un tornavís adequats per al vostre marc. Assegureu-vos que els braços del mateix color siguin adjacents entre si (com en aquesta imatge), de manera que el dron tingui una part frontal i una part posterior transparents. A més, assegureu-vos que la part llarga de la placa inferior sobresurt entre braços de colors oposats. Això esdevé important més endavant.

Pas 3: muntar motors i connectar Esc

Muntar motors i connectar Esc
Muntar motors i connectar Esc
Muntar motors i connectar Esc
Muntar motors i connectar Esc
Muntar motors i connectar Esc
Muntar motors i connectar Esc
Muntar motors i connectar Esc
Muntar motors i connectar Esc

Ara que el quadre està muntat, traieu els quatre motors i els quatre accessoris de muntatge. Podeu utilitzar cargols inclosos als conjunts de muntatge o cargols que queden del quadre de quadcopter per cargolar els motors i els muntatges al seu lloc. Si compreu els muntatges que hem enllaçat, rebrà dos components addicionals, a la imatge superior. Hem tingut un bon rendiment motor sense aquestes peces, de manera que les hem deixat per reduir el pes.

Un cop cargolats els motors, col·loqueu epoxi el tauler de distribució d’energia (PDB) a la part superior de la placa superior del quadre de quadcòpters. Assegureu-vos d’orientar-lo de manera que el connector de la bateria apunti entre braços de colors diferents (paral·lels amb una de les porcions llargues de la placa inferior), com a la imatge superior.

També heu de tenir quatre cons d'hèlix amb rosques femelles. Deixeu-les de banda per ara.

Ara traieu els vostres ESC. A un costat hi sortiran dos cables, un de vermell i un de negre. Per a cadascun dels quatre ESC, introduïu el cable vermell al connector positiu del PDB i el negre al negatiu. Tingueu en compte que si utilitzeu un PDB diferent, aquest pas pot requerir soldadura. Ara connecteu cadascun dels tres cables que surten de cada motor. En aquest moment, no importa quin cable ESC connecteu amb quin fil motor (sempre que connecteu tots els cables d’un ESC amb el mateix motor!) Més endavant corregireu la polaritat cap enrere. No és perillós si s’inverteixen els cables; només resulta que el motor gira cap enrere.

Pas 4: prepareu Arduino i Shield

Prepareu Arduino i Shield
Prepareu Arduino i Shield
Prepareu Arduino i Shield
Prepareu Arduino i Shield

Una nota abans de començar

En primer lloc, podeu optar per soldar tots els cables directament. Tot i això, hem trobat que és inestimable utilitzar capçaleres de pin perquè proporcionen molta flexibilitat per solucionar problemes i adaptar-los. El que segueix és una descripció del que vam fer (i recomanem que facin altres).

Prepareu Arduino i escut

Traieu el vostre Arduino Mega (o un Uno si feu el quad no autònom), el blindatge GPS i les capçaleres apilables. Soldeu l’extrem mascle de les capçaleres apilables al lloc de l’escut GPS, a les files de pins paral·lels als pins prèviament soldats, tal com es mostra a la imatge anterior. També es pot soldar en capçaleres apilables a la fila de pins etiquetats com a 3V, CD, … RX. Utilitzeu un tallador de fil per retallar l’excés de longitud dels passadors que sobresurten per la part inferior. Col·loqueu capçaleres masculines amb les tapes doblegades a totes aquestes capçaleres apilables. Són els que soldareu els cables per a la resta de components.

Connecteu l'escut del GPS a la part superior i assegureu-vos que els pins coincideixen amb els de l'Arduino (Mega o Uno). Tingueu en compte que si utilitzeu el Mega, encara quedarà exposat un munt d’Arduino després de col·locar l’escut al seu lloc.

Col·loqueu cinta elèctrica a la part inferior de l'Arduino, cobrint totes les soldadures de pins exposades, per evitar qualsevol curtcircuit ja que l'Arduino descansa al PDB.

Pas 5: connecteu els components i col·loqueu la bateria (Uno)

Connecteu els components i col·loqueu la bateria (Uno)
Connecteu els components i col·loqueu la bateria (Uno)
Connecteu els components i col·loqueu la bateria (Uno)
Connecteu els components i col·loqueu la bateria (Uno)
Connecteu els components i col·loqueu la bateria (Uno)
Connecteu els components i col·loqueu la bateria (Uno)
Connecteu els components i col·loqueu la bateria (Uno)
Connecteu els components i col·loqueu la bateria (Uno)

L'esquema anterior és gairebé idèntic al de Joop Brooking, ja que basàvem el nostre disseny en el seu.

* Tingueu en compte que aquest esquema suposa un blindatge GPS correctament muntat i, per tant, el GPS no apareix en aquest esquema.

L'esquema anterior es va preparar amb el programari Fritzing, que és molt recomanable especialment per als esquemes que involucren Arduino. Hem fet ús principalment de peces genèriques que es poden editar de manera flexible, ja que les nostres parts generalment no es trobaven a la biblioteca de peces inclosa a Fritzing.

-Assegureu-vos que l'interruptor de l'escut GPS estigui canviat a "Escriptura directa".

-Ara connecteu tots els components segons l'esquema anterior (excepte la bateria!) (Nota important sobre els cables de dades GPS a continuació).

-Tingueu en compte que ja heu connectat els ESC als motors i al PDB, de manera que aquesta part de l'esquema està acabada.

-A més, tingueu en compte que les dades GPS (cables grocs) surten dels pins 0 i 1 de l'Arduino (no els pins Tx i Rx separats del GPS). Això es deu al fet que, configurat per a "Escriptura directa" (vegeu més avall), el GPS surt directament als ports sèrie de maquinari de l'uno (pins 0 i 1). Això es mostra més clarament a la segona imatge superior del cablejat complet.

-Quan connecteu el receptor RC, consulteu la imatge superior. Tingueu en compte que els cables de dades van a la fila superior, mentre que el Vin i el Gnd es troben a la segona i tercera fila, respectivament (i a la columna de pins de la segona a la més llunyana).

-Per fer el cablejat del transceptor HC-12, receptor RC i 5Vout des del PDB fins al Vin de l'Arduino hem utilitzat capçaleres apilables, mentre que per al giroscòpic hem soldat els cables directament a la placa i mitjançant tubs termorretractors al voltant del soldar. Podeu optar per qualsevol dels components, però es recomana soldar directament al giroscopi, ja que estalvia espai, cosa que facilita el muntatge de la part petita. L’ús de capçaleres suposa una petita quantitat de treball per davant, però proporciona més flexibilitat. Soldar els cables directament és una connexió més segura a llarg termini, però significa que és més difícil utilitzar aquest component en un altre projecte. Tingueu en compte que si heu utilitzat capçaleres al blindatge GPS, encara teniu una flexibilitat decent independentment del que feu. De manera crucial, assegureu-vos que els cables de dades GPS dels pins 0 i 1 del GPS siguin fàcils d’eliminar i substituir.

Al final del nostre projecte, no vam poder dissenyar un bon mètode per connectar tots els nostres components al marc. A causa de la pressió horària de la nostra classe, les nostres solucions generalment giraven al voltant de cinta d'escuma de doble cara, cinta adhesiva, cinta elèctrica i tirants. Us recomanem que dediqueu més temps a dissenyar estructures de muntatge estables si teniu previst que aquest sigui un projecte a llarg termini. Amb tot això, si només voleu fer un prototip ràpid, no dubteu a seguir el nostre procés. Tanmateix, assegureu-vos que el giroscopi estigui muntat de manera segura. Aquesta és l’única manera que Arduino sap què fa el quadcòpter, de manera que si es mou en vol tindrà problemes.

Amb tot connectat i al seu lloc, agafeu la bateria LiPo i feu-la lliscar entre les plaques superior i inferior del marc. Assegureu-vos que el seu connector apunti a la mateixa direcció que el connector del PDB i que de fet es puguin connectar. Hem utilitzat cinta adhesiva per mantenir la bateria al seu lloc (la cinta de velcro també funciona, però és més molesta que la cinta adhesiva). La cinta adhesiva funciona bé perquè es pot substituir fàcilment la bateria o treure-la per carregar-la. Tanmateix, heu d'estar segur que tapeu la bateria amb força, ja que si la bateria es mou durant el vol, això podria alterar greument l'equilibri del dron. NO connecteu la bateria al PDB encara.

Pas 6: connecteu els components i col·loqueu la bateria (Mega)

Connecteu els components i col·loqueu la bateria (Mega)
Connecteu els components i col·loqueu la bateria (Mega)
Connecteu els components i col·loqueu la bateria (Mega)
Connecteu els components i col·loqueu la bateria (Mega)
Connecteu els components i col·loqueu la bateria (Mega)
Connecteu els components i col·loqueu la bateria (Mega)

L'esquema anterior es va preparar amb el programari Fritzing, que és molt recomanable especialment per als esquemes que impliquen arduino. Majoritàriament vam fer ús de peces genèriques, ja que les nostres peces generalment no es trobaven a la biblioteca de peces inclosa a Fritzing.

-Tingueu en compte que aquest esquema suposa un blindatge GPS correctament muntat i, per tant, el GPS no apareix en aquest esquema.

-Fixa l'interruptor del Mega 2560 a "Soft Serial".

-Connecteu ara tots els components segons l'esquema anterior (excepte la bateria!)

-Tingueu en compte que ja heu connectat els ESC als motors i al PDB, de manera que aquesta part de l'esquema està acabada.

-Els cables jumper del pin 8 a Rx i el pin 7 a Tx hi són perquè (a diferència de l’Uno, per al qual es va fabricar aquest blindatge), al mega li falta un transmissor-receptor asíncron universal (UART) als pins 7 i 8, i per tant hem d’utilitzar pins de sèrie de maquinari. Hi ha més raons per les quals necessitem pins de sèrie de maquinari, que es comentaran més endavant.

-Quan connecteu el receptor RC, consulteu la imatge superior. Tingueu en compte que els cables de dades van a la fila superior, mentre que el Vin i el Gnd es troben a la segona i tercera fila, respectivament (i a la columna de pins de la segona a la més llunyana).

-Per fer el cablejat del transceptor HC-12, receptor RC i 5Vout des del PDB fins al Vin de l’Arduino hem utilitzat capçaleres apilables, mentre que per al giroscopi hem soldat els cables directament i utilitzant tubs termorretractors al voltant de la soldadura. Podeu triar fer qualsevol dels components. L’ús de capçaleres suposa una petita quantitat de treball per davant, però proporciona més flexibilitat. Soldar els cables directament és una connexió més segura a llarg termini, però significa que és més difícil utilitzar aquest component en un altre projecte. Tingueu en compte que si heu utilitzat capçaleres al blindatge GPS, encara teniu una flexibilitat decent independentment del que feu.

Al final del nostre projecte, no vam poder dissenyar un bon mètode per connectar tots els nostres components al marc. A causa de la pressió horària de la nostra classe, les nostres solucions generalment giraven al voltant de cinta d'escuma de doble cara, cinta adhesiva, cinta elèctrica i tirants. Us recomanem que dediqueu més temps a dissenyar estructures de muntatge estables si teniu previst que aquest sigui un projecte a llarg termini. Amb tot això, si només voleu fer un prototip ràpid, no dubteu a seguir el nostre procés. Tanmateix, assegureu-vos que el giroscopi estigui muntat de manera segura. Aquesta és l’única manera que Arduino sap què fa el quadcòpter, de manera que si es mou en vol tindrà problemes.

Amb tot connectat i al seu lloc, agafeu la bateria LiPo i feu-la lliscar entre les plaques superior i inferior del marc. Assegureu-vos que el seu connector apunti a la mateixa direcció que el connector del PDB i que, de fet, es pugui connectar. Hem utilitzat cinta adhesiva per mantenir la bateria al seu lloc (la cinta de velcro també funciona, però és més molesta que la cinta adhesiva). La cinta adhesiva funciona bé perquè es pot substituir fàcilment la bateria o treure-la per carregar-la. Tanmateix, heu d'estar segur que tapeu la bateria amb força, ja que si la bateria es mou durant el vol, això podria alterar greument l'equilibri del dron. NO connecteu la bateria al PDB encara.

Pas 7: enllaçar el receptor

Bind Receiver
Bind Receiver
Bind Receiver
Bind Receiver

Agafeu el receptor RC i connecteu-lo temporalment a una font d’alimentació de 5V (ja sigui encenent l’Arduino amb alimentació USB o 9V o bé amb una font d’alimentació independent. No connecteu el LiPo a l’Arduino encara). Agafeu el passador d’unió que venia amb el receptor RC i col·loqueu-lo als passadors BIND del receptor. Alternativament, reduïu els passadors superior i inferior de la columna BIND, tal com es mostra a la foto superior. Una llum vermella hauria de parpellejar ràpidament al receptor. Ara agafeu el controlador i premeu el botó de la part posterior mentre estigui apagat, tal com es mostra més amunt. Amb el botó premut, engegueu el controlador. Ara la llum parpellejant del receptor hauria de quedar sòlida. El receptor està lligat. Traieu el cable d’unió. Si utilitzeu una font d'alimentació diferent, torneu a connectar el receptor a la sortida de 5 V de l'Arduino.

Pas 8: (Opcional) Connecteu-vos i munteu el sistema de càmera FPV

(Opcional) Connecteu i munteu el sistema de càmera FPV
(Opcional) Connecteu i munteu el sistema de càmera FPV
(Opcional) Connecteu i munteu el sistema de càmera FPV
(Opcional) Connecteu i munteu el sistema de càmera FPV

En primer lloc, soldeu l'adaptador XT-60 amb els cables d'alimentació i de terra del monitor. Aquests poden variar d'un monitor a un altre, però la potència serà gairebé sempre vermella i la terra gairebé sempre negra. Ara introduïu l'adaptador amb cables soldats al LiPo de 1000 mAh amb el connector XT-60. El monitor s’ha d’encendre amb un fons (normalment) blau. Aquest és el pas més difícil!

Ara cargoleu les antenes del receptor i del transmissor.

Connecteu el vostre petit Lipo de 500 mAh al transmissor. El pin més a la dreta (just a sota de l’antena) està a terra (V_) de la bateria, el següent pin a l’esquerra és V +. Venen els tres cables que van a la càmera. La càmera hauria de venir amb un endoll de tres en un que s’adapti al transmissor. Assegureu-vos que teniu el cable de dades groc al centre. Si heu utilitzat les bateries a les quals hem enllaçat amb endolls destinats a això, aquest pas no hauria de requerir soldadura.

Finalment, connecteu l’altra bateria de 1000 mAh amb el cable de sortida de corrent continu que venia amb el receptor i, al seu torn, connecteu-lo al port d’entrada de corrent continu del receptor. Finalment, connecteu l’extrem negre del cable AVin que venia amb el receptor al port AVin del receptor i l’altre extrem (groc, femella) a l’extrem mascle groc del cable AVin del monitor.

En aquest punt, hauríeu de poder veure una vista de càmera al monitor. Si no podeu, assegureu-vos que el receptor i el transmissor estan connectats (heu de veure números a les seves petites pantalles) i que estan al mateix canal (hem utilitzat el canal 11 per als dos i hem tingut un bon èxit). A més, és possible que hàgiu de canviar el canal del monitor.

Muntar els components al marc.

Un cop tingueu la configuració funcionant, desconnecteu les bateries fins que estigueu a punt per volar.

Pas 9: configureu la recepció de dades GPS

Configureu la recepció de dades GPS
Configureu la recepció de dades GPS
Configureu la recepció de dades GPS
Configureu la recepció de dades GPS

Connecteu el vostre segon Arduino amb el vostre segon transceptor HC-12 tal com es mostra a l’esquema anterior, tenint en compte que la configuració només s’alimentarà tal com es mostra si es connecta a un ordinador. Descarregueu el codi de transceptor proporcionat, obriu el monitor sèrie a 9600 baud.

Si utilitzeu la configuració més bàsica, hauríeu de començar a rebre frases GPS si el vostre escut GPS està alimentat i connectat correctament a l’altre transceptor HC-12 (i si l’interruptor de l’escut està a “Escriptura directa”).

Amb el Mega, assegureu-vos que l'interruptor estigui activat a "Soft Serial".

Pas 10: realitzeu el codi de configuració (Uno)

Aquest codi és idèntic a l’utilitzat per Joop Brokking al seu tutorial de quadcòpters Arduino i es mereix tot el mèrit per la seva redacció.

Amb la bateria desconnectada, utilitzeu el cable USB per connectar l’ordinador a l’Arduino i pengeu el codi de configuració adjunt. Enceneu el transmissor RC. Obriu el monitor sèrie a 57600 baud i seguiu les instruccions.

Errors habituals:

Si el codi no es pot penjar, assegureu-vos que els pins 0 i 1 estiguin desconnectats al blindatge UNO / GPS. Es tracta del mateix port de maquinari que fa servir el dispositiu per comunicar-se amb l'ordinador, de manera que ha de ser gratuït.

Si el codi salta un seguit de passos alhora, comproveu que el commutador GPS estigui a "Escriptura directa".

Si no es detecta cap receptor, assegureu-vos que hi hagi una llum vermella sòlida (però tènue) al receptor quan el transmissor està encès. Si és així, comproveu el cablejat.

Si no es detecta cap giroscopi, pot ser perquè el giroscopi està danyat o si teniu un tipus de giroscopi diferent del que el codi està dissenyat per escriure-hi.

Pas 11: realitzeu el codi de configuració (Mega)

Aquest codi és idèntic a l’utilitzat per Joop Brokking al seu tutorial de quadcòpters Arduino i es mereix tot el mèrit per la seva redacció. Simplement hem adaptat el cablejat per al Mega de manera que les entrades del receptor corresponguessin als pins d’interrupció de canvi de pin correctes.

Amb la bateria desconnectada, utilitzeu el cable USB per connectar l’ordinador a l’Arduino i pengeu el codi de configuració adjunt. Obriu el monitor sèrie a 57600 baud i seguiu les instruccions.

Pas 12: Calibreu els ESC (Uno)

Una vegada més, aquest codi és idèntic al codi de Joop Brokking. Totes les modificacions es van fer en un esforç per integrar el GPS i Arduino i es poden trobar més endavant, a la descripció de la construcció del quadcopter més avançat.

Pengeu el codi de calibratge ESC adjunt. Al monitor sèrie, escriviu la lletra 'r' i premeu retorn. Heu de començar a veure els valors del controlador RC en temps real. Verifiqueu que variïn de 1000 a 2000 en els extrems de l’accelerador, la rotació, el pitch i el gual. A continuació, escriviu 'a' i premeu retorn. Deixeu anar la calibració del giroscopi i, a continuació, verifiqueu que el giroscòpic registri el moviment del quad. Ara torneu a endollar l’arduino de l’ordinador, premeu l’accelerador fins al controlador i connecteu la bateria. Els ESC haurien de cicle diferents tons sonors (però pot ser diferent en funció de l’ESC i del seu firmware). Prem l’accelerador fins a baix. Els ESC haurien d’emetre pitits més baixos i després callar. Desconnecteu la bateria.

Opcionalment, en aquest moment podeu utilitzar els cons que venien amb els paquets d'accessoris de muntatge del motor per cargolar els hèlixs. A continuació, introduïu els números 1 a 4 al monitor sèrie per encendre els motors 1 a 4 respectivament, a la potència més baixa. El programa registrarà la quantitat de sacsejades a causa del desequilibri dels accessoris. Podeu intentar solucionar-ho afegint petites quantitats de cinta adhesiva a un costat o a l’altre dels accessoris. Vam descobrir que podríem aconseguir un bon vol sense aquest pas, però potser una mica menys eficient i més fort que si haguéssim equilibrat l’atrezzo.

Pas 13: Calibra els ESC (Mega)

Aquest codi és molt similar al codi de Brokking, però l’hem adaptat (i el cablejat corresponent) per treballar amb el Mega.

Pengeu el codi de calibratge ESC adjunt. Al monitor sèrie, escriviu la lletra 'r' i premeu retorn. Hauríeu de començar a veure els valors del controlador RC en temps real. Verifiqueu que variïn de 1000 a 2000 en els extrems de l’accelerador, la rotació, el pitch i el guijo.

A continuació, escriviu 'a' i premeu retorn. Deixeu anar la calibració del giroscopi i, a continuació, verifiqueu que el giroscòpic registri el moviment del quad.

Ara torneu a endollar l’arduino de l’ordinador, premeu l’accelerador fins al controlador i connecteu la bateria. Els ESC haurien d’emetre tres pitits baixos seguits d’un pitit alt (però pot ser diferent segons l’ESC i el seu microprogramari). Prem l’accelerador fins a baix. Desconnecteu la bateria.

Els canvis que vam fer a aquest codi van ser passar d’utilitzar PORTD per als pins ESC a utilitzar PORTA i després canviar els bytes escrits en aquests ports de manera que activem els pins adequats tal com es mostra a l’esquema de cablejat. Aquest canvi es deu al fet que els pins del registre PORTD no es troben a la mateixa ubicació del Mega que a l’Uno. No hem pogut provar completament aquest codi, ja que treballàvem amb una antiga Mega fora de marca que tenia la botiga de la nostra escola. Això significava que, per alguna raó, no tots els pins del registre PORTA eren capaços d'activar els ESC correctament. També hem tingut problemes amb l'ús de l'operador o igual (| =) en alguns dels nostres codis de prova. No estem segurs de per què això causava problemes en escriure els bytes per configurar els voltatges dels pins ESC, de manera que vam modificar el codi de Brooking el mínim possible. Creiem que aquest codi és molt proper al funcional, però el vostre quilometratge pot variar.

Pas 14: Poseu-vos a l'aire !! (Uno)

I de nou, aquest tercer bit de codi geni és obra de Joop Brokking. Les alteracions de tots aquests tres trossos de codi només es presenten en el nostre intent d’integració de les dades GPS a l’Arduino.

Amb els hèlixs fermament muntats al marc i tots els components lligats, gravats o muntats d’una altra manera, carregueu el codi del controlador de vol al vostre Arduino i, a continuació, desconnecteu l’Arduino de l’ordinador.

Traieu el quadcopter fora, connecteu la bateria i engegueu el transmissor. Opcionalment, porteu un portàtil connectat a la configuració de recepció de GPS, així com la configuració i el monitor de recepció de vídeo. Carregueu el codi del transceptor al vostre Arduino terrestre, obriu el monitor sèrie a 9600 baud i mireu com s’introdueixen les dades del GPS.

Ara ja esteu a punt per volar. Premeu l’accelerador cap avall i gireu cap a l’esquerra per armar el quadcopter i, a continuació, feu pujar l’accelerador per situar-lo. Comenceu volant baix a terra i sobre superfícies toves com l'herba fins que us sentiu còmodes.

Mireu el vídeo incrustat de com volàvem emocionats el dron la primera vegada que vam aconseguir que el dron i el GPS funcionessin simultàniament.

Pas 15: Posa't a l'aire !! (Mega)

A causa del nostre bloqueig amb el codi de calibratge ESC del Mega, mai no vam poder crear el codi del controlador de vol per a aquesta placa. Si heu arribat a aquest punt, imagino que almenys heu jugat amb el codi de calibratge ESC perquè el Mega funcionés. Per tant, és probable que hagueu de fer modificacions similars al codi del controlador de vol que heu fet al darrer pas. Si el nostre codi de calibratge ESC per al Mega funciona màgicament sense cap altra modificació, només hi haurà algunes coses que haureu de fer al codi d’estoc perquè funcioni en aquest pas. Primer haureu de passar i substituir totes les instàncies de PORTD per PORTA. A més, no oblideu canviar DDRD a DDRA. Després, haureu de canviar tots els bytes que s’escriuen al registre PORTA perquè activin els pins adequats. Per fer-ho, utilitzeu el byte B11000011 per configurar els pins a màxims i B00111100 per posar els pins a mínims. Bona sort i, si us plau, feu-nos-ho saber si voleu amb èxit amb un Mega.

Pas 16: Com hem arribat on som actualment amb el Mega Design

Aquest projecte va suposar una experiència d’aprenentatge immensa per als principiants d’Arduino i d’aficionats a l’electrònica. Per tant, encara que inclouríem la saga de tot el que ens trobàvem mentre intentàvem GPS habilitar el codi de Joop Brokking. Com que el codi de Brokking és tan exhaustiu i molt més complicat que qualsevol altra cosa que escrivíem, vam decidir modificar-lo el menys possible. Vam intentar que el blindatge GPS enviés dades a l'Arduino i, després, Arduino ens enviés aquesta informació a través del transceptor HC12 sense modificar el codi de vol ni el cablejat de cap manera. Després d’examinar els esquemes i el cablejat del nostre Arduino Uno per esbrinar quins pins hi havia disponibles, vam canviar el codi del transceptor GPS que estàvem utilitzant per solucionar el disseny existent. Després el vam provar per assegurar-nos que tot funcionés. En aquest punt, les coses semblaven prometedores.

El següent pas va ser integrar el codi que acabàvem de modificar i provar amb el controlador de vol de Brokking. Això no va ser massa difícil, però ens vam trobar ràpidament amb un error. El controlador de vol de Brokking es basa en les biblioteques Arduino Wire i EEPROM, mentre que el nostre codi GPS utilitzava la biblioteca de programari en sèrie i la biblioteca GPS Arduino. Com que la biblioteca de cables fa referència a la biblioteca de programari de sèrie, ens vam produir un error en què el codi no es compilaria perquè hi havia "definicions múltiples per al vector 3_", sigui el que sigui. Després de mirar a Google i excavar a les biblioteques, al final ens vam adonar que aquest conflicte de la biblioteca feia impossible fer servir aquests trossos de codi junts. Per tant, vam anar a buscar alternatives.

El que vam descobrir és que l’única combinació de biblioteques que no ens va provocar cap error va ser canviar la biblioteca GPS estàndard a neoGPS i després fer servir AltSoftSerial en lloc de Software Serial. Aquesta combinació va funcionar, però, AltSoftSerial només pot funcionar amb pins específics, que no estaven disponibles al nostre disseny. Això és el que ens porta a utilitzar el Mega. Arduino Megas té diversos ports sèrie de maquinari, la qual cosa significa que podríem passar per alt aquest conflicte de la biblioteca sense haver d’obrir gens els ports sèrie del programari.

No obstant això, quan vam començar a utilitzar el Mega, ens vam adonar ràpidament que la configuració del pin era diferent. Els pins de l’Uno que tenen interrupcions són diferents al Mega. De la mateixa manera, els pins SDA i SCL es trobaven en ubicacions diferents. Després d’estudiar els diagrames de pins per a cada tipus d’Arduino i de referenciar els registres anomenats al codi, vam poder executar el codi de configuració del vol només amb un cablejat mínim i sense canvis de programari.

El codi de calibratge ESC és on vam començar a tenir problemes. Vam tocar això breument abans, però bàsicament el codi utilitza registres de pins per regular els pins utilitzats per controlar els ESC. Això fa que el codi sigui més difícil de llegir que utilitzar la funció pinMode () estàndard; no obstant això, fa que el codi funcioni més ràpidament i activi els pins simultàniament. Això és important perquè el codi de vol s’executa en un bucle temporitzat amb cura. A causa de les diferències de pins entre els Arduinos, vam decidir utilitzar el registre de ports A al Mega. No obstant això, en les nostres proves, no tots els pins ens van donar el mateix voltatge de sortida quan se’ns va dir que funcionéssim. Alguns dels pins tenien una potència d’uns 4,90 V i d’altres ens apropaven a 4,95 V. Pel que sembla, els ESC que tenim són una mica complicats i, per tant, només funcionarien correctament quan utilitzem els pins amb un voltatge més alt. Això ens va obligar a canviar els bytes que vam escriure per registrar A de manera que parlàvem amb els pins correctes. Hi ha més informació al respecte a la secció de calibratge ESC.

Això és aproximadament el que hem aconseguit en aquesta part del projecte. Quan vam anar a provar aquest codi de calibratge ESC modificat, es va produir un curt i vam perdre la comunicació amb el nostre Arduino. Ens va quedar molt desconcertat perquè no havíem canviat cap cablejat. Això ens va obligar a fer un pas enrere i adonar-nos que només teníem un parell de dies per aconseguir un dron volador després de setmanes d’intentar encaixar les nostres peces incompatibles. Per això, vam fer un retrocés i vam crear el projecte més senzill amb l’Uno. Tot i això, encara pensem que el nostre enfocament és a prop de treballar amb el Mega amb poc més temps.

El nostre objectiu és que aquesta explicació dels obstacles que hem trobat us sigui útil si esteu treballant en la modificació del codi de Brokking. Tampoc no vam tenir l'oportunitat de provar de codificar cap funció de control autònom basada en el GPS. Això és una cosa que haureu d’esbrinar després de crear un dron que funcioni amb un Mega. No obstant això, segons algunes investigacions preliminars de Google, sembla que implementar un filtre Kalman pot ser la forma més estable i precisa de determinar la posició en vol. Us suggerim que investigueu una mica sobre com aquest algorisme optimitza les estimacions d'estat. A part d’això, molta sort i feu-nos-ho saber si arribeu més enllà del que vam poder!

Recomanat: