Inhoudsopgave:

ArDrone 2.0 Quadcopter-regeleenheid op MPU6050- en ESP8266-module - Ajarnpa
ArDrone 2.0 Quadcopter-regeleenheid op MPU6050- en ESP8266-module - Ajarnpa

Video: ArDrone 2.0 Quadcopter-regeleenheid op MPU6050- en ESP8266-module - Ajarnpa

Video: ArDrone 2.0 Quadcopter-regeleenheid op MPU6050- en ESP8266-module - Ajarnpa
Video: 2nd flight test using the Naza GPS adapter / encoder 2024, Juli-
Anonim
Image
Image
De ESP8266 verbinden met het Ar Drone 2.0-toegangspunt
De ESP8266 verbinden met het Ar Drone 2.0-toegangspunt

De grootte, prijs en beschikbaarheid van wifi stellen u in staat om een budgetcontrole-eenheid te maken voor de ArDrone 2.0 quadrocopter op de ESP8266-module (prijzen op AliExpress, Gearbest). Voor de besturing gebruiken we de Gy-521-module op de MPU6050-chip (gyroscoop, versnellingsmeter).

De papegaai AR. Drone is een radiografisch bestuurbare quadrocopter, dat wil zeggen een helikopter met vier hoofdrotors die op afgelegen diagonale balken zijn geplaatst. De AR. Drone zelf draait op het Linux-besturingssysteem en bijna elke Android- of iOS-touchscreen-smartphone of -tablet kan fungeren als afstandsbediening voor de quadcopter. De afstand van stabiele controle via wifi is van 25 tot 100 meter en is afhankelijk van de kamer en de weersomstandigheden, als er op straat wordt gevlogen.

Stap 1: De ESP8266 aansluiten op het Ar Drone 2.0 Access Point

Indien ingeschakeld, AR. Drone maakt een SSIS-toegangspunt "ardrone_XX_XX". Verbinding maken zonder wachtwoord.

Laten we proberen verbinding te maken met het Ar. Dron-toegangspunt met behulp van AT-commando's Sluit de ESP8266-kaart aan op de com-poort van de computer via de UART USB-adaptervoeding 3,3 V.

Open de Arduino IDE, de seriële poortmonitor, en stuur AT-commando's naar het ESP-bord (de quadcopter moet ingeschakeld zijn)

Stap 2: Communicatie met AR. Drone wordt uitgevoerd met behulp van AT-opdrachten

Opdrachten worden naar AR gestuurd. Drone als UDP- of TCP-pakketten;

Een enkel UDP-pakket moet ten minste één volledige opdracht of meer bevatten; Als het pakket meer dan één commando bevat, wordt het teken 0x0A gebruikt om de commando's te scheiden.

Strings worden gecodeerd als 8-bits ASCII-tekens;

De maximale opdrachtlengte is 1024 tekens;

Er is een vertraging van 30 MS tussen de commando's.

Het commando bestaat uit:

AT * [opdrachtnaam] = [opdrachtvolgnummer als string] [, argument 1, argument 2 …]

Lijst met de belangrijkste AT-commando's voor het besturen van AR. drone:

AT * REF-gebruikt voor opstijgen, landen, resetten en noodstop;

AT*PCMD-deze opdracht wordt gebruikt om AR te besturen. Drone beweging;

AT*FTRIM - op het horizontale vlak;

AT*CONFIG-configureert AR. Drone-parameters;

AT*LED zet LED-animaties op AR. drone;

AT*ANIM installeert vluchtanimatie op AR. drone.

AT * COMWDG-watchdog reset-commando-we sturen het constant naar de quadcopter.

De volgende poorten worden gebruikt voor communicatie:

Poort 5556-UDP-verzendt opdrachten naar AR. drone;

Poort 5554-UDP-ontvangt datapakketten van AR. drone;

Poort 5555-Reply stream videopakketten van AR. drone;

Poort 5559-TCP-pakketten voor kritieke gegevens die niet verloren kunnen gaan, meestal voor configuratie.

De client verbreekt de verbinding met de UDP-poort na een vertraging van 2 seconden na het verzenden van het laatste commando!!! - daarom moet u constant commando's sturen, indien nodig-AT*COMWDG.

Overweeg om navigatiegegevens op te halen van ARDrone (poort 5554-UDP). Het navigatiegegevenspakket in demo-modus is 500 bytes lang. Als er iets misgaat, kan de drone een pakket van 32 en 24 bytes verzenden. Als het pakket 24 bytes lang is, betekent dit dat poort 5554 zich in de BOOTSTRAP-modus bevindt en dat u opnieuw verbinding moet maken met de poort om over te schakelen naar de demomodus. ARDrone kan navigatiegegevens in twee vormen naar de client verzenden:

afgekort (of demo), 500 bytes groot. compleet.

Om demogegevens te krijgen, stuurt u eerst vier bytes 0x01, 0x00, 0x00, 0x00 naar poort 5554 en stuurt u vervolgens een opdracht naar poort 5556

AT*CONFIG="+(seq++)+", \"algemeen:navdata_demo\", / " TRUE\" waarbij seq het volgnummer van de opdracht is.

Opbouw van het navigatiedatapakket. Er zijn 4 benoemde waarden aan het begin van het pakket:

32-bits pakketheader: helikopterstatusvlaggen 32 bits;

het volgnummer van het laatste commando dat door de cliënt naar de helikopter is gestuurd 32 bits;

vision vlag 32 bits. Volgende-de navdata-optie Header: 20-23.

De optie navdata heeft de volgende velden:

BATTERIJ = 24; batterijlading als percentage;

PITCH = 28; hellingshoek langs de lengteas;

ROL = 32; hellingshoek ten opzichte van de dwarsas;

YAW = 36; rotatiehoek ten opzichte van de verticale as;

HOOGTE = 40; hoogte;

VX = 44; x-as snelheid;

VY = 48; y-as snelheid;

VZ = 52; snelheid op de z-as.

Stap 3: Het Nokia 5110-scherm aansluiten op het ESP8266-bord

Het Nokia 5110-scherm aansluiten op het ESP8266-bord
Het Nokia 5110-scherm aansluiten op het ESP8266-bord

Sluit het Nokia 5110-scherm aan op de ESP8266-module en voer er enkele navigatiegegevens naar uit en naar de seriële poortmonitor

Stap 4: Navigatiegegevens ophalen en weergeven op het Nokia5110-scherm

Navigatiegegevens ophalen en weergeven op het Nokia5110-display
Navigatiegegevens ophalen en weergeven op het Nokia5110-display

Download (schets ardrone_esp8266_01. ino) en bekijk de uitvoer van navigatiegegevens naar de seriële poort en het scherm.

Stap 5: Opstijg- en landingsopdrachten verzenden

Nu zullen we aan ons project het opstijgen en landen van de quadcopter toevoegen met commando's van de afstandsbediening. Om op te stijgen, moet je een commando sturen

AT*REF=[Volgnummer], 290718208

voor de landing

AT*REF=[Volgnummer], 290717696

Voordat u opstijgt, moet u een commando voor horizontale kalibratie verzenden, anders kan de Ar Drone niet stabiliseren tijdens de vlucht.

AT * F TRIM=[Volgnummer]

Upload de schets ardrone_esp8266_02.ino () naar het ESP8266-bord, zet de Ar Drone 2.0 quadcopter aan en controleer de werking van de knop. Wanneer u op opstijgen klikt, de volgende keer dat u klikt - landen, enz.

Stap 6: MPU6050 aansluiten om de Ardrone 2.0. te bedienen

De MPU6050 aansluiten om de Ardrone 2.0. te bedienen
De MPU6050 aansluiten om de Ardrone 2.0. te bedienen
De MPU6050 aansluiten om de Ardrone 2.0. te bedienen
De MPU6050 aansluiten om de Ardrone 2.0. te bedienen

Sensoren voor het bepalen van de positie in de ruimte worden gebruikt voor het aansturen van quadrocopters. De MPU6050-chip bevat zowel een versnellingsmeter als een gyroscoop aan boord, evenals een temperatuursensor. de MPU6050 is het belangrijkste element van de Gy-531-module (Fig. 15.44). Naast deze chip bevat de module Board de nodige MPU6050 binding, inclusief pull-up weerstanden van de I2C interface, evenals een 3,3-volt spanningsstabilisator met een kleine spanningsval (wanneer gevoed op 3,3 volt, zal de uitgang van de stabilisator zal precies 3 volt zijn) met filtercondensatoren.

Verbinding maken met de microcontroller met behulp van het I2C-protocol.

Stap 7: De quadcopter besturen met behulp van MPU6050

De quadcopter besturen met behulp van MPU6050
De quadcopter besturen met behulp van MPU6050

Met behulp van de versnellingsmeter en gyroscoop kunt u de afwijking op de x- en y-assen bepalen en de afwijking "veranderen" in opdrachten voor het verplaatsen van de quadcopter langs de overeenkomstige assen. Vertaling van de van de sensor ontvangen meetwaarden naar de afbuighoek.

het commando om naar de Ar Drone te sturen voor vluchtcontrole

AT*REF=[Sequence number], [Flag bit-field], [Roll], [Pitch], [Gaz], [Yaw]

De waarden van Roll en Pitch in het bereik van -1 tot 1 zijn ontleend aan de tabel const int float , de index komt overeen met de afwijkingshoek berekend op basis van de mu6050-sensorgegevens.

Upload de schets ardrone_esp8266_03.ino naar het ESP8266-bord, zet de ar Drone 2.0 quadrocopter aan en controleer de werking van de afstandsbediening.

Aanbevolen: