AR DRONE y 1SHEELD:descubre el mundo que rodea a tu dron
Componentes y suministros
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 |
Acerca de este proyecto
Nuestro proyecto ve el control de varios datos de vuelo registrados por un teléfono inteligente y transmitidos en tiempo real a su PC, como el sensor de acelerómetro, la posición del gps, el ruido del dron, la orientación, el giroscopio y más.
Usamos dos Arduino para el control de datos, uno montado en el dron y otro en la computadora, dos xBee para comunicar datos remotos del 1sheeld a su PC.
Una forma divertida y fácil de aprovechar todas las funciones y sensores del teléfono inteligente, y también de tomar algunas fotos bonitas;)
Código
- Código maestro
- Esclavo
Código maestro C / C ++
Este código se carga en arduino que se conecta a la PC, para controlar el Arduino en droneprimero debe descargar la biblioteca https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
#includeint verifica =0; AltSoftSerial xBee; char c; char h; char stop ='s '; void setup () {Serial.begin (115200); Serial.println ("Maestro OK"); Serial.println (); Serial.println ("Dígito para:"); Serial.println ("valor del sensor de orientación 'o'"); Serial.println ("'a' valor del sensor de aceleración"); Serial.println ("valor del sensor de brillo 'b'"); Serial.println ("'g' posición GPS"); Serial.println ("'m' ruido de microfono"); Serial.println ("'p' tomar una foto"); xBee.begin (9600);} bucle vacío () {Serial.flush (); if (Serial.available ()> 0) {c =Serial.read (); if (c =='o' || c =='a' || c =='m' || c =='g' || c =='b' || c =='p') { // ---------- Orientación ------------------------------------- ---- if (c =='o') {Serial.println ("Orientación"); c ='1'; xBee.print (c); para (int i =0; i <10; i ++) {retraso (20); c ='o'; xBee.print (c); hacer {h =0; h =xBee.read (); Serial.print (h); } while (xBee.available ()> 0); retraso (100); i =i-1; if (Serial.available ()> 0); if (detener ==Serial.read ()) {Serial.println ("Análisis detenido"); c ='0'; Serial.println (); Serial.println ("Dígito para:"); Serial.println ("valor del sensor de orientación 'o'"); Serial.println ("'a' valor del sensor de aceleración"); Serial.println ("valor del sensor de brillo 'b'"); Serial.println ("'g' posición GPS"); Serial.println ("'m' ruido de microfono"); Serial.println ("'p' tomar una foto"); xBee.print (c); i =11; }}} // ---------- Aceleración ---------------------------------- ------- if (c =='a') {Serial.println ("Aceleración"); c ='2'; xBee.print (c); para (int i =0; i <10; i ++) {retraso (20); c ='a'; xBee.print (c); hacer {h =0; h =xBee.read (); Serial.print (h); } while (xBee.available ()> 0); retraso (100); i =i-1; if (Serial.available ()> 0); if (detener ==Serial.read ()) {Serial.println ("Análisis detenido"); c ='0'; Serial.println (); Serial.println ("Dígito para:"); Serial.println ("valor del sensor de orientación 'o'"); Serial.println ("'a' valor del sensor de aceleración"); Serial.println ("valor del sensor de brillo 'b'"); Serial.println ("'g' posición GPS"); Serial.println ("'m' ruido de microfono"); Serial.println ("'p' tomar una foto"); xBee.print (c); i =11; }}} // ---------- Brillo ---------------------------------- ------ if (c =='b') {Serial.println ("Brillo"); c ='3'; xBee.print (c); para (int i =0; i <10; i ++) {retraso (20); c ='b'; xBee.print (c); hacer {h =0; h =xBee.read (); Serial.print (h); } while (xBee.available ()> 0); retraso (50); i =i-1; if (Serial.available ()> 0); if (detener ==Serial.read ()) {Serial.println ("Análisis detenido"); c ='0'; Serial.println (); Serial.println ("Dígito para:"); Serial.println ("valor del sensor de orientación 'o'"); Serial.println ("'a' valor del sensor de aceleración"); Serial.println ("valor del sensor de brillo 'b'"); Serial.println ("'g' posición GPS"); Serial.println ("'m' ruido de microfono"); Serial.println ("'p' tomar una foto"); xBee.print (c); i =11; } } } //----------GPS---------------------------------- ------- if (c =='g') {Serial.println ("Posición GPS '"); c ='4'; xBee.print (c); para (int i =0; i <10; i ++) {retraso (20); c ='g'; xBee.print (c); hacer {h =0; h =xBee.read (); Serial.print (h); } while (xBee.available ()> 0); retraso (500); i =i-1; if (Serial.available ()> 0); if (detener ==Serial.read ()) {Serial.println ("Análisis detenido"); c ='0'; Serial.println (); Serial.println ("Dígito para:"); Serial.println ("valor del sensor de orientación 'o'"); Serial.println ("'a' valor del sensor de aceleración"); Serial.println ("valor del sensor de brillo 'b'"); Serial.println ("'g' posición GPS"); Serial.println ("'m' ruido de microfono"); Serial.println ("'p' tomar una foto"); xBee.print (c); i =11; }}} // ---------- MICROFONO ---------------------------------- ------- if (c =='m') {Serial.println ("Micrófono"); c ='5'; xBee.print (c); para (int i =0; i <10; i ++) {retraso (20); c ='m'; xBee.print (c); hacer {h =0; h =xBee.read (); Serial.print (h); } while (xBee.available ()> 0); retraso (100); i =i-1; if (Serial.available ()> 0); if (detener ==Serial.read ()) {Serial.println ("Análisis detenido"); c ='0'; Serial.println (); Serial.println ("Dígito para:"); Serial.println ("valor del sensor de orientación 'o'"); Serial.println ("'a' valor del sensor de aceleración"); Serial.println ("valor del sensor de brillo 'b'"); Serial.println ("'g' posición GPS"); Serial.println ("'m' ruido de microfono"); Serial.println ("'p' tomar una foto"); xBee.print (c); i =11; } } } //----------FOTOS---------------------------------- ------- if (c =='p') {Serial.println ("Tomar una foto"); c ='6'; xBee.print (c); retraso (20); c ='p'; Serial.println (); Serial.println ("Dígito para:"); Serial.println ("valor del sensor de orientación 'o'"); Serial.println ("'a' valor del sensor de aceleración"); Serial.println ("valor del sensor de brillo 'b'"); Serial.println ("'g' posición GPS"); Serial.println ("'m' ruido de microfono"); Serial.println ("'p' tomar una foto"); xBee.print (c); }}}}
Esclavo C / C ++
Este código se carga sull'arduino que se monta en el dron, que proporcionará los datos al dron al suelo.primero necesita descargar la biblioteca https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
y http://1sheeld.com/downloads/
#include#include char variabile; AltSoftSerial xBee; char master; int voce =0; void setup () {Serial.begin (115200); Serial.println ("Esclavo ok"); OneSheeld.begin (); xBee.begin (9600);} bucle vacío () {eventoRecibir (); requestEvent ();} void receiveEvent () {while (xBee.available ()> 0) {master =xBee.read (); variabile =maestro; }} void requestEvent () {if (variabile =='o') {xBee.print ("Asse x:"); xBee.print (OrientationSensor.getX ()); xBee.print ("Asse y:"); xBee.print (OrientationSensor.getY ()); xBee.print ("Asse z:"); xBee.println (OrientationSensor.getZ ()); variabile =0; } if (variabile =='a') {xBee.print ("Asse x:"); xBee.print (AccelerometerSensor.getX ()); xBee.print ("Asse y:"); xBee.print (AccelerometerSensor.getX ()); xBee.print ("Asse z:"); xBee.println (AccelerometerSensor.getX ()); variabile =0; } if (variabile =='g') {xBee.print ("Longitudine:"); xBee.print (GPS.getLongitude ()); xBee.print ("Latitudine;:"); xBee.println (GPS.getLatitude ()); variabile =0; } if (variabile =='m') {xBee.print ("db:"); xBee.println (Mic.getValue ()); variabile =0; } if (variabile =='b') {xBee.print ("Lumen:"); xBee.println (LightSensor.getValue ()); variabile =0; } if (variabile =='p') {Camera.setFlash (ON); Camera.rearCapture (); xBee.println ("Fotografías tomadas"); variabile =0; } if (variabile =='1') {TextToSpeech.say ("orientación del análisis"); variabile =0; } if (variabile =='2') {TextToSpeech.say ("aceleración del análisis"); variabile =0; } if (variabile =='3') {TextToSpeech.say ("intensidad de brillo del análisis"); variabile =0; } if (variabile =='4') {TextToSpeech.say ("análisis de posición GPS"); variabile =0; } if (variabile =='5') {TextToSpeech.say ("análisis de ruido de decibelios"); variabile =0; } if (variabile =='6') {TextToSpeech.say ("Tomando una foto"); variabile =0; } if (variabile =='0') {TextToSpeech.say ("análisis detenido"); variabile =0; }}
Esquemas
Esta es la conexión entre Arduino y xbee, lo mismo para el Arduino que se conecta a la computadora y el Arduino en droneProceso de manufactura
- La nube y cómo está cambiando el mundo de las TI
- Comprobaciones de la realidad realizadas por la industria de tintes en todo el mundo
- El Drone Pi
- Su teléfono inteligente y el automóvil conectado
- 6 formas en que la IA y la IoT están transformando su mundo empresarial en 2019
- The Edge and IoT:Insights from IoT World 2019
- La IA ahora puede detectar y mapear asentamientos informales en el mundo
- Al servicio del mundo de los compuestos en Israel y los EE. UU.
- Pros y contras de recubrir su bomba
- Documentación de mantenimiento y la canasta de huevos más grande del mundo
- Mejorar la precisión y el rendimiento de su máquina de corte por chorro de agua