AR DRONE dan 1SHEELD - Temukan dunia di sekitar drone Anda
Komponen dan persediaan
| | × | 2 | |
| | × | 1 | |
| | × | 1 | |
| | × | 2 | |
Tentang proyek ini
Proyek kami melihat kontrol berbagai data penerbangan yang direkam oleh ponsel cerdas dan ditransmisikan secara real-time ke komputer Anda, seperti sensor akselerometer, posisi gps, noise drone, orientasi, giroskop, dan banyak lagi.
Kami menggunakan dua Arduino untuk kontrol data, satu dipasang ke drone, dan satu ke komputer, dua xBee untuk mengomunikasikan data jarak jauh 1sheeld ke komputer Anda.
Cara yang menyenangkan dan mudah untuk memanfaatkan semua fitur dan sensor ponsel cerdas, dan juga untuk mengambil beberapa gambar yang bagus;)
Kode
Kode MasterC/C++
Kode ini dimuat pada arduino yang terhubung ke PC, untuk mengontrol Arduino di drone
pertama Anda perlu mengunduh perpustakaan https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html#include int verifica=0;AltSoftSerial xBee;char c;char h;char stop='s ';pengaturan batal() { Serial.begin(115200); Serial.println("Tuan Oke"); Serial.println(); Serial.println("Angka untuk:"); Serial.println("'o' nilai sensor orientasi"); Serial.println("'a' nilai sensor percepatan"); Serial.println("'b' nilai sensor kecerahan"); Serial.println("'g' posisi GPS"); Serial.println("'m' suara mikrofon"); Serial.println("'p' ambil gambar"); 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'){ //----------Orientasi------------------------------------- ---- if(c=='o'){ Serial.println("Orientasi"); c='1'; xBee.print(c); for(int i=0; i<10;i++){ delay(20); c='o'; xBee.print(c); lakukan{ h=0; h=xBee.read(); Serial.print(h); } while(xBee.available()>0); penundaan(100); i=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analisis Berhenti"); c='0'; Serial.println(); Serial.println("Angka untuk:"); Serial.println("'o' nilai sensor orientasi"); Serial.println("'a' nilai sensor percepatan"); Serial.println("'b' nilai sensor kecerahan"); Serial.println("'g' posisi GPS"); Serial.println("'m' suara mikrofon"); Serial.println("'p' ambil gambar"); xBee.print(c); saya=11; } } } //----------Percepatan---------------------------------- ------- if(c=='a'){ Serial.println("Akselerasi"); c='2'; xBee.print(c); for(int i=0; i<10;i++){ delay(20); c ='a'; xBee.print(c); lakukan{ h=0; h=xBee.read(); Serial.print(h); } while(xBee.available()>0); penundaan(100); i=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analisis Berhenti"); c='0'; Serial.println(); Serial.println("Angka untuk:"); Serial.println("'o' nilai sensor orientasi"); Serial.println("'a' nilai sensor percepatan"); Serial.println("'b' nilai sensor kecerahan"); Serial.println("'g' posisi GPS"); Serial.println("'m' suara mikrofon"); Serial.println("'p' ambil gambar"); xBee.print(c); saya=11; } } } //----------Kecerahan---------------------------------- ------ if(c=='b'){ Serial.println("Kecerahan"); c='3'; xBee.print(c); for(int i=0; i<10;i++){ delay(20); c='b'; xBee.print(c); lakukan{ h=0; h=xBee.read(); Serial.print(h); } while(xBee.available()>0); penundaan (50); i=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analisis Berhenti"); c='0'; Serial.println(); Serial.println("Angka untuk:"); Serial.println("'o' nilai sensor orientasi"); Serial.println("'a' nilai sensor percepatan"); Serial.println("'b' nilai sensor kecerahan"); Serial.println("'g' posisi GPS"); Serial.println("'m' suara mikrofon"); Serial.println("'p' ambil gambar"); xBee.print(c); saya=11; } } } //----------GPS---------------------------------- ------- if(c=='g'){ Serial.println("Posisi GPS'"); c='4'; xBee.print(c); for(int i=0; i<10;i++){ delay(20); c='g'; xBee.print(c); lakukan{ h=0; h=xBee.read(); Serial.print(h); } while(xBee.available()>0); penundaan (500); i=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analisis Berhenti"); c='0'; Serial.println(); Serial.println("Angka untuk:"); Serial.println("'o' nilai sensor orientasi"); Serial.println("'a' nilai sensor percepatan"); Serial.println("'b' nilai sensor kecerahan"); Serial.println("'g' posisi GPS"); Serial.println("'m' suara mikrofon"); Serial.println("'p' ambil gambar"); xBee.print(c); saya=11; } } } //----------MICROFONO---------------------------------- ------- if(c=='m'){ Serial.println("Mikrofon"); c='5'; xBee.print(c); for(int i=0; i<10;i++){ delay(20); c =m'; xBee.print(c); lakukan{ h=0; h=xBee.read(); Serial.print(h); } while(xBee.available()>0); penundaan(100); i=i-1; if(Serial.available()>0); if(stop==Serial.read()){ Serial.println("Analisis Berhenti"); c='0'; Serial.println(); Serial.println("Angka untuk:"); Serial.println("'o' nilai sensor orientasi"); Serial.println("'a' nilai sensor percepatan"); Serial.println("'b' nilai sensor kecerahan"); Serial.println("'g' posisi GPS"); Serial.println("'m' suara mikrofon"); Serial.println("'p' ambil gambar"); xBee.print(c); saya=11; } } } //----------FOTO-FOTO---------------------------------- ------- if(c=='p'){ Serial.println("Ambil gambar"); c='6'; xBee.print(c); penundaan (20); c='p'; Serial.println(); Serial.println("Angka untuk:"); Serial.println("'o' nilai sensor orientasi"); Serial.println("'a' nilai sensor percepatan"); Serial.println("'b' nilai sensor kecerahan"); Serial.println("'g' posisi GPS"); Serial.println("'m' suara mikrofon"); Serial.println("'p' ambil gambar"); xBee.print(c); } } }}
Budak C/C++
Kode ini dimuat sull'arduino yang dipasang di drone, yang akan memberikan data ke drone ke tanah
pertama Anda perlu mengunduh perpustakaan https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
dan http://1sheeld.com/downloads/#include #includechar variabile;AltSoftSerial xBee;char master;int voce=0;void setup(){ Serial.begin (115200); Serial.println("Budak oke"); OneSheeld.begin(); xBee.begin(9600);}void loop(){ acceptEvent(); requestEvent();}tidak berlaku menerimaEvent(){ while(xBee.available()>0){ master=xBee.read(); variabel=master; }}void requestEvent(){ if(variabel=='o'){ xBee.print("Asse x:"); xBee.print(OrientationSensor.getX()); xBee.print(" Nilai y:"); xBee.print(OrientationSensor.getY()); xBee.print(" Nilai z:"); xBee.println(OrientationSensor.getZ()); variabel=0; } if(variabel=='a'){ xBee.print("Nilai x:"); xBee.print(AccelerometerSensor.getX()); xBee.print(" Nilai y:"); xBee.print(AccelerometerSensor.getX()); xBee.print(" Nilai z:"); xBee.println(AccelerometerSensor.getX()); variabel=0; } if(variabel=='g'){ xBee.print("Bujur:"); xBee.print(GPS.getLongitude()); xBee.print(" Garis Lintang;:"); xBee.println(GPS.getLatitude()); variabel=0; } if(variabel=='m'){ xBee.print("db:"); xBee.println(Mic.getValue()); variabel=0; } if(variabel=='b'){ xBee.print("Lumen:"); xBee.println(LightSensor.getValue()); variabel=0; } if(variabel=='p'){ Camera.setFlash(ON); Kamera.rearCapture(); xBee.println("Gambar diambil"); variabel=0; } if(variabel=='1'){ TextToSpeech.say("orientasi analisis"); variabel=0; } if(variabel=='2'){ TextToSpeech.say("percepatan analisis "); variabel=0; } if(variabel=='3'){ TextToSpeech.say("analisis intensitas kecerahan"); variabel=0; } if(variabel=='4'){ TextToSpeech.say("analisis posisi GPS"); variabel=0; } if(variabel=='5'){ TextToSpeech.say("analisis desibel kebisingan"); variabel=0; } if(variabel=='6'){ TextToSpeech.say("Mengambil gambar"); variabel=0; } if(variabel=='0'){ TextToSpeech.say("analisis dihentikan"); variabel=0; }}
Skema
Ini adalah koneksi antara Arduino dan xbee, sama untuk Arduino yang terhubung ke komputer dan Arduino di drone