Përmbajtje:

Sistemi i thjeshtë i radarëve nga Magicbit: 6 hapa
Sistemi i thjeshtë i radarëve nga Magicbit: 6 hapa

Video: Sistemi i thjeshtë i radarëve nga Magicbit: 6 hapa

Video: Sistemi i thjeshtë i radarëve nga Magicbit: 6 hapa
Video: Kontrata per helikopteret, Kim: SHBA-ja qendron krah per krah me Shqiperine 2024, Nëntor
Anonim

Ky tutorial tregon se si të bëni një sistem të thjeshtë radari duke përdorur sensorin HC-SR04 dhe bordin Microbit dev me përpunim dhe Arduino IDE.

Furnizimet:

  • Mikro-servo motor SG90
  • Telat e bluzave (të përgjithshme)
  • Tabela e bukës (e përgjithshme)
  • Magicbit
  • Kabllo USB-A në mikro-USB
  • Sensor tejzanor - HC -SR04 (Generic)

Hapi 1: Histori

Në këtë tutorial do të mësojmë se si të bëjmë një sistem të thjeshtë radari duke përdorur bordin kryesor të Magicbit. Për këtë qëllim ne përdorim sensorin tejzanor HC-SR04 dhe për të shfaqur të dhënat, ne përdorim mjedisin e përpunimit. Le të fillojmë.

Hapi 2: Teori dhe Metodologji

Së pari, le të diskutojmë se si funksionon kjo. Parimi është shumë i lehtë. Së pari ne rrotullojmë sensorin tonë rreth boshtit vertikal në rangun 180 gradë në mënyrë të vazhdueshme. Gjatë asaj lëvizjeje ne marrim të dhënat për distancën në objektin më të afërt nga sensori tejzanor në çdo kënd. Për këtë proces ne përdorim bordin bazë Magicbit. Pas kësaj, ne duhet të krijojmë një lidhje me mjedisin e përpunimit për shfaqjen e të dhënave tona. Prandaj ne përdorim protokoll komunikimi serik me një normë të përshtatshme baud. Pastaj ne hartojmë ndërfaqen e sistemit tonë të radarit duke përdorur përpunimin IDE. Në atë IDE ne konfigurojmë komunikimin tonë serik për të marrë të dhëna në kohë reale përmes serialit. Pra, ne bëjmë komunikim në kohë reale me Magicbit dhe tregojmë të dhënat që dërgohen nga Magicbit në IDE të përpunimit.

Hapi 3: Konfigurimi i harduerit

Konfigurimi i harduerit
Konfigurimi i harduerit
Konfigurimi i harduerit
Konfigurimi i harduerit

Për këtë projekt ne kemi përdorur kryesisht tre komponentë harduerikë. Ato janë Magicbit, servo motor dhe sensor tejzanor. Lidhja midis të gjitha këtyre pjesëve është treguar në Figurën e mësipërme.

Sensori tejzanor ka përdorur 3.3 v për fuqizim. Prandaj, ne përdorëm portën e poshtme të poshtme të bordit Magicbit për të lidhur sensorin tejzanor me Magicbit. Por servo motori përdoret 5V për funksionimin e duhur, prandaj ne përdorëm portën e poshtme të majtë për të lidhur servo motorin me Magicbit. Në këtë rast, ne përdorim modulin lidhës të servo Magic bit. Por nëse nuk e keni atë modul, mund të përdorni tre tela kërcyes për të lidhur 5V në 5V, Gnd në Gnd dhe sinjalin e pinit në 26 pin në magicbit.

Pas ndërtimit të qarkut kemi pjesë të vogla mekanike për të ndërtuar. vendosni lidhësin servo të vetëm anësor në servo motorin duke përdorur arrë të vogël. Pastaj rregulloni sensorin në atë lidhës duke përdorur një kllapa në formë L ose në mënyrën e duhur. Pas gjithë sistemit ne u fiksuam në dërrasën e bukës. Por mund të përdorni sipërfaqe të tjera për të montuar servo dhe Magicbit.

Hapi 4: Konfigurimi i softuerit

Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit

Ana e softuerit është pak komplekse. Për kuptimin e duhur ju mund t'i referoheni lidhjeve të mëposhtme para se të kaloni në pjesën tjetër.

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

hello.processing.org/editor/

Le të shikojmë kodin Arduino IDE dhe si funksionon ai kod.

Për drejtimin e servo ne përdorim bibliotekën servo ESP32. Kjo bibliotekë pothuajse përfshin menaxherin e bordit magjik të bitit në Arduino IDE. Për t'u marrë me sensorin tejzanor ne përdorim bibliotekën newPing. Kjo mund të shkarkohet nga lidhja e mëposhtme.

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

Shkarkoni skedarin zip dhe dhe shkoni mjetet> përfshini bibliotekën> shtoni bibliotekën Zip në Arduino. tani zgjidhni skedarin tuaj të shkarkuar zip të bibliotekës së re pin. Për komunikim me përpunimin kemi përdorur komunikimin serik me 115200 baud rate. Kjo është frekuenca më e përshtatshme për ESP32. Në çdo kënd ne i dërgojmë të dhënat tona në kompjuter duke përdorur këtë protokoll. Distanca në objektin e përparmë më të afërt nga sensori, drejtimi i rrotullimit dhe këndi i rrotullimit përfshihen në këto të dhëna. Duke përdorur dy për sythe ne rrotullojmë servo -n tonë në dy drejtime. Ndërsa një rrotullim një shkallë ne kemi dërguar të dhëna serike në 4 herë. Arsyeja për këtë mund ta kuptoni në përpunimin e shpjegimit të pjesës.

Tani është koha për të parë mjedisin e përpunimit. Ky është softuer programimi i bazuar në java. Ne mund të shkruajmë skicë të programit tonë në këtë skicë në përpunimin e IDE. Ne gjithashtu mund të gjenerojmë dalje vizuale nga drejtimi i programit tonë. Gjithashtu ju mund të merrni dalje si objekte 2D dhe 3D. Jo vetëm kaq, kjo mund të përdoret për përpunimin e imazhit dhe shumë gjëra të tjera.

Në skicën e përpunimit fillimisht ne hartojmë ndërfaqen tonë të shfaqjes së të dhënave duke përdorur funksione të thjeshta grafike. Në fillim të kodit ne krijojmë komunikimin tonë serik duke përfshirë bibliotekat serike. Në funksionin e konfigurimit duhet të bëni disa ndryshime sipas portës USB që keni përdorur për të lidhur Magicbit me kompjuterin. mund të kontrolloni portin tuaj duke përdorur Arduino IDE kur konfiguroni Arduino IDE për të ngarkuar kodin. Pastaj ndryshoni emrin e portit com në pjesën e konfigurimit në skicën e përpunimit. kur të dhënat serike janë të disponueshme, funksioni Serialevent aktivizohet automatikisht. Prandaj logjika kryesore e kodit përfshihet në ngjarje serike për të parandaluar që këndet dhe të dhënat të mungojnë. kur të dhënat e reja janë në dispozicion, ne tërheqim një vijë në ekran sipas këndit tonë. Në atë kohë nëse nuk ka objekt të zbuluar, atëherë vija e plotë është me ngjyrë të gjelbër. Nëse jo, atëherë një pjesë e vijës do të jetë e kuqe sipas distancës nga sensori në objekt. Gjithashtu sipas drejtimit të rrotullimit ne tërheqim edhe 200 rreshta të tjerë pranë asaj linje me rënie të nivelit të ngjyrës së gjelbër. midis secilës Kryesore kemi 0.25 gradë diferencë. Prandaj marrim 4 lexime në të njëjtën kohë nga Magicbit në çdo rrotullim shkalle. Për shkak të kësaj ne mund të krijojmë kërkime të bukura dorë në ekran.

Pas ngarkimit të suksesit të kodit plotësisht në magjinë dhe vendosjen e pjesës së harduerit, hapni me sukses IDE -në e përpunimit dhe ekzekutoni kodin duke klikuar butonin Run. Tani ju keni një sistem radari shumë të thjeshtë.

Ju mund t'i personalizoni kodet ashtu siç dëshironi atë që dëshironi të shfaqni.

Hapi 5: Zgjidhja e problemeve

Skica e përpunimit nuk po funksionon.

  • Prisni pak. Për shkak të kohës së fillimit varet nga performanca e kompjuterit tuaj dhe GPU.
  • Kontrolloni që numri i portit serik është i saktë në përpunimin e skicës.
  • Kontrolloni që lidhja USB është fiksuar si duhet.
  • Kontrolloni lidhjen midis sensorit tejzanor dhe Magicbit.
  • Hapni monitorin serik dhe kontrolloni që të dhënat po vijnë nga Arduino. Nëse jo, atëherë problemi është kodi juaj Arduino ose në lidhjen tuaj USB.

Servo nuk punon.

  • Kontrolloni që lidhja USB është fiksuar si duhet.
  • Kontrolloni instalimet elektrike.
  • Kontrolloni që servo është në gjendje të mirë.

Hapi 6: Kodi Arduino

#përfshi

#define TRIGGER_PIN 21 #përcakto ECHO_PIN 22 #përcakto MAX_DISTANCE 200 Sonar i riPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // përfshini servo bibliotekën int distancë; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.tash (26); // Përcakton në cilën pin është vonesa e bashkangjitur servo motorit (3000); } void loop () {// rrotullon servo motorin nga 15 në 165 gradë për (int i = 0; i <= 180; i ++) {RadarServo.shkruaj (i); vonesë (50); distanca = sonar.ping_cm (); // Thërret një funksion për llogaritjen e distancës së matur nga sensori tejzanor për çdo shkallë për (int j = 0; j0) {pushim; } Serial.print (i); // Dërgon gradën aktuale në Port Serial Port Serial.print (","); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (j); // Dërgon gradën aktuale në Portin Serial Serial.print ("*"); Serial.print (1); // Dërgon vlerën e distancës në Portin Serial Serial.print ("/"); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (distanca); // Dërgon vlerën e distancës në Portin Serial Serial.print ("."); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në IDE të përpunimit për indeksimin}} // Përsërit rreshtat e mëparshëm nga 165 në 15 gradë për (int i = 180; i> = 0; i-) {RadarServo.shkruani (i); vonesë (50); distanca = sonar.ping_cm (); për (int j = 75; j> = 0; j- = 25) {nëse (i == 180 && (j == 75 || j == 50 || j == 25)) {vazhdoj; } Serial.print (i); // Dërgon gradën aktuale në Port Serial Port Serial.print (","); // Dërgon karakter shtesë përveç vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (j); // Dërgon gradën aktuale në Portin Serial Serial.print ("*"); Serial.print (-1); // Dërgon vlerën e distancës në Portin Serial Serial.print ("/"); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (distanca); // Dërgon vlerën e distancës në Portin Serial Serial.print ("."); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në IDE të përpunimit për indeksimin}}

}

Recommended: