Бұл оқулық бөлігі болып табылады: SunFounder Rasberry Pi Pico Pico 4WD Smart Car Kit
Files related to this group will be displayed together. Links to other videos are below this article.
Сабақ 9/10: Raspberry Pi Pico 4WD Smart Car көмегімен кедергілерді болдырмау
Кіріспе
Бұл нұсқаулық Robojax-тың 10 сабақтан тұратын Курс Сабағы 9-ға негізделген және SunFounder Raspberry Pi Pico 4WD Smart Car жинағын пайдаланып кедергілерді болдырмайтын роботты құруды көрсетеді. Жоба сервомотормен басқарылатын ультрадыбыстық сенсорды қозғалтқышты басқарумен біріктіріп, қоршаған ортада автономды түрде жүре алатын робот жасайды. Сенсорды радар сияқты айналдыра отырып, көлік кедергілерді анықтайды және жүру үшін бос жолды интеллектуалды түрде таңдайды, бұл оны робототехникаға, сенсорлық интеграцияға және автономды навигацияға тамаша кіріспе етеді.
Бұл жоба тек ойыншық емес; ол көптеген практикалық қолданулардың негізі болып табылады. Міне, сізді шабыттандыратын бірнеше идея:
- Автономды зерттеу роботы: Адамның араласуынсыз бөлмені немесе ашық аумақты картаға түсіріп, зерттей алатын робот жасаңыз.
- Ақылды шаңсорғыш: Тазалау кезінде жиһаздар мен қабырғаларды болдырмай, бөлмеде жүретін робот жасау үшін сол принциптерді қолданыңыз.
- Күзет патруль роботы: Көлікті периметрді аралауға бағдарламалаңыз және күтпеген кедергілерді немесе бұзушылықтарды анықтау және хабарлау үшін ультрадыбыстық сенсорды пайдаланыңыз.
- ЖИ үшін білім беру платформасы: Бұл жобаны жол табу және синхронды локализация және карта құру (SLAM) сияқты күрделірек алгоритмдерді үйренуге қадам ретінде пайдаланыңыз.
Бұл сабақ көліктің шешім қабылдауына мүмкіндік беретін негізгі логика мен кодқа бағытталған. Көлік ультрадыбыстық сенсорды айналдыру үшін сервомоторды пайдаланады, ол 0-ден 180 градусқа дейінгі қашықтықтарды өлшейтін радар ретінде жұмыс істейді. Код бұл деректерді талдап, ең кең бос жолды табады және көлікті сәйкесінше алға, солға немесе оңға бағыттайды. Бейне жеке компоненттерді сынаудан бастап нақты лабиринтте соңғы кедергілерді болдырмау алгоритмін іске қосуға дейінгі барлық процесті көрсетеді.
Аппараттық құрал/Компоненттер
Бұл жоба SunFounder Raspberry Pi Pico 4WD Smart Car жинағына негізделген. Осы сабақта қолданылатын негізгі компоненттер:
- Raspberry Pi Pico микроконтроллерлік платасы
- Төрт қозғалтқышы бар SunFounder 4WD Smart Car шассиі
- Қозғалтқыш драйверінің платасы
- Ультрадыбыстық қашықтық сенсоры (HC-SR04 түрі)
- Сервомотор (ультрадыбыстық сенсорды айналдыру үшін)
- Қуат көзі (көлікке арналған батареялар)
Сым қосу нұсқаулығы
SunFounder жинағы оңай құрастыруға арналған және сымдар әдетте арнайы кеңейту платасы арқылы алдын ала қосылған. Ультрадыбыстық сенсор сервомоторға орнатылған, ол негізгі басқару платасына қосылған. Бұл қондырғы сенсордың қоршаған ортаны сканерлеу үшін айналуына мүмкіндік береді. Сіздің жинағыңызға арналған егжей-тегжейлі сым қосу схемасы үшін SunFounder-дің ресми құжаттамасын қараңыз.
Негізгі қосылымдар ультрадыбыстық сенсордың триггер және эхо түйреуіштерін және сервомотордың сигнал түйреуішін қамтиды, олардың барлығы Raspberry Pi Pico-дағы арнайы GPIO түйреуіштеріне қосылған. Қозғалтқыш драйвері де төрт жетек қозғалтқышын басқару үшін Pico-ға қосылған. Бейнеде сым қосу схемаларын қоса алғанда, толық құжаттама жинақпен бірге жүктеуге қолжетімді екендігі айтылған.
Кодты түсіндіру
Бұл сабақ `obstacle_avoid` мысалындағы логикаға бағытталған. Код MicroPython тілінде жазылған. Толық бағдарлама жүктеуге қолжетімді болғанымен, біз көліктің мінез-құлқын басқаратын негізгі, пайдаланушы конфигурациялайтын параметрлерге назар аударамыз. Олар әдетте скрипттің жоғарғы жағында орналасқан.
Міне, роботыңыздың өнімділігін дәл реттеу үшін реттей алатын негізгі айнымалылар:
# Радар және қозғалыс параметрлері
radar_reference = 20 # Қауіпсіз деп саналатын ең аз қашықтық, см
step_angle = 10 # Әр радар сканерлеу қадамының бұрыш қадамы
forward_speed = 30 # Алға жүру үшін қозғалтқыш жылдамдығы (0-100)
turn_speed = 50 # Бұрылу үшін қозғалтқыш жылдамдығы (0-100)
forward_scan_angle = 50 # Кедергі анықталмағанда серво сканерлейтін бұрыш
- radar_reference: Бұл сантиметрдегі маңызды қауіпсіздік қашықтығы. Егер кедергі осы мәннен жақынырақ анықталса, көлік оны "қауіп" деп санайды және болдырмау маневрін бастайды. Бейнеде бұл 20 см етіп орнатылған.
- step_angle: Бұл радар сканерлеуінің ажыратымдылығын анықтайды. Кішірек мән (мысалы, 10 градус) егжей-тегжейлі сканерлеуді білдіреді, бірақ ұзағырақ уақыт алады. Үлкенірек мән жылдамырақ болар еді, бірақ тар кедергілерді жіберіп алуы мүмкін.
- forward_speed & turn_speed: Бұлар қозғалтқыштарға жіберілетін қуатты басқарады. Көліктің жалпы жылдамдығы мен икемділігін өзгерту үшін оларды реттей аласыз. Бұрылу жылдамдығы көбінесе жоғарырақ орнатылады, бұл көліктің тиімді бұрылуын қамтамасыз етеді.
- forward_scan_angle: Алда тікелей қауіп болмағанда, көлік өзінің сканерлеуін осы бұрышқа (алға бағытталған) тарылтады, бұл тікелей жолындағы кедергілерді жиірек тексеруге мүмкіндік береді және тегіс алға қозғалысты қамтамасыз етеді.
Бейнеде сонымен қатар негізгі шешім қабылдау логикасы түсіндіріледі. `get_direction()` функциясы қашықтық өлшемдерінің тізімін (қауіпсіз/қауіпті үшін 1 және 0-ге түрлендірілген) талдап, "1" сандарының ең кең үздіксіз жолын табады. Осы ең кең жолдың орналасуына байланысты функция бағытты қайтарады: "алға", "солға" немесе "оңға". Негізгі цикл содан кейін сәйкес әрекетті орындайды, көлікті бұрады және алдағы жол ашық болғанша қайта сканерлейді.
Тірі Жоба/Демонстрация
Бейне жобаның толық демонстрациясын ұсынады. Ол ультрадыбыстық сенсорды жеке сынаудан басталады, оның қашықтықты қалай өлшейтінін және мәндерді терминалға басып шығаратынын көрсетеді. Нұсқаушы содан кейін блок-схеманы қолданып кедергілерді болдырмау алгоритмін түсіндіреді, солға және оңға бұрылу үшін шешім қабылдау процесін егжей-тегжейлі сипаттайды. Соңында, көлік қораптардан жасалған шағын лабиринтке қойылып, кедергілерді болдырмау әрекетінің толық жұмысы көрсетіледі. Көлік лабиринтті сәтті шарлап, алға ашық жол табу үшін солға және оңға бұрылады.
Бейне Бөлімдері
- [00:00] Кедергілерді болдырмауға кіріспе
- [01:31] SunFounder Smart Car жинағына және мүмкіндіктеріне шолу
- [02:47] Кедергілерді болдырмау мүмкіндігі қалай жұмыс істейді
- [03:34] Ультрадыбыстық сенсорды сынау
- [07:45] Кедергілерді болдырмау алгоритмі мен блок-схемасын түсіндіру
- [12:49] Негізгі кедергілерді болдырмау кодын талдау
- [15:43] Кедергілерді болдырмау логикасының тірі демонстрациясы
- [22:53] Кедергілер лабиринтімен қорытынды демонстрация
- [24:35] Қорытынды және келесі қадамдар
Бұл оқулық бөлігі болып табылады: SunFounder Rasberry Pi Pico Pico 4WD Smart Car Kit
- Сабақ 1/10: Raspberry Pi Pico 4WD Smart Car Kit SunFounder компаниясынан, Robojax арқылы
- Сабақ 2/10: Raspberry Pi Pico 4WD Smart Car Kit басқаруға арналған негізгі Python
- Сабақ 3/10: SunFounder компаниясының Raspberry Pi Pico 4WD Smart Car Kit жинағы Robojax арқылы
- Сабақ 10-нан 4-сабақ: Raspberry Pi Pico кеңейту тақтасы 4WD смарт автокөлік жинағы үшін
- Сабақ 5/10: RGB LED WS2812B басқару Raspberry Pi Pico көмегімен
- Сабақ 6/10: DC қозғалтқыштарын Raspberry Pi Pico 4WD Smart Car Kit көмегімен басқару
- Сабақ 7/10: Сызықты қадағалау, жартасты анықтау Сұр реңкті сенсорды калибрлеу Raspberry Pi Pico көлігі
- Сабақ 8/10: Raspberry Pi Pico ақылды көлігі – Сабақ 8: Серво қозғалтқыш және нысанды қадағалау
- Сабақ 10/10: Raspberry Pi Pico 4WD Smart Car Kit басқару мобильді қосымша арқылы
# Lesson 9/10 Pi Car Pico 4WD: Obstacle avoid
# Download and resource page https://robojax.com/RJT631
import pico_4wd as car
import time
car.RADAR_REFERENCE = 20
car.RADAR_STEP_ANGLE = 10
MOTOR_FORWARD_POWER = 30
MOTOR_TURNING_POWER = 50
FORWARD_SCAN_ANGLE = 50
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
status = "Danger"
def get_dir(radar_data):
# get scan status of 0, 1
# print(radar_data)
radar_data = [str(i) for i in radar_data]
radar_data = "".join(radar_data)
# Split 0, leaves the free path
paths = radar_data.split("0")
# print(paths)
# print("paths: %s" % paths)
length_list = []
# Calculate where is the widest
for path in paths:
length_list.append(len(path))
if max(length_list) < 4:
return "left"
# Calculate the direction of the widest
i = length_list.index(max(length_list))
pos = radar_data.index(paths[i])
pos += (len(paths[i]) - 1) / 2
delta = len(radar_data) / 3
if pos < delta:
return "left"
elif pos > 2 * delta:
return "right"
else:
return "forward"
def main():
global status
# General
while True:
radar_data = car.radar_scan()
# print("radar_data: %s" % radar_data)
# If radar data return a int, means scan not finished, and the int is current angle status
if isinstance(radar_data, int):
if radar_data == 0 and status != "Danger":
print("Danger!")
status = "Danger"
car.move("stop")
car.set_radar_scan_angle(180)
continue
else:
status = "Save"
direction = get_dir(radar_data)
if direction == "left":
print("turn left")
distance = car.get_radar_distance_at(-FORWARD_SCAN_ANGLE/2)
time.sleep(0.5)
car.move("left", MOTOR_TURNING_POWER)
while True:
distance = car.get_radar_distance_at(-FORWARD_SCAN_ANGLE/2)
status = car.get_radar_status(distance)
if status == 1:
break
car.move("stop")
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
elif direction == "right":
print("turn right")
distance = car.get_radar_distance_at(FORWARD_SCAN_ANGLE/2)
time.sleep(0.5)
car.move("right", MOTOR_TURNING_POWER)
while True:
distance = car.get_radar_distance_at(FORWARD_SCAN_ANGLE/2)
status = car.get_radar_status(distance)
if status == 1:
break
car.move("stop")
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
else:
print("forward")
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
car.move("forward", MOTOR_FORWARD_POWER)
try:
main()
finally:
car.move("stop")
car.set_light_off()
Common Course Links
- Purchase SunFounder Pico 4WD Smart Car Kit from AliExpress
- Purchase SunFounder Pico 4WD Smart Car Kit from eBay
- Amazon Canada: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon France: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Germany: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Italy: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Japan: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Spain: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon UK: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon USA: Purchase Pico 4WD Smart Car Kit buy SunFounder
- Purchase Pico 4WD Smart Car Kit from SunFounder.com
- SunFounder Pico-4wd Car Kit Documentation
- Video Play List of 10 lesson on SunFounder Pico 4WD Smart Car Kit
Сізге қажет болуы мүмкін нәрселер
-
eBay
-
AliExpressPurchase SunFounder Pico 4WD Smart Car Kit from AliExpresss.click.aliexpress.com
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Raspberry Pi коды
-
Sunfounder's Raspberry Pi Pico 4WD card codesall the codes for the Sunfounder's Raspberry Pi Pico 4WD
pico_4wd_car-main.zip0.02 MB