Taula de continguts:

Sistema de radar simple de Magicbit: 6 passos
Sistema de radar simple de Magicbit: 6 passos

Vídeo: Sistema de radar simple de Magicbit: 6 passos

Vídeo: Sistema de radar simple de Magicbit: 6 passos
Vídeo: 8. Diamond Aircraft - производитель самолетов Diamond DA-40, DA-42, DA-50, DA-62 2024, Desembre
Anonim

Aquest tutorial mostra com fer un sistema de radar senzill mitjançant el sensor HC-SR04 i la placa de desenvolupament Microbit amb processament i IDE Arduino.

Subministraments:

  • Micro-servo motor SG90
  • Cable de pont (genèric)
  • Tauler de pa (genèric)
  • Magicbit
  • Cable USB-A a Micro-USB
  • Sensor d'ultrasons - HC-SR04 (genèric)

Pas 1: història

En aquest tutorial aprendrem sobre com fer un sistema de radar senzill mitjançant la placa de desenvolupament del nucli Magicbit. Per a aquest propòsit, fem servir un sensor d’ultrasons HC-SR04 i, per mostrar dades, fem servir un entorn de processament. Comencem.

Pas 2: teoria i metodologia

En primer lloc, analitzem com funciona això. El principi és molt fàcil. Primer girem el sensor al voltant de l'eix vertical en un rang de 180 graus contínuament. Durant aquest moviment prenem les dades sobre la distància a l'objecte més proper del sensor d'ultrasons en tots els angles. Per a aquest procés utilitzem la placa base Magicbit. Després, hem d’establir la connexió amb l’entorn de processament per mostrar les nostres dades. Per tant, fem servir un protocol de comunicació en sèrie amb una velocitat de transmissió adequada. A continuació, dissenyem la nostra interfície del sistema de radar utilitzant IDE de processament. En aquest IDE configurem la nostra comunicació serial per obtenir dades en temps real mitjançant serial. Així doncs, fem una comunicació en temps real amb Magicbit i mostrem les dades que s’envien des de Magicbit a l’IDE de processament.

Pas 3: Configuració del maquinari

Configuració del maquinari
Configuració del maquinari
Configuració del maquinari
Configuració del maquinari

Per a aquest projecte hem utilitzat principalment tres components de maquinari. Són Magicbit, servomotor i sensor d'ultrasons. La connexió entre totes aquestes parts es mostra a la figura superior.

El sensor ultrasònic utilitza 3,3 v per engegar. Per tant, hem utilitzat el port inferior dret de la placa Magicbit per connectar el sensor d'ultrasons a Magicbit. Però el servomotor s’utilitza 5V per a un funcionament adequat, per tant, hem utilitzat el port inferior esquerre per connectar el servomotor amb Magicbit. En aquest cas, fem servir el mòdul de connector servo de bits Magic. Però si no teniu aquest mòdul, podeu utilitzar tres cables jumper per connectar 5V a 5V, Gnd a Gnd i el pin de senyal a 26 pins a magicbit.

Després de construir el circuit, tenim una petita part mecànica per construir. ajusteu el connector de servo lateral únic al servomotor mitjançant una femella petita. A continuació, fixeu el sensor en aquest connector utilitzant un suport en forma de L o de la manera adequada. Després de tot el sistema, vam fixar-nos en taulers de suport. Però podeu utilitzar una altra superfície per muntar servo i Magicbit.

Pas 4: Configuració del programari

Configuració del programari
Configuració del programari
Configuració del programari
Configuració del programari

El costat del programari és poc complex. Per obtenir una comprensió adequada, podeu consultar els enllaços següents abans de passar a la següent part.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

Vegem el codi IDE d'Arduino i com funciona aquest codi.

Per conduir el servo, fem servir la biblioteca de servidors ESP32. Aquesta biblioteca gairebé inclou el gestor de taules de bits màgics a Arduino IDE. Per tractar el sensor d'ultrasons, utilitzem la nova biblioteca de Ping. Es pot descarregar des del següent enllaç.

bitbucket.org/teckel12/arduino-new-ping/do…

Descarregueu el fitxer zip i vés eines> inclou biblioteca> afegiu biblioteca Zip a Arduino. ara seleccioneu el fitxer zip descarregat de la nova biblioteca de pins. Per comunicar-nos amb el processament, hem utilitzat la comunicació en sèrie amb una velocitat de 115200 baud. Aquesta és la freqüència més adequada per a ESP32. Des de qualsevol angle, enviem les nostres dades a l’ordinador mitjançant aquest protocol. La distància a l'objecte frontal més proper del sensor, la direcció de rotació i l'angle de rotació s'inclouen en aquestes dades. Utilitzant dos per a bucles, girem el nostre servo en dues direccions. Mentre rotàvem un grau, vam enviar dades de sèrie 4 vegades. La raó per la qual ho podeu entendre en processar l'explicació de la peça.

Ara és hora de mirar l'entorn de processament. Es tracta d’un programari de programació basat en Java. Podem escriure un esbós del nostre programa en aquest esbós en processament IDE. També podem generar sortida visual mitjançant l'execució del nostre programa. També podeu prendre sortida com a objectes 2D i 3D. No només això, es pot utilitzar per al processament d’imatges i moltes coses més.

En el primer esbós de processament dissenyem la nostra interfície de visualització de dades mitjançant funcions gràfiques senzilles. Al començament del codi, establim la nostra comunicació serial mitjançant la inclusió de biblioteques en sèrie. A la funció de configuració heu de canviar segons el port USB que heu utilitzat per connectar Magicbit a l'ordinador. podeu comprovar el vostre port mitjançant Arduino IDE quan configureu Arduino IDE per penjar el codi. A continuació, canvieu el nom del port de com a la part de configuració a l'esbós de processament. quan les dades de sèrie estan disponibles, la funció Serialevent s’activa automàticament. Per tant, la lògica principal del codi és incloure en un esdeveniment en sèrie per evitar que falten els angles i les dades. quan hi hagi noves dades disponibles, dibuixem una línia a la pantalla segons el nostre angle. En aquell moment, si no hi ha cap objecte detectat, la línia completa té un color verd. Si no, llavors alguna porció de la línia quedarà vermella segons la distància del sensor a l'objecte. També segons la direcció de rotació, dibuixem 200 línies més properes a aquesta línia amb un nivell decreixent de color verd. entre cada principal tenim 0,25 graus de diferència. Per tant, obtenim 4 lectures alhora de Magicbit en cada rotació de graus. Per aquest motiu, podem crear belles mans a la pantalla.

Després de carregar el codi completament a màgia i configurar la part de maquinari, obriu l'IDE de processament i executeu el codi fent clic al botó d'execució. Ara teniu un sistema de radar molt senzill.

Podeu personalitzar els codis segons vulgueu mostrar el que vulgueu.

Pas 5: resolució de problemes

L'esbós de processament no s'està executant.

  • Espera una estona. A causa del temps d'inici, depèn del rendiment del vostre PC i GPU.
  • Comproveu que el número de port de sèrie sigui correcte a l’esbós de processament.
  • Comproveu que la connexió USB estigui fixada correctament.
  • Comproveu la connexió entre el sensor d'ultrasons i Magicbit.
  • Obriu el monitor sèrie i comproveu que les dades provenen d’Arduino. Si no, el problema és el vostre codi Arduino o la vostra connexió USB.

El servo no funciona.

  • Comproveu que la connexió USB estigui fixada correctament.
  • Comproveu el cablejat.
  • Comproveu que el servo està en bon estat.

Pas 6: Codi Arduino

#incloure

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 Sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // include servo library int distance; Servo RadarServo; configuració nul·la () {Serial.begin (115200); RadarServo.attach (26); // Defineix en quin pin hi ha el retard de connexió del servomotor (3000); } void loop () {// gira el servomotor de 15 a 165 graus per a (int i = 0; i <= 180; i ++) {RadarServo.write (i); retard (50); distance = sonar.ping_cm (); // Crida a una funció per calcular la distància mesurada pel sensor d'ultrasons per a cada grau per (int j = 0; j0) {break; } Serial.print (i); // Envia el grau actual al port sèrie Serial.print (","); // Envia un caràcter d'addició just al costat del valor anterior necessari més endavant a l'IDE de processament per indexar Serial.print (j); // Envia el grau actual al port sèrie Serial.print ("*"); Serial.print (1); // Envia el valor de la distància al port sèrie Serial.print ("/"); // Envia un caràcter d'addició just al costat del valor anterior necessari més endavant a l'IDE de processament per indexar Serial.print (distància); // Envia el valor de la distància al port sèrie Serial.print ("."); // Envia un caràcter d'addició just al costat del valor anterior necessari a l'IDE de processament per indexar}} // Repeteix les línies anteriors de 165 a 15 graus per (int i = 180; i> = 0; i -) {RadarServo.escriu (i); retard (50); distància = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continuar; } Serial.print (i); // Envia el grau actual al port sèrie Serial.print (","); // Envia un caràcter d'addició just al costat del valor anterior necessari més endavant a l'IDE de processament per indexar Serial.print (j); // Envia el grau actual al port sèrie Serial.print ("*"); Serial.print (-1); // Envia el valor de la distància al port sèrie Serial.print ("/"); // Envia un caràcter d'addició just al costat del valor anterior necessari més endavant a l'IDE de processament per indexar Serial.print (distància); // Envia el valor de la distància al port sèrie Serial.print ("."); // Envia un caràcter d'addició just al costat del valor anterior necessari més endavant a l'IDE de processament per a la indexació}}

}

Recomanat: