Orodha ya maudhui:

Mfumo Rahisi wa Rada Kutoka kwa Magicbit: Hatua 6
Mfumo Rahisi wa Rada Kutoka kwa Magicbit: Hatua 6

Video: Mfumo Rahisi wa Rada Kutoka kwa Magicbit: Hatua 6

Video: Mfumo Rahisi wa Rada Kutoka kwa Magicbit: Hatua 6
Video: Edson Mwasabwite - Ni Kwa Neema Na Rehema (Official video gospel) +255 769193161 2024, Julai
Anonim

Mafunzo haya yanaonyesha jinsi ya kutengeneza mfumo rahisi wa rada ukitumia sensa ya HC-SR04 na bodi ya Microbit dev na usindikaji na IDE za Arduino.

Ugavi:

  • SG90 Micro-servo motor
  • Waya za jumper (generic)
  • Bodi ya mkate (generic)
  • Uchawi
  • USB-A hadi kebo ya Micro-USB
  • Sensorer ya Ultrasonic - HC-SR04 (Kawaida)

Hatua ya 1: Hadithi

Katika mafunzo haya tutajifunza juu ya jinsi ya kutengeneza mfumo rahisi wa rada kutumia bodi ya msingi ya Magicbit. Kwa kusudi hili tunatumia sensa ya ultrasonic ya HC-SR04 na kuonyesha data, tunatumia mazingira ya usindikaji. Hebu tuanze.

Hatua ya 2: Nadharia na Mbinu

Kwanza, wacha tujadili jinsi inavyofanya kazi. Kanuni ni rahisi sana. Kwanza tunazungusha sensa yetu karibu na mhimili wima katika safu ya digrii 180 mfululizo. Wakati wa mwendo huo tunachukua data kuhusu umbali wa kitu cha karibu kutoka kwa sensorer ya ultrasonic kila pembe. Kwa mchakato huu tunatumia bodi ya msingi ya Magicbit. Baada ya hapo, lazima tuanzishe unganisho na mazingira ya usindikaji kwa kuonyesha data yetu. Kwa hivyo tunatumia itifaki ya mawasiliano ya serial na kiwango kinachofaa cha baud. Kisha tunatengeneza muundo wetu wa mfumo wa rada kwa kutumia usindikaji IDE. Katika IDE hiyo tunasanidi mawasiliano yetu ya serial ili kupata data ya wakati halisi kupitia serial. Kwa hivyo tunafanya mawasiliano ya wakati halisi na Magicbit na kuonyesha data ambayo hutuma kutoka Magicbit kwenda kwa IDE ya usindikaji.

Hatua ya 3: Usanidi wa vifaa

Usanidi wa Vifaa
Usanidi wa Vifaa
Usanidi wa Vifaa
Usanidi wa Vifaa

Kwa mradi huu tulitumia vifaa vitatu vya vifaa. Wao ni Magicbit, servo motor na sensor ya ultrasonic. Uunganisho kati ya sehemu hizi zote umeonyeshwa kwenye Kielelezo hapo juu.

Sensorer ya Ultrasonic ilitumia 3.3 v kuongeza nguvu. Kwa hivyo tulitumia bandari ya chini kulia ya bodi ya Magicbit kuunganisha sensor ya ultrasonic kwa Magicbit. Lakini servo motor hutumiwa 5V kwa kufanya kazi vizuri, Kwa hivyo tulitumia bandari ya kushoto ya chini kuunganisha servo motor na Magicbit. Katika kesi hii, tunatumia moduli ya kiunganishi cha servo ya Uchawi. Lakini ikiwa huna moduli hiyo unaweza kutumia waya tatu za kuruka kuunganisha 5V hadi 5V, Gnd hadi Gnd na pini ya ishara kwa pini 26 kwenye magicbit.

Baada ya kujenga mzunguko tuna sehemu ndogo ya mitambo ya kujenga. weka kontakt upande mmoja wa servo kwa motor ya servo ukitumia nati ndogo. Kisha rekebisha sensorer kwenye kontakt hiyo ukitumia bracket iliyo na umbo la L au njia sahihi. Baada ya mfumo mzima tuliweka kwenye ubao wa mkate. Lakini unaweza kutumia uso mwingine kuweka servo na Magicbit.

Hatua ya 4: Usanidi wa Programu

Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu

Upande wa programu ni ngumu kidogo. Kwa uelewa sahihi unaweza kurejelea viungo vifuatavyo kabla ya kuhamia sehemu inayofuata.

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

hello.processing.org/editor/

Wacha tuangalie nambari ya Arduino IDE na jinsi nambari hiyo inavyofanya kazi.

Kwa kuendesha servo tunatumia maktaba ya ESP32 servo. Maktaba hii karibu inajumuisha katika meneja wa bodi ya uchawi huko Arduino IDE. Kukabiliana na sensorer ya ultrasonic tunatumia maktaba ya newPing. Hii inaweza kupakuliwa kutoka kwa kufuata kiunga.

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

Pakua faili ya zip na zana za kwenda> pamoja na maktaba> ongeza maktaba ya Zip huko Arduino. sasa chagua faili yako ya zip iliyopakuliwa ya maktaba mpya ya pini. Kwa mawasiliano na usindikaji tulitumia mawasiliano ya serial na kiwango cha baud 115200. Huu ni masafa sahihi zaidi kwa ESP32. Katika kila pembe tunatuma data zetu kwa kompyuta kwa kutumia itifaki hii. Umbali wa kitu cha mbele cha karibu kutoka kwa sensorer, mwelekeo wa kuzunguka na pembe inayozunguka ni pamoja na kwenye data hii. Kutumia mbili kwa vitanzi tunazungusha servo yetu pande mbili. Wakati mzunguko mmoja tulituma data ya serial mara 4. Sababu ya hiyo unaweza kuelewa katika kusindika maelezo ya sehemu.

Sasa ni wakati wa kuangalia mazingira ya usindikaji. Hii ni programu ya msingi ya java. Tunaweza kuandika mchoro wa programu yetu katika mchoro huu katika usindikaji IDE. Tunaweza pia kutoa pato la kuona kutokana na kuendesha programu yetu. Pia unaweza kuchukua pato kama vitu vya 2D na 3d. Sio hivyo tu, hii inaweza kutumika kwa usindikaji wa picha na vitu vingi zaidi.

Katika mchoro wa usindikaji kwanza tunatengeneza kiolesura chetu cha kuonyesha data kwa kutumia kazi rahisi za picha. Mwanzoni mwa nambari tunaanzisha mawasiliano yetu ya serial kwa kujumuisha maktaba za serial. Katika kazi ya usanidi lazima ufanye mabadiliko kulingana na bandari gani ya USB uliyotumia kuunganisha Magicbit na kompyuta. unaweza kuangalia bandari yako ukitumia Arduino IDE wakati unasanidi IDE ya Arduino kupakia nambari. Kisha badilisha jina la bandari katika sehemu ya usanidi katika usindikaji mchoro. wakati data ya serial inapatikana, kazi ya Serialevent inasababisha moja kwa moja. Kwa hivyo mantiki kuu ya nambari ni pamoja na katika tukio la serial kwa kuzuia pembe na data kukosa. wakati data mpya inapatikana, tunachora laini kwenye skrini kulingana na angle yetu. Kwa wakati huo ikiwa hakuna kitu cha kugundua, basi laini kamili ni rangi ya kijani kibichi. Ikiwa sivyo basi sehemu fulani ya laini itakuwa nyekundu kulingana na umbali kutoka kwa sensorer hadi kitu. Pia mwelekeo wa kuzunguka tunachora mistari mingine 200 karibu na mstari huo na kiwango cha kupungua kwa rangi ya kijani kibichi. kati ya kila Kuu tuna tofauti ya digrii 0.25. Kwa hivyo tunapata usomaji 4 kwa wakati mmoja kutoka kwa Magicbit katika kila mzunguko wa digrii. Kwa sababu hiyo tunaweza kuunda mkono mzuri wa kutafuta kwenye skrini.

Baada ya kupakia mafanikio ya msimbo kikamilifu kwa uchawi na weka sehemu ya vifaa kwa mafanikio kufungua IDE ya usindikaji na uendeshe nambari kwa kubofya kitufe cha kukimbia. Sasa una mfumo rahisi sana wa rada.

Unaweza kubadilisha nambari kama unavyotaka kile unachotaka kuonyesha.

Hatua ya 5: Utatuzi

Mchoro wa usindikaji haufanyi kazi.

  • Subiri kwa muda. Kwa sababu ya kuanza wakati inategemea utendaji wako wa PC na GPU.
  • Angalia nambari ya bandari ya serial ni sahihi kwenye mchoro wa usindikaji.
  • Angalia unganisho la USB limerekebishwa kwa usahihi.
  • Angalia unganisho kati ya sensorer ya ultrasonic na Magicbit.
  • Fungua mfuatiliaji wa serial na angalia data inatoka Arduino. Ikiwa sivyo, basi shida ni nambari yako ya Arduino au kwenye unganisho lako la USB.

Servo haifanyi kazi.

  • Angalia unganisho la USB limerekebishwa kwa usahihi.
  • Angalia wiring.
  • Angalia servo iko katika hali nzuri.

Hatua ya 6: Msimbo wa Arduino

# pamoja

#fafanua TRIGGER_PIN 21 #fafanua ECHO_PIN 22 #fafanua MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); # pamoja na // ni pamoja na maktaba ya servo int umbali; Servo RadaServo; kuanzisha batili () {Serial.begin (115200); RadarServo.ambatanisha (26); // Inafafanua juu ya pini ipi ambayo servo motor imecheleweshwa kuchelewa (3000); } kitanzi batili () {// huzungusha servo motor kutoka digrii 15 hadi 165 kwa (int i = 0; i <= 180; i ++) {RadarServo.write (i); kuchelewesha (50); umbali = sonar.ping_cm (); } Serial.print (i); // Inatuma kiwango cha sasa kwenye Serial Serial.print (","); // Inatuma herufi ya kuongeza karibu kabisa na thamani ya hapo awali inahitajika baadaye katika IDE ya Usindikaji kwa kuorodhesha Serial.print (j); // Inatuma kiwango cha sasa kwenye Serial Serial.print ("*"); Rekodi ya serial (1); // Inatuma thamani ya umbali katika Serial Serial Printa ("/"); // Inatuma herufi ya kuongeza karibu kabisa na thamani ya hapo awali inahitajika baadaye katika IDE ya Usindikaji kwa kuorodhesha Serial.print (umbali); // Inatuma thamani ya umbali katika Serial Serial Printa ("."); // Inatuma herufi ya kuongeza karibu kabisa na thamani ya hapo awali inayohitajika baadaye katika IDE ya Usindikaji kwa kuorodhesha)} // Inarudia mistari iliyotangulia kutoka digrii 165 hadi 15 kwa (int i = 180; i> = 0; i -) {RadarServo andika (i); kuchelewesha (50); umbali = sonar.ping_cm (); kwa (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {endelea; } Serial.print (i); // Inatuma kiwango cha sasa kwenye Serial Serial Port.print (","); // Inatuma herufi ya kuongeza karibu kabisa na dhamana ya hapo awali inahitajika baadaye katika IDE ya Usindikaji kwa kuorodhesha Serial.print (j); // Inatuma kiwango cha sasa kwenye Serial Serial.print ("*"); Serial.print (-1); // Inatuma thamani ya umbali katika Serial Serial Printa ("/"); // Inatuma herufi ya kuongeza karibu kabisa na thamani ya hapo awali inahitajika baadaye katika IDE ya Usindikaji kwa kuorodhesha Serial.print (umbali); // Inatuma thamani ya umbali katika Serial Serial Printa ("."); // Hutuma herufi ya kuongeza karibu kabisa na thamani ya hapo awali inayohitajika baadaye katika IDE ya Usindikaji kwa kuorodhesha)}

}

Ilipendekeza: