AR DRONE en 1SHEELD - Ontdek de wereld rondom je drone
Componenten en benodigdheden
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 |
Over dit project
Ons project ziet de besturing van verschillende vluchtgegevens die door een smartphone zijn vastgelegd en in realtime naar uw pc worden verzonden, zoals versnellingsmetersensor, gps-positie, ruisdrone, oriëntatie, gyroscoop en meer.
We gebruiken twee Arduino voor gegevenscontrole, één gemonteerd op de drone en één op de computer, twee xBee om externe gegevens van de 1sheeld naar uw pc te communiceren.
Een leuke en gemakkelijke manier om te profiteren van alle functies en sensoren van de smartphone, en ook om mooie foto's te maken;)
Code
- Hoofdcode
- Slaaf
HoofdcodeC/C++
Deze code wordt geladen op arduino die is aangesloten op de pc, om de Arduino op drone te bestureneerst moet je de bibliotheek downloaden https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
#includeint verifica=0;AltSoftSerial xBee;char c;char h;char stop='s '; ongeldige setup() { Serial.begin(115200); Serial.println("Master OK"); Serieel.println(); Serial.println("Cijfer voor:"); Serial.println ("'o' oriëntatiesensorwaarde"); Serial.println ("'a' versnellingssensorwaarde"); Serial.println ("'b' helderheidssensorwaarde"); Serial.println ("'g' GPS-positie"); Serial.println ("'m' microfoonruis"); Serial.println("'p' neem een foto"); xBee.begin(9600);}void loop() { Serial.flush(); if (Serial.available()>0) { c =Serial.read(); if(c=='o'||c=='a'||c=='m'||c=='g'||c=='b'||c=='p'){ //----------Oriëntatie------------------------------------- ---- if(c=='o'){ Serial.println("Oriëntatie"); c='1'; xBee.print(c); for(int i=0; i<10;i++){vertraging (20); c='o'; xBee.print(c); doe{ h=0; h=xBee.lezen(); Seriële.print(h); } while(xBee.available()>0); vertraging (100); ik=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analyse gestopt"); c='0'; Serieel.println(); Serial.println("Cijfer voor:"); Serial.println ("'o' oriëntatiesensorwaarde"); Serial.println ("'a' versnellingssensorwaarde"); Serial.println ("'b' helderheidssensorwaarde"); Serial.println ("'g' GPS-positie"); Serial.println ("'m' microfoonruis"); Serial.println("'p' neem een foto"); xBee.print(c); ik=11; } } } //---------- Acceleratie---------------------------------- ------- if(c=='a'){ Serial.println("Versnelling"); c='2'; xBee.print(c); for(int i=0; i<10;i++){vertraging (20); c='een'; xBee.print(c); doe{ h=0; h=xBee.lezen(); Seriële.print(h); } while(xBee.available()>0); vertraging (100); ik=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analyse gestopt"); c='0'; Serieel.println(); Serial.println("Cijfer voor:"); Serial.println ("'o' oriëntatiesensorwaarde"); Serial.println ("'a' versnellingssensorwaarde"); Serial.println ("'b' helderheidssensorwaarde"); Serial.println ("'g' GPS-positie"); Serial.println ("'m' microfoonruis"); Serial.println("'p' neem een foto"); xBee.print(c); ik=11; } } } //----------Helderheid---------------------------------- ------ if(c=='b'){ Serial.println("Helderheid"); c='3'; xBee.print(c); for(int i=0; i<10;i++){vertraging (20); c='b'; xBee.print(c); doe{ h=0; h=xBee.lezen(); Seriële.print(h); } while(xBee.available()>0); vertraging (50); ik=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analyse gestopt"); c='0'; Serieel.println(); Serial.println("Cijfer voor:"); Serial.println ("'o' oriëntatiesensorwaarde"); Serial.println ("'a' versnellingssensorwaarde"); Serial.println ("'b' helderheidssensorwaarde"); Serial.println ("'g' GPS-positie"); Serial.println ("'m' microfoonruis"); Serial.println("'p' neem een foto"); xBee.print(c); ik=11; } } } //----------GPS---------------------------------- ------- if(c=='g'){ Serial.println("Posizione GPS'"); c='4'; xBee.print(c); for(int i=0; i<10;i++){vertraging (20); c='g'; xBee.print(c); doe{ h=0; h=xBee.lezen(); Seriële.print(h); } while(xBee.available()>0); vertraging (500); ik=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analyse gestopt"); c='0'; Serieel.println(); Serial.println("Cijfer voor:"); Serial.println ("'o' oriëntatiesensorwaarde"); Serial.println ("'a' versnellingssensorwaarde"); Serial.println ("'b' helderheidssensorwaarde"); Serial.println ("'g' GPS-positie"); Serial.println ("'m' microfoonruis"); Serial.println("'p' neem een foto"); xBee.print(c); ik=11; } } } //----------MICROFONO---------------------------------- ------- if(c=='m'){ Serial.println("Microfoon"); c='5'; xBee.print(c); for(int i=0; i<10;i++){vertraging (20); c='m'; xBee.print(c); doe{ h=0; h=xBee.lezen(); Seriële.print(h); } while(xBee.available()>0); vertraging (100); ik=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analyse gestopt"); c='0'; Serieel.println(); Serial.println("Cijfer voor:"); Serial.println ("'o' oriëntatiesensorwaarde"); Serial.println ("'a' versnellingssensorwaarde"); Serial.println ("'b' helderheidssensorwaarde"); Serial.println ("'g' GPS-positie"); Serial.println ("'m' microfoonruis"); Serial.println("'p' neem een foto"); xBee.print(c); ik=11; } } } //----------AFBEELDINGEN---------------------------------- ------- if(c=='p'){ Serial.println("Maak een foto"); c='6'; xBee.print(c); vertraging(20); c='p'; Serieel.println(); Serial.println("Cijfer voor:"); Serial.println ("'o' oriëntatiesensorwaarde"); Serial.println ("'a' versnellingssensorwaarde"); Serial.println ("'b' helderheidssensorwaarde"); Serial.println ("'g' GPS-positie"); Serial.println ("'m' microfoonruis"); Serial.println("'p' neem een foto"); xBee.print(c); } } }}
Slaaf C/C++
Deze code wordt geladen sull'arduino die op de drone wordt gemonteerd, die de gegevens aan de drone naar de grond zal verstrekkeneerst moet je de bibliotheek downloaden https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
en http://1sheeld.com/downloads/
#include#include char variabile;AltSoftSerial xBee;char master;int voce=0;void setup(){ Serial.begin (115200); Serial.println ("Slaaf ok"); OneSheeld.begin(); xBee.begin(9600);}void loop(){ ReceiveEvent(); requestEvent();}void ReceiveEvent(){ while(xBee.available()>0){ master=xBee.read(); variabel=master; }}void requestEvent(){ if(variabile=='o'){ xBee.print("Asse x:"); xBee.print(OriëntatieSensor.getX()); xBee.print(" Asse y:"); xBee.print(OriëntatieSensor.getY()); xBee.print(" Asse z:"); xBee.println(Oriëntatiesensor.getZ()); variabel=0; } if(variabile=='a'){ xBee.print("Asse x:"); xBee.print(VersnellingsmeterSensor.getX()); xBee.print(" Asse y:"); xBee.print(VersnellingsmeterSensor.getX()); xBee.print(" Asse z:"); xBee.println(VersnellingsmeterSensor.getX()); variabel=0; } if(variabile=='g'){ xBee.print("Longitudine:"); xBee.print(GPS.getLongitude()); xBee.print(" Latitudine;:"); xBee.println(GPS.getLatitude()); variabel=0; } if(variabile=='m'){ xBee.print("db:"); xBee.println(Mic.getValue()); variabel=0; } if(variabile=='b'){ xBee.print("Lumen:"); xBee.println(LightSensor.getValue()); variabel=0; } if(variabile=='p'){ Camera.setFlash(ON); Camera.rearCapture(); xBee.println("Foto's genomen"); variabel=0; } if(variabile=='1'){ TextToSpeech.say("analyse-oriëntatie"); variabel=0; } if(variabile=='2'){ TextToSpeech.say("analyseversnelling "); variabel=0; } if(variabile=='3'){ TextToSpeech.say("analyse helderheidsintensiteit"); variabel=0; } if(variabile=='4'){ TextToSpeech.say("analyse GPS-positie"); variabel=0; } if(variabile=='5'){ TextToSpeech.say("analyse decibelruis"); variabel=0; } if(variabile=='6'){ TextToSpeech.say("Een foto maken"); variabel=0; } if(variabile=='0'){ TextToSpeech.say("analyse gestopt"); variabel=0; }}
Schema's
Dit is de verbinding tussen Arduino en xbee, hetzelfde voor de Arduino die verbinding maakt met de computer en de Arduino op droneProductieproces
- Cloud en hoe het de IT-wereld verandert
- Reality checks ondergaan door de verfindustrie over de hele wereld
- De Drone Pi
- Je smartphone en de connected car
- 6 manieren waarop AI en IoT uw bedrijfswereld in 2019 transformeren
- The Edge en IoT:inzichten uit IoT World 2019
- AI kan nu informele nederzettingen in de wereld detecteren en in kaart brengen
- De composietenwereld in Israël en de VS dienen
- De voor- en nadelen van het coaten van uw pomp
- Onderhoudsdocumentatie en 's werelds beste eiermand
- De nauwkeurigheid en prestaties van uw waterstraalsnijmachine verbeteren