Sisukord:

Magicbiti lihtne radarisüsteem: 6 sammu
Magicbiti lihtne radarisüsteem: 6 sammu

Video: Magicbiti lihtne radarisüsteem: 6 sammu

Video: Magicbiti lihtne radarisüsteem: 6 sammu
Video: The Light Gate Welcomes Ruben Uriarte, July 31st, 2023 -UFO, MUFON 2024, Juuli
Anonim

See õpetus näitab, kuidas teha lihtsat radarisüsteemi, kasutades HC-SR04 andurit ja Microbit dev plaati koos töötlemise ja Arduino IDE-dega.

Tarvikud:

  • SG90 Mikroservomootor
  • Jumper juhtmed (üldine)
  • Leivalaud (üldine)
  • Magicbit
  • USB-A-mikro-USB-kaabel
  • Ultraheli andur - HC -SR04 (üldine)

1. samm: lugu

Selles õpetuses õpime, kuidas teha lihtsat radarisüsteemi Magicbit core dev board abil. Selleks kasutame ultraheli andurit HC-SR04 ja andmete kuvamiseks töötluskeskkonda. Alustame.

2. samm: teooria ja metoodika

Esiteks arutame, kuidas see toimib. Põhimõte on väga lihtne. Esiteks pöörame oma andurit pidevalt ümber vertikaaltelje 180 -kraadises vahemikus. Selle liikumise ajal võtame ultraheliandurist iga nurga alt andmed lähima objekti kauguse kohta. Selle protsessi jaoks kasutame Magicbiti põhiplaati. Pärast seda peame oma andmete kuvamiseks looma ühenduse töötlemiskeskkonnaga. Seetõttu kasutame sobiva edastuskiirusega jadaühendusprotokolli. Seejärel kujundame oma radarisüsteemi liidese IDE töötlemise abil. Selles IDE -s seadistame oma jadaühenduse reaalajas andmete saamiseks jada kaudu. Seega suhtleme Magicbitiga reaalajas ja näitame andmeid, mis saadetakse Magicbitilt töötlevale IDE -le.

Samm: riistvara seadistamine

Riistvara seadistamine
Riistvara seadistamine
Riistvara seadistamine
Riistvara seadistamine

Selle projekti jaoks kasutasime peamiselt kolme riistvarakomponenti. Need on Magicbit, servomootor ja ultraheliandur. Kõigi nende osade ühendus on näidatud ülaltoodud joonisel.

Ultraheli andur kasutas sisselülitamiseks 3,3 volti. Seetõttu kasutasime Magicbit plaadi paremat alumist porti ultraheli anduri ühendamiseks Magicbitiga. Kuid servomootorit kasutatakse nõuetekohaseks tööks 5 V, Seetõttu kasutasime servomootori ühendamiseks Magicbitiga vasakut alumist porti. Sel juhul kasutame Magic bit servoühendusmoodulit. Aga kui teil seda moodulit pole, saate kolme hüppetraadi abil ühendada 5V kuni 5V, Gnd to Gnd ja signaali tihvti 26 piniga magicbitil.

Pärast vooluringi ehitamist on meil ehitada väike mehaaniline osa. seadke ühepoolne servoühendus servomootori külge väikese mutri abil. Seejärel kinnitage andur selle pistiku külge, kasutades mõnda L -kujulist kronsteini või sobival viisil. Pärast kogu süsteemi kinnitasime leivaplaadile. Kuid servo ja Magicbiti paigaldamiseks võite kasutada muud pinda.

Samm 4: Tarkvara seadistamine

Tarkvara seadistamine
Tarkvara seadistamine
Tarkvara seadistamine
Tarkvara seadistamine

Tarkvara pool on natuke keeruline. Õigeks mõistmiseks võite enne järgmise osa juurde liikumist viidata järgmistele linkidele.

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

hello.processing.org/editor/

Vaatame Arduino IDE koodi ja selle koodi toimimist.

Servo juhtimiseks kasutame servoteeki ESP32. See raamatukogu sisaldab peaaegu Arduino IDE maagilise bititahvli haldurit. Ultraheli anduriga tegelemiseks kasutame newPingi teeki. Selle saab alla laadida järgmiselt lingilt.

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

Laadige alla zip -fail ja minge tööriistadesse> lisage raamatukogu> lisage Arduinos Zip -raamatukogu. nüüd valige uue pin -teegi allalaaditud zip -fail. Töötlusega suhtlemiseks kasutasime 115200 baudikiirusega jadaühendust. See on ESP32 jaoks kõige sobivam sagedus. Iga nurga alt saadame oma andmed arvutisse selle protokolli abil. Need andmed sisaldavad kaugust andurist lähima esiosa, pöörlemissuuna ja pöördenurga vahel. Kasutades silmuste jaoks kahte, pöörame oma servot kahes suunas. Ühe kraadi pööramise ajal saatsime seeriaandmeid 4 korda. Selle põhjuse saate aru osalise selgituse töötlemisel.

Nüüd on aeg vaadata töötlemiskeskkonda. See on java -põhine programmeerimistarkvara. Sellesse visandisse saame IDE töötlemisel kirjutada oma programmi visandi. Samuti saame oma programmi käivitamisel luua visuaalse väljundi. Samuti saate väljundit võtta 2D- ja 3D -objektidena. Vähe sellest, seda saab kasutada pilditöötluseks ja paljuks muuks.

Töötlusvisandis kujundame kõigepealt oma andmete kuvamise liidese, kasutades lihtsaid graafilisi funktsioone. Koodi alguses loome oma jadaühenduse, lisades seeriaraamatukogud. Seadistusfunktsioonis peate tegema mõningaid muudatusi vastavalt sellele, millist USB -porti Magicbiti arvutiga ühendamiseks kasutasite. saate oma porti kontrollida Arduino IDE abil, kui seadistate Arduino IDE koodi üles laadima. Seejärel muutke visandi töötlemise seadistusosas komporti nime. kui seeriaandmed on saadaval, käivitub funktsioon Serialevent automaatselt. Seetõttu on koodi peamine loogika kaasatud jadasündmusesse, et vältida nurkade ja andmete puudumist. kui uued andmed on saadaval, tõmbame ekraanile joone vastavalt oma nurga alla. Kui objekti ei tuvastata, on kogu joon roheline. Kui ei, siis on osa joont punane vastavalt kaugusele andurist objektini. Samuti tõmbame vastavalt pöörlemissuunale selle joone lähedale veel 200 joont, mille roheline värvus väheneb. iga põhi vahel on meil 0,25 kraadi erinevus. Seetõttu saame Magicbitist igal astmelisel pöörlemisel korraga 4 näitu. Seetõttu saame ekraanil luua käepäraseid otsinguid.

Pärast koodi edu täielikku üleslaadimist maagiasse ja riistvaraosa seadistamist avage töötlemise IDE ja käivitage kood, klõpsates nuppu Käivita. Nüüd on teil väga lihtne radarisüsteem.

Saate koode kohandada vastavalt soovile, mida soovite kuvada.

Samm: tõrkeotsing

Visandi töötlemine ei tööta.

  • Oota mõnda aega. Käivitamisaja tõttu sõltub teie arvuti ja GPU jõudlus.
  • Kontrollige, kas jadaporti number on visandi töötlemisel õige.
  • Kontrollige, kas USB -ühendus on õigesti fikseeritud.
  • Kontrollige ühendust ultraheli anduri ja Magicbiti vahel.
  • Avage jadamonitor ja kontrollige, kas andmed pärinevad Arduinost. Kui ei, siis on probleemiks teie Arduino kood või USB -ühendus.

Servo ei tööta.

  • Kontrollige, kas USB -ühendus on õigesti fikseeritud.
  • Kontrollige juhtmestikku.
  • Kontrollige, kas servo on heas korras.

Samm: Arduino kood

#kaasake

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // servo raamatukogu int distance; ServoradarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Määrab, millise tihvti külge on servomootori kinnitatud viivitus (3000); } void loop () {// pöörab servomootorit 15 kuni 165 kraadi alla (int i = 0; i <= 180; i ++) {RadarServo.write (i); viivitus (50); distance = sonar.ping_cm (); // Kutsub üles funktsiooni ultraheli anduri poolt iga astme jaoks mõõdetud kauguse arvutamiseks (int j = 0; j0) {break; } Serial.print (i); // Saadab praeguse kraadi jadapordi Serial.print (","); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (j) indekseerimiseks; // Saadab praeguse kraadi jadapordi Serial.print ("*"); Seeriatrükk (1); // Saadab kauguse väärtuse jadapordi Serial.print ("/"); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (kaugus) indekseerimiseks; // Saadab kauguse väärtuse jadapordi Serial.print ("."); // Saadab lisamärgi otse eelmise väärtuse juurde, mida on hiljem vaja töötlemiseks IDE-s indekseerimiseks}} // // Kordab eelnevaid ridu vahemikus 165 kuni 15 kraadi (int i = 180; i> = 0; i-) {RadarServo.kirjutage (i); viivitus (50); kaugus = sonar.ping_cm (); jaoks (int j = 75; j> = 0; j- = 25) {kui (i == 180 && (j == 75 || j == 50 || j == 25)) {jätka; } Serial.print (i); // Saadab praeguse kraadi jadapordi Serial.print (","); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (j) indekseerimiseks; // Saadab praeguse kraadi jadapordi Serial.print ("*"); Seeriatrükk (-1); // Saadab kauguse väärtuse jadapordi Serial.print ("/"); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (kaugus) indekseerimiseks; // Saadab kauguse väärtuse jadapordi Serial.print ("."); // Saadab lisamärgi otse eelmise väärtuse juurde, mida on hiljem vaja indekseerimiseks töötlemise IDE -s}}

}

Soovitan: