Cov txheej txheem:
- Kauj Ruam 1: Cov Cheeb Tsam Xav Tau
- Kauj Ruam 2: Sib Sau Cov Neeg Hlau
- Kauj Ruam 3: Tsim Koj Tus Kheej Maze - Yeem tau
- Kauj Ruam 4: Teeb Ib puag ncig
- Kauj Ruam 5: Ua Haujlwm GiggleBot - Ntu Kuv
- Kauj Ruam 6: Kev Ua Haujlwm Hauv Chaw Taws Teeb - Ntu II
- Kauj Ruam 7: Kev Txhais Lus Ntawm Lub Vev Xaib
Video: Ua Tus Lidar-Guided Robot Nrog GiggleBot: 8 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:27
Hauv qhov kev qhia no, peb tab tom ua GiggleBot daws qhov nyuaj ntawm kev tshawb nrhiav.
Peb tau teeb tsa servo ntawm GiggleBot mus rau qhov uas peb txuas lub ntsuas nrug. Thaum khiav, lub servo yuav tig rov qab los kom lub ntsuas qhov deb tuaj yeem ntsuas qhov kev ncua deb mus txog txhua qhov teeb meem. Qhov no ua haujlwm zoo ib yam li LIDAR sensor uas feem ntau kim dua.
Nyob rau tib lub sijhawm, GiggleBot tab tom xa cov ntaub ntawv no mus rau qhov chaw deb deb BBC micro: me ntsis uas nthuav tawm mus rau nws 5-by-5 matrix ntawm LEDs nws txoj haujlwm txheeb ze rau qhov teeb meem.
Koj txoj haujlwm yog kom muaj peev xwm taw qhia GiggleBot tsuas yog saib seb nws tau qhia dab tsi ntawm lwm qhov BBC micro: me ntsis. Txhawm rau tswj GiggleBot, cov nyees khawm ntawm cov chaw deb BBC micro: me ntsis tau siv.
Qhov ntawd zoo li lom zem! Cia peb nqis mus rau nws, puas yog?
Kauj Ruam 1: Cov Cheeb Tsam Xav Tau
Peb yuav xav tau:
- Ib GiggleBot.
- Lub roj teeb pob rau BBC micro: me ntsis. Nws los nrog BBC micro: me ntsis hauv nws pob.
- x3 AA roj teeb rau GiggleBot.
- Ib txoj kab Grove txuas rau qhov ntsuas qhov deb mus rau GiggleBot.
- Cov khoom siv Servo los ntawm DexterIndustries.
- x3 BBC micro: me ntsis. Ib qho rau GiggleBot thiab ib qho siv los tswj cov neeg hlau los ntawm qhov deb.
- Ib qho deb Sensor los ntawm DexterIndustries.
Tau txais GiggleBot neeg hlau rau BBC micro: me ntsis ntawm no!
Kauj Ruam 2: Sib Sau Cov Neeg Hlau
Txhawm rau ua kom GiggleBot npaj tau los ua haujlwm, peb yuav tsum sib sau ua ke, txawm hais tias tsis muaj ntau yam yuav tsum tau ua.
Ntxig rau 3 AA roj teeb hauv nws qhov chaw nyob hauv qab GiggleBot.
Sib sau ua ke pob servo. Txhawm rau nws tig caj npab ntawm servo, siv lub qhov kawg ntawm nws txhawm rau txhim kho servo mus rau GiggleBot lub hauv ntej txuas. Koj tuaj yeem siv cov ntsia hlau thiab/lossis qee qhov xaim los ua kom nws ruaj khov nyob hauv nws qhov chaw. Lossis koj tuaj yeem ua kua nplaum kub rau ntawm lub rooj tsavxwm. Hauv kuv qhov xwm txheej, Kuv tau siv cov ntsia hlau thiab cov xov hlau luv los khi lub caj npab servo rau GiggleBot board.
Thaum txhim kho lub caj npab servo mus rau servo, xyuas kom tseeb tias servo twb tau teeb tsa rau txoj haujlwm 80. Koj tuaj yeem ua li ntawd los ntawm kev hu rau gigglebot.set_servo (gigglebot. RIGHT, 80). Koj tuaj yeem nyeem ntxiv txog qhov no ntawm no.
Tom ntej no, tso qhov ntsuas qhov deb ntawm sab xub ntiag ntawm pob servo thiab kho nws zoo li hauv qhov piv txwv saum toj no.
Thaum kawg, txuas qhov ntsuas nrug nrog Grove cable rau ib qho ntawm 2 I2C cov chaw nres nkoj thiab lub tshuab servo mus rau qhov chaw nres nkoj sab xis zaum ntawm GiggleBot - qhov chaw nres nkoj raug hais los ntawm nws.
Kauj Ruam 3: Tsim Koj Tus Kheej Maze - Yeem tau
Hauv qhov no, Kuv tau siv cov thawv ntim los tsim cov kab kaw kaw, zoo ib yam li NASCAR ib qho.
Hauv cov kauj ruam no, koj tuaj yeem tau txais kev muaj tswv yim tiag tiag thiab ua kom nws zoo li cas koj xav tau lossis ua kom ntev ntev vim tias nws yog qhov tseeb rau koj.
Lossis yog tias koj tsis xav tau txoj hauv kev tag nrho, koj tuaj yeem tso GiggleBot hauv chav ua noj lossis chav nyob nyob piv txwv - uas yuav tsum zoo txaus vim tias muaj ntau phab ntsa thiab teeb meem koj tseem yuav tsum zam.
Kauj Ruam 4: Teeb Ib puag ncig
Txhawm rau kom koj tuaj yeem ua haujlwm rau BBC micro: me ntsis hauv MicroPython, koj yuav tsum teeb tsa tus kws kho rau nws (Mu Editor) thiab teeb tsa GiggleBot MicroPython Runtime ua nws lub sijhawm. Rau qhov ntawd, koj yuav tsum ua raws cov lus qhia ntawm nplooj ntawv no. Raws li lub sijhawm no, version v0.4.0 ntawm lub sijhawm tau siv.
Kauj Ruam 5: Ua Haujlwm GiggleBot - Ntu Kuv
Ua ntej, cia teeb GiggleBot's tsab ntawv. Tsab ntawv no yuav ua rau GiggleBot tig nws lub cav servo 160 degrees (80 degrees hauv txhua qhov kev taw qhia) thaum tib lub sijhawm siv 10 nyeem los ntawm qhov ntsuas qhov deb ib zaug.
Thaum qhib, GiggleBot yuav sawv los txog thaum nws tau txais cov lus txib los ntawm kev tswj chaw taws teeb. Tsuas muaj 3 lo lus txib: txav mus rau tom ntej, mus rau sab laug lossis sab xis.
Nco tseg: Cov ntawv hauv qab no yuav muaj qhov chaw ploj thiab qhov no zoo li yog vim muaj qee qhov teeb meem hauv kev nthuav tawm GitHub Gists. Nyem rau ntawm qhov tseem ceeb coj koj mus rau nws nplooj ntawv GitHub uas koj tuaj yeem luam tawm-muab cov cai.
Tswj Chaw Taws Teeb LIDAR-based GiggleBot
los ntawm gigglebot ntshuam* |
los ntawm distance_sensor ntshuam DistanceSensor |
los ntawm microbit ntshuam pw tsaug zog |
los ntawm utime ntshuam ticks_us, sleep_us |
ntshuam ustruct |
ntshuam xov tooj cua |
# nres tus neeg hlau yog tias nws twb txav mus lawm |
tsum tsum () |
# qhib xov tooj cua |
xov tooj cua.on () |
# nrug sensor qhov khoom |
ds = DistanceSensor () |
ds.start_continuous () |
tig_time = 0.7# ntsuas hauv vib nas this |
tig_span = 160# ntsuas hauv degrees |
tig_steps = 10 |
overhead_compensation = 1.05# txhais hauv feem pua |
time_per_step = 10 ** 6* rotate_time / (tig_steps* nyiaj siv ua haujlwm_compensation) |
last_read_time = 0 |
radar = bytearray (tig_steps) |
servo_rotate_direction = 0# 0 rau kev nce mus (0-> 160) thiab 1 lwm yam |
radar_index = 0 |
set_servo (RIGHT, 0) |
thaum tseeb |
# nyeem los ntawm lub radar |
yog zuam_us () - kawg_read_time> time_per_step: |
# nyeem los ntawm qhov ntsuas qhov deb |
radar [radar_index] = int (ds.read_range_continuous () /10) |
last_read_time = zuam_us () |
luam tawm (radar_index) |
# ua lub logic rau kev hloov servo ntawm sab laug mus rau sab xis |
yog radar_index == tig_steps -1 thiab servo_rotate_direction == 0: |
set_servo (RIGHT, 0) |
servo_rotate_direction = 1 |
elif radar_index == 0 thiab servo_rotate_direction == 1: |
set_servo (RIGHT, tig_span) |
servo_rotate_direction = 0 |
lwm tus: |
radar_index += 1if servo_rotate_direction == 0else-1 |
# thiab xa cov txiaj ntsig radar |
xov tooj cua.send_bytes (radar) |
sim: |
# nyeem cov lus txib neeg hlau |
lmotor, rmotor = ustruct.unpack ('bb', radio.receive_bytes ()) |
# thiab ua lub cav yuav tsum muaj ib qho tau txais cov lus txib |
set_speed (lmotor, rmotor) |
tsav () |
exceptTypeError: |
dhau |
saib rawgigglebot_lidar_robot.py tuav nrog ❤ los ntawm GitHub
Kauj Ruam 6: Kev Ua Haujlwm Hauv Chaw Taws Teeb - Ntu II
Dab tsi tseem tshuav yuav tsum tau ua yog qhov program thib 2 BBC micro: me ntsis uas ua raws li chaw taws teeb.
Cov chaw taws teeb tau siv los tso tawm ntawm nws 5-by-5 pixel-made screen qhov txheeb ze ze rau teeb meem. Feem ntau, yuav muaj 10 pixels qhib.
Nyob rau tib lub sijhawm, cov chaw taws teeb muab rau koj lub peev xwm los tswj hwm GiggleBot los ntawm kev nyem nws 2 lub nyees khawm: txav mus rau tom ntej, mus rau sab laug thiab sab xis.
Nco tseg: Cov ntawv hauv qab no yuav muaj qhov chaw ploj thiab qhov no zoo li yog vim muaj qee qhov teeb meem hauv kev nthuav tawm GitHub Gists. Nyem rau ntawm qhov tseem ceeb coj koj mus rau nws nplooj ntawv GitHub uas koj tuaj yeem luam tawm-muab cov cai.
Kev Tswj Chaw Taws Teeb LIDAR -based GiggleBot - Cov Chaw Taws Teeb
los ntawm microbit ntshuam pw tsaug zog, tso saib, khawm_a, khawm_b |
ntshuam ustruct |
ntshuam xov tooj cua |
ntshuam lej |
xov tooj cua.on () |
tig_steps = 10 |
tig_span = 160# nyob rau hauv degrees |
tig_step = tig_span / tig_steps |
max_distance = 50# hauv centimeters |
side_length_leds = 3 # ntsuas hauv # ntawm pixels |
radar = bytearray (tig_steps) |
xar = bytearray (tig_steps) |
yar = bytearray (tig_steps) |
saved_xar = bytearray (tig_steps) |
saved_yar = bytearray (tig_steps) |
motor_speed = 50 |
thaum tseeb |
xwm txheej = xov tooj cua.receive_bytes_into (radar) |
yog tias xwm txheej tsis yog Tsis muaj: |
# display.clear () |
rau c, val inenumerate (radar): |
yog radar [c] <= max_distance: |
# xam 2d kev tswj hwm ntawm txhua qhov nrug |
kaum = tig_steps / (tig_steps -1) * tig_step * c |
kaum += (180- tig_span) /2.0 |
x_c = math.cos (angle * math.pi /180.0) * radar [c] |
y_c = math.sin (kaum * math.pi /180.0) * radar [c] |
# ntsuas qhov nrug kom haum rau ntawm 5x5 microbit zaub |
x_c = x_c * (side_length_leds -1) / max_distance |
y_c = y_c * (side_length_leds +1) / max_distance |
# hloov chaw tswj hwm |
x_c += (side_length_leds -1) |
y_c = (side_length_leds +1) - y_c |
# puag ncig kev ua haujlwm raws qhov pom cov LEDs |
yog x_c - lej.floor (x_c) <0.5: |
x_c = math.floor (x_c) |
lwm tus: |
x_c = math.ceil (x_c) |
yog y_c - lej.floor (y_c) <0.5: |
y_c = math.floor (y_c) |
lwm tus: |
y_c = math.ceil (y_c) |
xar [c] = x_c |
yar [c] = y_c |
lwm tus: |
xav [c] = 0 |
yar [c] = 0 |
display.clear () |
rau x, y inzip (xar, yar): |
display.set_pixel (x, y, 9) |
# luam tawm (cov npe (zip (xar, yar, radar))) |
stateA = button_a.is_pressed () |
stateB = button_b.is_pressed () |
yog stateA thiab stateB: |
radio.send_bytes (ustruct.pack ('bb', motor_speed, motor_speed)) |
print ('rau pem hauv ntej') |
yog stateA thiab tsis stateB: |
radio.send_bytes (ustruct.pack ('bb', motor_speed, -motor_speed)) |
print ('sab laug') |
ifnot stateA thiab stateB: |
radio.send_bytes (ustruct.pack ('bb', -motor_speed, motor_speed)) |
print ('txoj cai') |
ifnot stateA thiab tsis stateB: |
radio.send_bytes (ustruct.pack ('bb', 0, 0)) |
print ('tsum tsum') |
saib rawgigglebot_lidar_remote.py tuav nrog ❤ los ntawm GitHub
Kauj Ruam 7: Kev Txhais Lus Ntawm Lub Vev Xaib
"thauj khoom =" tub nkeeg "tswj GiggleBot, koj muaj cov kev xaiv hauv qab no:
- Nias khawm A thiab khawm B kom txav GiggleBot rau pem hauv ntej.
- Nias lub pob A kom tig lub GiggleBot mus rau sab laug.
- Nias khawm B kom tig GiggleBot mus rau sab xis.
Txhawm rau saib mus rau qhov kev taw qhia qhov teeb meem ze tshaj plaws raug kuaj pom, tsuas yog saib ntawm cov chaw taws teeb (cov chaw taws teeb BBC micro: me ntsis uas koj tab tom tuav) lub vijtsam. Koj yuav tsum muaj peev xwm tswj hwm GiggleBot los ntawm qhov deb tsis saib nws.
Pom zoo:
Pandemi: Tus Nqi Tus Nqi Tus Nqi Tus Kab Mob Qis Tsawg Tus Nqi: 7 Kauj Ruam
Pandemi: Tus Nqi Tus Nqi Tus Nqi Tus Kab Mob Qis Tsawg Tus Nqi: Qhov no yog qhov pheej yig, yooj yim los ua neeg hlau. Nws tuaj yeem ua kom tsis muaj menyuam hauv koj chav nrog UV-C lub teeb, nws yog lub teeb thiab nrawm, nws tuaj yeem mus rau txhua qhov av, thiab nws tuaj yeem haum rau txhua lub qhov rooj. Nws tseem yog tib neeg-nyab xeeb, thiab muaj kev ywj pheej tag nrho
SKARA- Tus Kheej Tus Kheej Ntxiv Los Ntawm Tus Kheej Dej Da Dej Tu Neeg Hlau: 17 Kauj Ruam (nrog Duab)
SKARA- Tus Kheej Tus Kheej Ntxiv Los Ntawm Tus Kheej Ua Dej Da Dej Tu Neeg Hlau: Lub sijhawm yog nyiaj thiab kev siv tes ua haujlwm yog kim. Nrog kev nthuav dav thiab kev nce qib hauv kev siv tshuab thev naus laus zis, kev daws teeb meem tsis muaj teeb meem xav tau los tsim rau cov tswv tsev, zej zog thiab pab pawg kom ntxuav cov pas dej los ntawm cov khib nyiab thiab av ntawm lub neej txhua hnub, txhawm rau
Yuav Ua Li Cas Tsim Kev Tswj Tus Kheej 3D Luam Tus Kheej Tus Kheej Tus Kheej: 9 Kauj Ruam (nrog Duab)
Yuav Ua Li Cas Tsim Kev Tswj Tus Kheej 3D Luam Tus Kheej Tus Kheej Tus Kheej: Qhov no yog kev hloov pauv ntawm B-neeg hlau ua ntej. 100% Qhib QHOV CHAW / Arduino neeg hlau. CODE, 3D ntu thiab khoom siv hluav taws xob tau qhib yog li xav hloov kho nws lossis tsim qhov loj ntawm tus neeg hlau. Yog tias koj muaj kev ua xyem xyav, tswv yim lossis xav tau kev pab ua rau
ARUPI - Tus Nqi Tus Nqi Tus Nqi Uas Tau Txais Tus Nqi Uas Tau Txais Tus Nqi/Tus Kheej Tus Kheej (ARU) rau Soundscape Ecologists: 8 Kauj Ruam (nrog Duab)
ARUPI - Tus Nqi Tus Nqi Uas Tau Txais Tus Nqi Tus Nqi Uas Tau Txais Tus Nqi/Tus Kheej Tus Kheej (ARU) rau Soundscape Ecologists: Cov lus qhia no tau sau los ntawm Anthony Turner. Txoj haujlwm tau tsim los nrog ntau qhov kev pab los ntawm Shed hauv Tsev Kawm Ntawv ntawm Kev Suav, University of Kent (Mr Daniel Knox tau pab zoo!)
Tus Nqi Tus Nqi Tus Nqi Qis Tus Nqi Qis Tsawg: 15 Kauj Ruam (nrog Duab)
Tsawg-tus nqi Spherical Speaker Array: Cov cuab yeej ua suab nrov ua suab nrov hauv qhov xav tsis thoob, 360 degree zam, thaum lub suab nrov nrov nrov ua rau ntau qhov tsis txaus ntseeg, tsom teeb ntawm lub suab. Koj tuaj yeem siv nyiaj ib tuj ntawm cov khoom zoo nkauj: Hemisphere los ntawm Electrotap Experim