Orodha ya maudhui:
- Hatua ya 1: Vipengele vinavyohitajika
- Hatua ya 2: Sanidi Nyimbo
- Hatua ya 3: Kuweka Mazingira
- Hatua ya 4: Kupanga programu ya GiggleBot
- Hatua ya 5: Kuruhusu Iendeshe
Video: Mfuasi wa Mstari wa GiggleBot Kutumia Chatu: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Wakati huu kote, tunapanga katika MicroPython Viwanda vya Dexter GiggleBot kufuata laini nyeusi ukitumia sensorer ya mfuatiliaji wa laini iliyojengwa.
GiggleBot inapaswa kuoanishwa na Micro micro: bit ili iweze kudhibitiwa ipasavyo.
Ikiwa mafunzo haya ni ya juu sana kwako na kupanga GiggleBot ni nyingi sana kwa sasa, unaweza kupitia mafunzo ya mwanzo ambayo inakuonyesha jinsi roboti inaweza kusanidiwa katika MakeCode hapa. Mafunzo yaliyounganishwa yatakutembea kupitia misingi.
Hatua ya 1: Vipengele vinavyohitajika
Vipengele vifuatavyo vya vifaa vinahitajika:
- x3 AA betri - kwa upande wangu ninatumia betri zinazoweza kuchajiwa ambazo zina jumla ya voltage ya chini.
- Viwanda vya Dexter robot GiggleBot kwa micro: bit.
- Kidogo cha BBC: kidogo.
Kwa kweli, unahitaji pia kebo ndogo ya USB kupangilia BBC micro: bit - kebo hii kwa ujumla huja ndani ya kifurushi cha BBC micro: kidogo au unaweza kutumia kila wakati ambayo hutumika kuchaji simu za rununu (Android).
Pata GiggleBot kwa micro: kidogo hapa
Hatua ya 2: Sanidi Nyimbo
Utalazimika kupitia kuchapisha tiles kadhaa na kubuni nyimbo zako mwenyewe. Unaweza kutumia tiles zetu mwenyewe ili uwe na uhakika kwa 100% unaiga hali zetu. Au ikiwa unajisikia kuwa mkali, unaweza kutumia mkanda mweusi na ujitengeneze. Hapa kuna PDF ya vigae ambavyo tumetumia.
Kufuatilia hapo juu kunajumuisha idadi ifuatayo ya vigae tofauti:
- Matofali 12 ya aina # 1.
- Matofali 5 ya aina # 2.
- Violezo 3 vya aina ya tile # 5.
- Violezo 3 vya aina ya tile # 6 - hapa, utaishia na tile moja ya ziada.
Ifuatayo, ichapishe na uikate. Jaribu kuziweka kama kwenye picha hapo juu na kumbuka kuwa upande wa kulia wa wimbo, tiles 2 zinapaswa kuingiliana - hii inatarajiwa ikiwa unajiuliza ikiwa unafanya kitu kibaya.
Hatua ya 3: Kuweka Mazingira
Ili uweze kupanga programu ndogo ya BBC: katika MicroPython, lazima uianzishie mhariri (Mu Mhariri) na uweke muda wa Runtime wa GiggleBot MicroPython kama wakati wake wa kukimbia. Kwa hilo, lazima ufuate maagizo kwenye ukurasa huu. Kufikia wakati huu, toleo la v0.4.0 la wakati wa kukimbia linatumika.
Hatua ya 4: Kupanga programu ya GiggleBot
Kabla ya kuifikia, wakati wa kukimbia wa GiggleBot MicroPython una wakati wa kukimbia wa kawaida wa BBC ndogo: kidogo na maktaba zingine kusaidia GiggleBot na sensorer zingine za Viwanda vya Dexter.
Baada ya kuiweka, fungua hati ifuatayo katika kihariri cha Mu na bonyeza Flash. Hii itaangazia muda wa Runtime wa GiggleBot MicroPython na hati ambayo umefungua kwa BBC micro: bit. Hati hiyo pia imeonyeshwa hapa chini.
Mara tu mchakato wa kuwasha umekamilika, weka kipaza sauti cha BBC: kidogo kwenye GiggleBot na neopixels za bodi zinatazama mbele, ziweke kwenye wimbo na uiwashe.
Kumbuka kuwa katika hati, PID na vizuizi vingine 2 (setpoint ya kasi na viboreshaji vya kasi ya chini) tayari vimewekwa.
Kumbuka: Hati ifuatayo inaweza kuwa na nafasi nyeupe na hii inaonekana kuwa ni kwa sababu ya suala fulani katika kuonyesha GitHub Gists. Bonyeza kwenye kiini kukupeleka kwenye ukurasa wake wa GitHub ambapo unaweza kunakili-kubandika nambari.
Mfuasi wa Mstari wa GiggleBot PID - Imepangwa w / NeoPixels
kutoka kuagiza microbit * |
kutoka kuagiza gigglebot * |
kutoka wakati wote kuagiza sleep_ms, ticks_us |
kuagiza ustruct |
# anzisha neopixels za GB |
neo = init () |
majira |
sasisha_ kiwango = 50 |
Faida / vizuizi (kuchukua voltage ya betri iko karibu na volts 4.0) |
Kp = 25.0 |
Ki = 0.5 |
Kd = 35.0 |
trigger_point = 0.3 |
Asilimia_mzito_mwendo = 0.3 |
kasi_ya kasi = 70 |
setpoint = 0.5 |
nafasi ya mwisho = setpoint |
ujumuishaji = 0.0 |
run_neopixels = Kweli |
kituo_pikseli = 5 # ambapo pixel ya katikati ya tabasamu iko kwenye GB |
# turquoise = tuple (ramani (lambda x: int (x / 5), (64, 224, 208))) # rangi ya kutumia kuteka kosa na neopixels |
# turquoise = (12, 44, 41) # ambayo ni turquoise iliyo juu hapo juu |
kosa_width_per_pixel = 0.5 / 3 # makosa mengi yamegawanywa na idadi ya sehemu kati ya kila neopixel |
defupper_bound_linear_speed_reducer (abs_error, trigger_point, high_bound, ndogo_motor_power, nguvu_motor_power): |
kasi ya kimataifa |
ikiwa abs_error> = trigger_point: |
# x0 = 0.0 |
# y0 = 0.0 |
# x1 = juu_bound - trigger_point |
# y1 = 1.0 |
# x = abs_error - alama ya kuchochea |
# y = y0 + (x - x0) * (y1 - y0) / (x1 - x0) |
# sawa na |
y = (abs_error - trigger_point) / (juu_bound - trigger_point) |
motor_power = base_speed * (ndogo_motor_power + (1- y) * (high_motor_power - ndogo_motor_power)) |
kurudi motor_power |
mwingine: |
kurudi base_speed * highest_motor_power |
kukimbia = Uongo |
uliopita_error = 0 |
wakatiKweli: |
# ikiwa kifungo ni taabu kisha anza kufuata |
ikiwa button_a.is_pressed (): |
run = Kweli |
# lakini ikiwa kitufe b kimeshinikizwa simama mfuatiliaji wa laini |
ikiwa kitufe_b.inashinikizwa (): |
kukimbia = Uongo |
ujumuishaji = 0.0 |
uliopita_error = 0.0 |
pikseli_za () |
simama () |
kulala_ms (500) |
ikiwa kukimbia ni Kweli: |
# soma sensorer za mstari |
kuanza_wakati = ticks_us () |
kulia, kushoto = soma_sauti (LINE_SENSOR, WOTE) |
Mstari # uko kushoto wakati nafasi <0.5 |
# mstari uko kulia wakati nafasi> 0.5 |
# mstari uko katikati wakati msimamo = 0.5 |
# ni maana ya hesabu yenye uzito |
jaribu: |
msimamo = kulia / kuelea (kushoto + kulia) |
exceptZeroDivisionError: |
nafasi = 0.5 |
# masafa yanapaswa kuwa (0, 1) na sio [0, 1] |
ikiwa msimamo == 0: nafasi = 0.001 |
ikiwa msimamo == 1: nafasi = 0.999 |
# tumia kidhibiti PD |
kosa = msimamo - setpoint |
ujumuishaji + = kosa |
marekebisho = Kp * kosa + Ki * muhimu + Kd * (kosa - uliopita_error) |
previous_error = kosa |
# mahesabu ya kasi ya magari |
motor_speed = high_bound_linear_speed_reducer (abs (makosa), setpoint * trigger_point, setpoint, min_speed_percent, 1.0) |
leftMotorSpeed = marekebisho ya mwendo wa kasi |
rightMotorSpeed = motor_speed - marekebisho |
#washa neopixels kulingana na kosa lililopewa |
ikiwa run_neopixels isTrueand total_counts% 3 == 0: |
kwa i inb '\ x00 / x01 / x02 / x03 / x04 / x05 / x06 / x07 / x08': |
neo = (0, 0, 0) |
kwa i inb '\ x00 / x01 / x02 / x03': |
ifabs (kosa)> kosa_upita_per_pixel * i: |
ikiwa kosa <0: |
# neo [kituo_pikseli + i] = zumaridi |
neo [kituo_pikseli + i] = (12, 44, 41) |
mwingine: |
# neo [kituo_pikseli - i] = zumaridi |
neo [kituo_pikseli + i] = (12, 44, 41) |
mwingine: |
asilimia = 1 - |
#washa pikseli ya sasa |
ikiwa kosa <0: |
# neo [center_pixel + i] = tuple (ramani (lambda x: int (asilimia x *), zumaridi)) |
neo [center_pixel + i] = (int (asilimia 64 * / 5), int (asilimia 224 * / 5), int (asilimia 208 * / 5)) |
mwingine: |
# neo [center_pixel - i] = tuple (ramani (lambda x: int (asilimia x *), zumaridi)) |
neo [kituo_pikseli - i] = (int (asilimia 64 * / 5), int (asilimia 224 * / 5), int (asilimia 208 * / 5)) |
kuvunja |
onyesha () |
jaribu: |
# clip kasi ya gari |
ikiwa kushotoMotorSpeed> 100: |
KushotoMotorSpeed = 100 |
rightMotorSpeed = hakiMotorSpeed - kushotoMotorSpeed +100 |
ikiwa sawaMotorSpeed> 100: |
kasiMotorSpeed = 100 |
leftMotorSpeed = leftMotorSpeed - kuliaMotorSpeed +100 |
ikiwa kushotoMotorSpeed <-100: |
kushotoMotorSpeed = -100 |
ikiwa sawaMotorSpeed <-100: |
SawaMotorSpeed = -100 |
# tengeneza motors |
set_speed (kushotoMotorSpeed, kuliaMotorSpeed) |
kuendesha () |
# kuchapisha ((kosa, mwendo wa gari)) |
isipokuwa: |
# ikiwa tutaingia kwenye swala lisiloweza kutumiwa |
kupita |
# na kudumisha mzunguko wa kitanzi |
mwisho_wakati = ticks_us () |
kuchelewesha_diff = (muda wa mwisho - wakati wa kuanza) / 1000 |
ikiwa1000.0 / update_rate - delay_diff> 0: |
kulala (1000.0 / update_rate - delay_diff) |
tazama rawgigglebot_tuned_line_follower.py iliyoandaliwa na ❤ na GitHub
Hatua ya 5: Kuruhusu Iendeshe
Kuna vifungo 2 kwenye BBC micro: bit: kifungo A na kifungo B:
- Kubonyeza kitufe A huweka GiggleBot kufuata mstari (ikiwa kuna moja).
- Kubonyeza kitufe B kunasimamisha GiggleBot na kuweka upya kila kitu ili uweze kuitumia tena.
Inashauriwa sana kuinua GiggleBot wakati inafuata laini kisha kuiweka tena juu yake kwa sababu kosa linalohesabu linaweza kukusanya na kuharibu kabisa njia ya roboti. Ikiwa unataka kuinua, bonyeza kitufe B na kisha ukiirudisha bonyeza A tena.
Ilipendekeza:
Jinsi ya Kutengeneza Roboti ya Mfuasi wa Mstari Bila Kutumia Arduino (Microcontroller): Hatua 5
Jinsi ya Kutengeneza Roboti ya Mfuasi wa Mstari Bila Kutumia Arduino (Microcontroller): Katika hii inayoweza kufundishwa, nitakufundisha jinsi ya kutengeneza laini inayofuata robot bila kutumia Arduino. Nitatumia hatua rahisi kuelezea. Roboti hii itatumia sensorer ya ukaribu wa IR fuata mstari.Hutahitaji aina yoyote ya uzoefu wa programu kwa
Mfuasi Mstari Rahisi Kutumia Arduino: Hatua 5
Mfuasi Mstari Rahisi Kutumia Arduino: Arduino Line Mfuasi Robot Katika mafunzo haya, tutajadili juu ya kufanya kazi kwa laini ya Arduino inayofuata roboti ambayo itafuata laini nyeusi kwenye asili nyeupe na kuchukua zamu sahihi wakati wowote inapofika kwenye curves kwenye njia yake. Mfuasi wa Mfuasi wa Arduino
Mfuasi wa Mstari Kutumia Arduino - Mradi rahisi wa DIY: Hatua 6
Mfuasi wa Mstari Kutumia Arduino | Mradi rahisi wa DIY: Katika mafunzo haya, Tutafanya mfuatiliaji wa laini kutumia ArduinoParts Inahitajika: Chasis: BO Motors na Magurudumu: https://amzn.to/2Yjh9I7 L298n motor Dereva: https://amzn.to/2IWNMWF IR sensor : https://amzn.to/2FFtFu3 Arduino Uno: https://amzn.to/2FyTrjF J
Kuweka Mfuasi wa Mstari wa GiggleBot - Advanced: Hatua 7
Kuweka Mfuasi wa Mstari wa GiggleBot - Advanced: Katika Maagizo haya mafupi sana utarekebisha GiggleBot yako mwenyewe kufuata laini nyeusi. Katika Mfuasi mwingine wa mafunzo ya GiggleBot, tuliweka nambari ngumu za kufanya kazi kulingana na hali hiyo. Unaweza kutaka kuifanya iwe
Jinsi ya Kufanya Mfuasi wa Mstari Kutumia Arduino: Hatua 8 (na Picha)
Jinsi ya Kufanya Mfuasi wa Mstari Kutumia Arduino: Ikiwa unaanza na roboti, moja ya mradi wa kwanza ambao mwanzoni hufanya ni pamoja na mfuatiliaji wa laini. Ni gari maalum ya kuchezea iliyo na mali ya kukimbia kando ya laini ambayo kawaida ni nyeusi kwa rangi na tofauti na background.Tupate nyota