Talaan ng mga Nilalaman:
- Hakbang 1: Kinakailangan na Mga Sangkap
- Hakbang 2: Pag-iipon ng Robot
- Hakbang 3: Lumikha ng Iyong Sariling Maze - Opsyonal
- Hakbang 4: Pag-set up ng Kapaligiran
- Hakbang 5: Programming ang GiggleBot - Bahagi I
- Hakbang 6: Programming ang Remote - Bahagi II
- Hakbang 7: Pagbibigay ng kahulugan sa Remote Screen
Video: Gumawa ng isang Lidar-Guided Robot Gamit ang GiggleBot: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Sa tutorial na ito, ginagawa namin ang GiggleBot na talakayin ang mga paghihirap ng isang maze.
Naglalagay kami ng isang servo sa GiggleBot kung saan ikinakabit namin ang isang distansya na sensor. Habang tumatakbo, ang servo ay paikutin at pabalik upang ang distansya ng sensor ay maaaring masukat ang distansya hanggang sa bawat balakid. Gumagana ito katulad ng isang sensor ng LIDAR na kadalasang mas mahal.
Sa parehong oras, ang GiggleBot ay nagpapadala ng data na ito sa isang remote BBC micro: bit na ipinapakita sa kanyang 5-by-5 matrix ng LEDs na may kaugnayang posisyon sa mga hadlang.
Ang iyong trabaho ay magagawang mag-navigate sa GiggleBot sa pamamagitan lamang ng pagtingin sa kung ano ang ipinapakita sa iba pang BBC micro: bit. Upang makontrol ang GiggleBot, ginagamit ang mga pindutan sa remote na BBC micro: bit.
Parang masaya yun! Bumaba tayo rito, hindi ba?
Hakbang 1: Kinakailangan na Mga Sangkap
Kakailanganin namin:
- Isang GiggleBot.
- Isang baterya pack para sa BBC micro: kaunti. Ito ay kasama ng isang BBC micro: kaunti sa package nito.
- x3 AA na baterya para sa GiggleBot.
- Isang Grove cable upang ikonekta ang distansya sensor sa GiggleBot.
- Isang Servo kit mula sa DexterIndustries.
- x3 BBC micro: mga piraso. Isa para sa GiggleBot at isang ginamit upang makontrol ang robot mula sa malayo.
- Isang Distance Sensor mula sa DexterIndustries.
Kunin ang GiggleBot robot para sa BBC micro: kaunti dito!
Hakbang 2: Pag-iipon ng Robot
Upang maging handa ang GiggleBot na mai-program, kailangan naming tipunin ito, kahit na hindi gaanong kailangang gawin.
Ipasok ang 3 mga baterya ng AA sa kompartimento nito sa ilalim ng GiggleBot.
Ipunin ang servo package. Sa umiikot na braso nito ng servo, gamitin ang huling butas nito upang ayusin ang servo sa mga front konektor ng GiggleBot. Maaari mong gamitin ang isang tornilyo at / o ilang kawad upang gawing mas matatag ito sa lugar nito. O maaari mong maiinit na pandikit ito sa pisara. Sa aking kaso, gumamit ako ng isang turnilyo at maikling kawad upang itali ang servo arm sa board ng GiggleBot.
Kapag pinataas ang servo arm sa servo, tiyaking naka-set na ang servo sa posisyon na 80. Maaari mong gawin iyon sa pamamagitan ng pagtawag sa gigglebot.set_servo (gigglebot. RIGHT, 80). Maaari mong basahin ang higit pa tungkol dito.
Susunod, ilagay ang distansya sensor sa harap na bahagi ng servo package at ayusin ito tulad ng sa halimbawa sa itaas.
Sa wakas, ikonekta ang distansya sensor gamit ang isang Grove cable sa alinman sa 2 I2C port at ang servo motor sa kanang port na nakaupo sa GiggleBot - ang tamang port ay nabanggit dito.
Hakbang 3: Lumikha ng Iyong Sariling Maze - Opsyonal
Sa kasong ito, gumamit ako ng isang bungkos ng mga kahon upang lumikha ng isang closed loop track, katulad ng isang NASCAR.
Sa hakbang na ito, maaari kang maging malikhain at gawin itong baluktot na nais mo o gawing sobrang haba dahil nasa sa iyo talaga.
O kung hindi mo man gusto ang isang track, maaari mong ilagay ang GiggleBot sa kusina o sa isang sala - halimbawa ay dapat na sapat iyon dahil maraming pader at hadlang na kailangan mo pa ring iwasan.
Hakbang 4: Pag-set up ng Kapaligiran
Upang ma-program mo ang BBC micro: kaunti sa MicroPython, kailangan mong mag-set up ng isang editor para dito (ang Mu Editor) at itakda ang GiggleBot MicroPython Runtime bilang runtime nito. Para doon, kailangan mong sundin ang mga tagubilin sa pahinang ito. Tulad ng sa sandaling ito, ginagamit ang bersyon v0.4.0 ng runtime.
Hakbang 5: Programming ang GiggleBot - Bahagi I
Una, i-set up natin ang script ng GiggleBot. Gagawin ng script na ito ang GiggleBot na paikutin ang servo motor nito 160 degree (80 degree sa bawat direksyon) habang sabay na kumuha ng 10 mga pagbasa mula sa distansya sensor bawat pagliko.
Kapag naka-on, ang GiggleBot ay tatayo hanggang sa makatanggap ito ng isang utos mula sa remote control. Maaari lamang magkaroon ng 3 mga utos: sumulong, sa kaliwa o sa kanan.
Tandaan: Ang sumusunod na script ay maaaring may mga nawawalang mga whitespaces at tila ito ay sanhi ng ilang isyu sa pagpapakita ng GitHub Gists. Mag-click sa buod upang dalhin ka sa pahina ng GitHub na kung saan maaari mong kopyahin-i-paste ang code.
Remote Controlled LIDAR-based GiggleBot
mula sa gigglebot import * |
mula sa distansya_sensor import DistanceSensor |
mula sa microbit import sleep |
mula sa utime import ticks_us, sleep_us |
mag-import ng us konstruksyon |
mag-import ng radyo |
# itigil ang robot kung gumagalaw na ito |
huminto () |
# paganahin ang radyo |
radio.on () |
# distansya ng object ng sensor |
ds = DistanceSensor () |
ds.start_continuous () |
rotate_time = 0.7 # sinusukat sa segundo |
rotate_span = 160 # sinusukat sa degree |
rotate_steps = 10 |
overhead_compensation = 1.05 # na tinukoy sa mga porsyento |
time_per_step = 10 ** 6 * rotate_time / (rotate_steps * overhead_compensation) |
last_read_time = 0 |
radar = bytearray (paikutin ang mga hakbang) |
servo_rotate_direction = 0 # 0 para sa paitaas (0-> 160) at 1 kung hindi man |
radar_index = 0 |
set_servo (TAMA, 0) |
habang Totoo: |
# basahin mula sa radar |
kung ticks_us () - last_read_time> time_per_step: |
# basahin mula sa distansya sensor |
radar [radar_index] = int (ds.read_range_continuous () / 10) |
last_read_time = ticks_us () |
print (radar_index) |
# gawin ang lohika para sa pag-ikot ng servo mula kaliwa hanggang kanan |
kung radar_index == paikutin ang mga hakbang -1 at servo_rotate_direction == 0: |
set_servo (TAMA, 0) |
servo_rotate_direction = 1 |
elif radar_index == 0at servo_rotate_direction == 1: |
set_servo (TAMA, paikutin_span) |
servo_rotate_direction = 0 |
iba pa: |
radar_index + = 1kung servo_rotate_direction == 0else-1 |
# at ipadala ang mga halagang radar |
radio.send_bytes (radar) |
subukan: |
# basahin ang mga utos ng robot |
lmotor, rmotor = usonstr.unpack ('bb', radio.receive_bytes ()) |
# at i-aktibo ang mga motor kung mayroon mang natanggap na mga utos |
set_speed (lmotor, rmotor) |
drive () |
maliban sa TypeError: |
pumasa |
tingnan ang rawgigglebot_lidar_robot.py na naka-host sa ❤ ng GitHub
Hakbang 6: Programming ang Remote - Bahagi II
Ang natitirang gawin ay ang pag-program ng ika-2 BBC micro: kaunti na kumikilos bilang isang remote.
Ang remote ay ginagamit upang ipakita sa kanyang 5-by-5 pixel-ginawa na screen ang kamag-anak na distansya sa mga hadlang. Karamihan, magkakaroon ng 10 mga pixel na naka-on.
Sa parehong oras, ang remote ay nagbibigay sa iyo ng mga kakayahan upang malayuang makontrol ang GiggleBot sa pamamagitan ng pagpindot sa 2 mga pindutan nito: sumulong, sa kaliwa at sa kanan.
Tandaan: Ang sumusunod na script ay maaaring may mga nawawalang mga whitespaces at tila ito ay sanhi ng ilang isyu sa pagpapakita ng GitHub Gists. Mag-click sa buod upang dalhin ka sa pahina ng GitHub na kung saan maaari mong kopyahin-i-paste ang code.
Remote Controlled LIDAR-based GiggleBot - Remote Code
mula sa microbit import sleep, display, button_a, button_b |
mag-import ng us konstruksyon |
mag-import ng radyo |
import ng matematika |
radio.on () |
rotate_steps = 10 |
paikutin_span = 160 # sa degree |
rotate_step = rotate_span / rotate_steps |
max_distance = 50 # sa sentimetro |
side_length_leds = 3 # sinusukat sa # ng mga pixel |
radar = bytearray (paikutin ang mga hakbang) |
xar = bytearray (rotate_steps) |
yar = bytearray (paikutin ang mga hakbang) |
save_xar = bytearray (paikutin ang mga hakbang) |
nai-save_yar = bytearray (paikutin ang mga hakbang) |
motor_ bilis = 50 |
habang Totoo: |
katayuan = radio.receive_bytes_into (radar) |
kung ang katayuan ay hindiNone: |
# display.clear () |
para sa c, val inenumerate (radar): |
kung radar [c] <= max_distansya: |
# kalkulahin ang 2d na mga coordinate ng bawat distansya |
anggulo = paikutin_step / (paikutin -1) * paikutin_step * c |
anggulo + = (180- paikutin_span) /2.0 |
x_c = math.cos (anggulo * math.pi /180.0) * radar [c] |
y_c = math.sin (anggulo * math.pi /180.0) * radar [c] |
# sukatin ang mga distansya upang magkasya sa 5x5 microbit display |
x_c = x_c * (side_length_leds -1) / max_distansya |
y_c = y_c * (side_length_leds +1) / max_distansya |
# mga coordinate ng muling posisyon |
x_c + = (side_length_leds -1) |
y_c = (side_length_leds +1) - y_c |
# bilog na coordinate nang eksakto kung saan matatagpuan ang mga LED |
kung x_c - math.floor (x_c) <0.5: |
x_c = math.floor (x_c) |
iba pa: |
x_c = math.ceil (x_c) |
kung y_c - math.floor (y_c) <0.5: |
y_c = math.floor (y_c) |
iba pa: |
y_c = math.ceil (y_c) |
xar [c] = x_c |
yar [c] = y_c |
iba pa: |
xar [c] = 0 |
yar [c] = 0 |
display.clear () |
para sa x, y inzip (xar, yar): |
display.set_pixel (x, y, 9) |
# print (listahan (zip (xar, yar, radar))) |
estadoA = button_a.is_pressed () |
stateB = button_b.is_pressed () |
kung ang estadoA at estadoB: |
radio.send_bytes (usonstr.pack ('bb', motor_speed, motor_speed)) |
i-print ('pasulong') |
kung estadoA at hindi estadoB: |
radio.send_bytes (usonstr.pack ('bb', motor_speed, -motor_speed)) |
i-print ('kaliwa') |
kung hindi estadoA at estadoB: |
radio.send_bytes (usonstr.pack ('bb', -motor_speed, motor_speed)) |
i-print ('kanan') |
kung hindi estadoA at hindi estadoB: |
radio.send_bytes (us konstr.pack ('bb', 0, 0)) |
i-print ('ihinto') |
tingnan ang rawgigglebot_lidar_remote.py na naka-host sa ❤ ng GitHub
Hakbang 7: Pagbibigay ng kahulugan sa Remote Screen
"loading =" tamad "kontrolin ang GiggleBot, mayroon kang mga sumusunod na pagpipilian:
- Pindutin ang pindutan A at pindutan B upang ilipat ang GiggleBot pasulong.
- Pindutin ang pindutan A upang paikutin ang GiggleBot sa kaliwa.
- Pindutin ang pindutan B upang paikutin ang GiggleBot sa kanan.
Upang makita kung aling direksyon ang napansin ang pinakamalapit na mga hadlang, tingnan lamang ang remote (ang remote na BBC micro: bit na hawak mo) na screen. Dapat mong makontrol ang GiggleBot mula sa malayo nang hindi tinitingnan ito.
Inirerekumendang:
DIY -- Paano Gumawa ng isang Spider Robot Aling Maaaring Kontrolin Gamit ang Smartphone Gamit ang Arduino Uno: 6 Mga Hakbang
DIY || Paano Gumawa ng isang Spider Robot Aling Maaaring Kontrolin Gamit ang Smartphone Gamit ang Arduino Uno: Habang gumagawa ng isang Spider robot, maaaring malaman ng maraming mga bagay tungkol sa robot. Tulad ng paggawa ng Robots ay Nakakaaliw pati na rin ang mapaghamong. Sa video na ito ipapakita namin sa iyo kung paano gumawa ng isang Spider robot, na maaari naming mapatakbo gamit ang aming smartphone (Androi
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: 5 Mga Hakbang
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: Ang Troll board na nilikha ni Patrick Thomas Mitchell ng EngineeringShock Electronics, at buong pinondohan sa Kickstarter hindi pa masyadong nakakaraan. Nakuha ko ang aking gantimpala ng ilang linggo maaga upang makatulong na sumulat ng ilang mga halimbawa ng paggamit at bumuo ng isang library ng Arduino sa isang pagtatangka
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Paano Gumawa ng isang Drone Gamit ang Arduino UNO - Gumawa ng isang Quadcopter Gamit ang Microcontroller: 8 Hakbang (na may Mga Larawan)
Paano Gumawa ng isang Drone Gamit ang Arduino UNO | Gumawa ng isang Quadcopter Gamit ang Microcontroller: PanimulaBisitahin ang Aking Youtube Channel Ang isang Drone ay isang napakamahal na gadget (produkto) na bibilhin. Sa post na ito tatalakayin ko, kung paano ko ito magagawa sa murang ?? At Paano mo magagawa ang iyong sarili tulad nito sa murang presyo … Sa India ang lahat ng mga materyales (motor, ESC
Paano Gumawa ng isang Device ng IoT upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: 5 Mga Hakbang
Paano Gumawa ng isang IoT Device upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: Ang Internet ng mga bagay (IoT) ay ang inter-networking ng mga pisikal na aparato (tinukoy din bilang " mga konektadong aparato " at " mga smart device "), mga gusali, at iba pang mga item - naka-embed sa electronics, software, sensor, actuators, at