Search Code

Курс Лекција 9 од 10: Избегнување пречки користејќи Raspberry Pi Pico 4WD паметен автомобил

This lesson is part of: Raspberry Pi Pico 4WD Smart Car

Курс Лекција 9 од 10: Избегнување пречки користејќи Raspberry Pi Pico 4WD паметен автомобил

Вовед

Овој водич, заснован на Лекција 9 од 10 од курсот на Robojax, покажува како да се изгради робот кој избегнува пречки користејќи го комплетот 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.

Основните врски ги вклучуваат пиновите за активирање (trigger) и ехо (echo) на ултразвучниот сензор, и пинот за сигнал на серво моторот, сите поврзани со специфични GPIO пинови на Raspberry Pi Pico. Управувачот на моторите е исто така поврзан со Pico за контрола на четирите погонски мотори. Видеото споменува дека целосната документација, вклучувајќи дијаграми за поврзување, е достапна за преземање со комплетот.

Објаснување на кодот

Оваа лекција се фокусира на логиката во примерот `obstacle_avoid`. Кодот е напишан во MicroPython. Иако целосната програма е достапна за преземање, ние ќе се фокусираме на клучните, кориснички конфигурирани параметри кои го контролираат однесувањето на автомобилот. Тие обично се наоѓаат на почетокот на скриптата.

Еве ги главните променливи кои можете да ги прилагодите за да го подесите однесувањето на вашиот робот:


# Параметри за радар и движење
radar_reference = 20  # Минимално растојание во cm кое се смета за безбедно
step_angle = 10       # Зголемување на аголот за секој чекор на радарско скенирање
forward_speed = 30    # Брзина на моторот за движење напред (0-100)
turn_speed = 50       # Брзина на моторот за вртење (0-100)
forward_scan_angle = 50  # Аголот кој сервото го скенира кога нема откриена пречка
  • radar_reference: Ова е клучното безбедносно растојание во сантиметри. Ако се открие пречка поблиску од оваа вредност, автомобилот ќе ја смета за „опасност“ и ќе започне маневар за избегнување. Во видеото, ова е поставено на 20 cm.
  • 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] Заклучок и следни чекори
No code attached.

Resources & references

No resources yet.

Files📁

No files available.