stemprojects.eu

Проекти с роботизирана количка Cutebot

Cutebot идва готов сглобен - целият час е за програмата, не за монтаж. Уроците вървят от готова команда до дистанционно управление и просто компютърно зрение.

За кого е: МОН Компютърно моделиране (3.-4. клас) и КМИТ (5.-6. клас) - условие по сетиво, много клонове, дистанционно управление, просто компютърно зрение (AI Lens). Урок по сглобяване НЕ е - за него вижте neZha или Ring:bit, там моделът се строи от тухлички.

Какво ще ни е необходимо?
Програмируем робот micro:bit Smart CutebotВиж в магазина → micro:bit - не е включен в кутията на CutebotВиж в магазина →
21 от 21 урока готови micro:bit + Cutebot блоковете на Cutebot са на английски
6 лесно - първи стъпки - едно ново нещо на урок
★★5 средно - сглобяват се няколко идеи наведнъж
★★★10 трудно - проекти с няколко части, сензори или устройства
Свободен
★ лесно
урок 1 · Събитие и готова команда
Напред и назад с пълна скорост
case 01 · сложност ★★★
В този проект ще програмираме количката Cutebot да потегля само с натискане на бутон. Бутон A праща готовата команда „напред" и количката продължава да се движи дори след като пуснем бутона - „напред" е име на действие, зад което Cutebot вече знае какво да прави. Бутон B изпраща огледалната команда „назад", а истинско спиране тук още няма - то идва в следващите уроци, щом се научим да задаваме скорост на всяко колело поотделно.
Свободен
★ лесно
урок 2 · Събитие и готова команда
Танц по осмица
case 03 · сложност ★★★
В този проект ще програмираме количката Cutebot да очертава осмица на пода, използвайки само последователност от команди - без нито едно „ако" и без нито една променлива. Даваме на лявото колело скорост 100, а на дясното 40 за една секунда, и вместо завой на място количката тръгва по дъга. После разменяме числата - 40 и 100 - и втората дъга извива в обратната посока. Двете дъги, свързани една след друга, се затварят в осмица само защото на двете колела сме дали различна скорост.
Свободен
★ лесно
урок 3 · Събитие и готова команда
Мигачи и габарити
case 06 · сложност ★★★
В този проект ще програмираме мигачи на Cutebot - жълто мигане на предния фар, вместо просто пали/гаси. Левият фар светва в жълто, гасне и чака; обвиваме тази последователност в броен цикъл от пет повторения, за да стане истински мигач - без цикъла щяхме да преписваме едни и същи четири блока пет пъти. Бутон B прави същото за десния фар с идентичен по форма блок. Урокът показва и цената на преписването: ако утре решим мигането да е по-бързо, трябва да сменим числото на две отделни места.
★ лесно
урок 4 · Двете колела поотделно
Постепенно ускоряване
case 02 · сложност ★★★
В този проект ще накараме количката Cutebot да се засилва плавно, вместо да потегля рязко с пълна газ. Двете колела получават една обща променлива за скорост, която тръгва от нула, и на всяка обиколка от цикъла тя се увеличава с единица - стотици пъти в секунда, затова ускорението изглежда гладко, сякаш някой бута количката отзад. Щом скоростта стигне 100, условие я връща на нула и всичко започва отначало. Таванът не идва от мотора - той е правило, което програмираме ние.
★ лесно
урок 5 · Двете колела поотделно
Движение на случаен принцип
case 04 · сложност ★★
В този проект ще програмираме количката Cutebot да се движи хаотично, като подадем на колелата ѝ случайни числа вместо фиксирана скорост. Първо едно и също случайно число между -100 и 100 отива на двете колела - количката тръгва ту напред, ту назад, но винаги право, защото едно число не може да завие. После добавяме второ, независимо случайно число за дясното колело и количката прави всичко - права линия, дъги, завъртания на място. Децата откриват правилото сами: близки числа значат почти права линия, различен знак - въртене.
★ лесно
урок 6 · Двете колела поотделно
Търсене на светлина
case 15 · сложност ★★★
В този проект ще програмираме количката Cutebot да търси светлина, използвайки вградения в micro:bit сензор за осветеност. Първо тя просто кара напред, без да знае нищо за стаята. Добавяме условие: щом светлината падне под 50, завива наляво - закрийте сензора с ръка и се завърта, но махнете ръката и тя продължава да се върти, защото никой не ѝ е казал да спре. Клонът „иначе" за каране напред довършва поведението: количката се върти в тъмното и потегля право на светло - получава се нещо, което прилича на търсене.
★★ средно
урок 7 · Условие по сетиво
Автоматични фарове
case 05 · сложност ★★★
В този проект ще програмираме предните светодиоди на Cutebot да палят и гасят сами според осветлението. Първо количката кара с бели фарове, включени през целия цикъл - работи, но свети напразно и на дневна светлина. После добавяме условие: щом осветеността падне под 10, фаровете светват - но извадена отново на светло, количката ги оставя запалени. Едва клонът „иначе", който връща и трите числа на нула, доизгражда автоматиката, и сега фаровете сами следят светлината, без да пречат на карането.
★★ средно
урок 8 · Условие по сетиво
Количка, която не пада от масата
case 07 · сложност ★★★
В този проект ще програмираме количката Cutebot да усеща ръба на масата и да не пада от него, използвайки сензора за линия, насочен надолу. Докато и двата сензора виждат светло (масата), количката кара бавно напред - но щом стигне ръба, „черното" под нея всъщност е липсата на маса, а не линия. Щом го засече, тя се дръпва половин ход назад, завива на случаен ъгъл и спира за секунда - случайният ъгъл е нарочен, за да не се блъска пак в същия ръб по същия начин.
★★ средно
урок 9 · Условие по сетиво
Самостоятелно избягване на препятствия
case 09 · сложност ★★★
В този проект ще програмираме количката Cutebot да избягва препятствия сама, използвайки ултразвуковия сензор за разстояние. Пръв опит - при разстояние под 20 тя се завърта - работи срещу стена, но на открито количката се върти безпричинно, защото нулата, когато сензорът не засича нищо, също минава като „под 20". Поправката добавя второ условие, разстоянието да е и над 1, а карането напред се премества в клона „иначе": то става поведението по подразбиране, а завоят е само прекъсване, задействано от истинско препятствие.
★★ средно
урок 10 · Много клонове и състояние на сензора
Движение по черна линия
case 08 · сложност ★★★
В този проект ще програмираме количката Cutebot да следва черна линия по пода, използвайки двата сензора отдолу. Когато и двата виждат черно, количката е точно върху линията и кара право. Щом линията остане само от едната страна, съответното колело спира, а другото продължава, и количката рязко се извива обратно към нея - третото състояние е огледално, с разменени колела. Тя няма представа накъде води линията - само непрекъснато поправя грешката си, и от това поправяне се получава следването.
★★ средно
урок 11 · Много клонове и състояние на сензора
Следване на дистанция
case 10 · сложност ★★★
В този проект ще програмираме количката Cutebot да следва ръка, като поддържа постоянно разстояние до нея. Първи опит с две поведения - в зоната 5 до 10 см спри, иначе карай - я приближава и спира пред ръката, но ако приближим ръката още, тя просто стои на място. Добавяме среден клон - под 5 см назад - и вече има три поведения: далече напред, в зоната стои, много близо се отдръпва. Бавно движена ръка кара количката да я следва - това вече не е реакция, а истинско управление.
★★★ трудно
урок 12 · Два уреда: дистанционно
Дистанционно управление с micro:bit
case 11 · сложност ★★★
иска и: втори micro:bit (пултът)
В този проект ще програмираме дистанционно управление на Cutebot с втори micro:bit, който служи като пулт. Двата уреда носят една и съща програма и се настройват на обща радио група - като честота, на която се чуват само двамата. Бутон A праща числото 1, бутон B - числото 2, а приемникът в количката сравнява числото и завива в съответната посока; коя роля играе всеки micro:bit зависи само от това къде е поставен. Урокът показва и честа грешка при разширяване: нова команда иска добавяне на две места - бутон при пращача и клон при приемника - иначе пултът праща в празното.
★★★ трудно
урок 13 · Два уреда: дистанционно
Дистанционно управление с накланяне
case 12 · сложност ★★★
иска и: втори micro:bit (пултът)
В този проект ще програмираме управление на Cutebot чрез накланяне на дистанционния micro:bit. Наклонът дава число до около 1023 - твърде голямо за мотор - затова го делим на 10 и го пращаме по радио с име, „x" или „y", за да различава приемникът двете посоки. Приемащият блок само сравнява името и записва стойността в променлива, без да движи нищо - разделянето на приемане и действие прави програмата четима. Движението идва от една сметка: лявото колело получава наклонY плюс наклонX, дясното - наклонY минус наклонX.
★★★ трудно
урок 14 · Два уреда: дистанционно
Инфрачервено дистанционно
case 14 · сложност ★★★
иска и: инфрачервено дистанционно (в комплекта Cutebot)
В този проект ще програмираме количката Cutebot да се управлява с обикновено инфрачервено дистанционно от комплекта. Блокът „при сигнал от дистанционното" чака сигнал точно както бутон, а вътре питаме кой точно бутон е дошъл - сигналът е един, но бутоните в него са различни, и за разлика от радиото, тук изборът на числата е на производителя. Приемникът е отпред на количката, затова насочването отзад не работи. Пет прости условия за стрелките и стоп стоят едно до друго без „иначе ако", защото в един сигнал идва точно един бутон.
★★★ трудно
урок 15 · Два уреда: дистанционно
Дистанционно управление с Joystick:bit
case 13 · сложност ★★★
иска и: Joystick:bit (отделен продукт) · втори micro:bit
В този проект ще програмираме управление на Cutebot чрез джойстик на Joystick:bit. Модулът връща стойности от 0 до 1023 по всяка ос, но при преобразуването им в -100 до 100 границите нарочно се разменят, защото лостчето брои в обратна посока спрямо очакваното за „напред". Приемащият блок е абсолютно същият, ползван и при управлението с накланяне - той не знае дали числото идва от наклон или от лостче, а формулата за колелата също е същата. Урокът показва най-ясно, че управлението е сметка, а не хардуер - сменя се само източникът на числата.
★★★ трудно
урок 16 · Зрение (AI Lens)
Следване на линия с AI Lens
case 16 · сложност ★★★
иска и: AI Lens (не е в кутията)
В този проект ще програмираме количката Cutebot да следва линия с камерата AI Lens, вместо с обикновените сензори отдолу. При старта модулът се превключва в режим „линия", а „заснеми кадър" в цикъла е задължително, иначе не гледа изобщо. Когато камерата вижда линията да води наляво, лявото колело забавя, и обратно за дясната посока. Разликата с обикновения сензор от урок 8 е съществена: там сензорът казва само „под мен е черно", а тук камерата вижда накъде води линията напред и разпознава завоя предварително.
★★★ трудно
урок 17 · Зрение (AI Lens)
Проследяване на лице
case 21 · сложност ★★
иска и: AI Lens (не е в кутията)
В този проект ще програмираме AI Lens да разпознава дали пред количката Cutebot стои лице, в режим „лице". Първият опит задава само въпрос да/не и пали отметка на екрана, но застанете отпред и после се отдръпнете - отметката си остава, защото никой не е казал какво да стане, когато лице няма. Клонът „иначе", който връща кръстче, довършва логиката, и екранът вече винаги показва истината - цялата сложност е скрита в модула, а програмата вижда само да или не.
★★★ трудно
урок 18 · Зрение (AI Lens)
AI Lens се учи с един бутон
case 20 · сложност ★★★
иска и: AI Lens (не е в кутията)
В този проект ще програмираме AI Lens да разпознава конкретен предмет, който сами ѝ показваме, вместо да разчита на вградени категории. Бутон A казва на модула „запомни какво виждаш сега като предмет №1" - знанието остава вътре в самия модул. После с условие „ако виждаш предмет №1" палим отметка на екрана, а когато покажем съвсем друг предмет, виждаме къде камерата бърка, защото не разбира какво гледа, а само сравнява с наученото. Фаровете стават сини при познат предмет и червени при непознат.
★★★ трудно
урок 19 · Зрение (AI Lens)
Светлини по разпознат цвят
case 18 · сложност ★★★
иска и: AI Lens (не е в кутията)
В този проект ще програмираме количката Cutebot да пали различни светлини според цвета, който вижда камерата AI Lens в режим „цвят" - от цял метър разстояние, за разлика от обикновения сензор, който иска картончето на два сантиметра. Зелено и червено проверяваме с два отделни, независими блока „ако", защото камерата вижда само един доминиращ цвят наведнъж. Забележете какво липсва: няма клон „иначе" - ако камерата не разпознае цвят, фаровете просто остават в последното си състояние, за да не трепкат при всяко случайно колебание.
★★★ трудно
урок 20 · Зрение (AI Lens)
Проследяване на топка
case 19 · сложност ★★★
иска и: AI Lens (не е в кутията)
В този проект ще програмираме количката Cutebot да следва топка с камерата AI Lens в режим „топка". Камерата дава позицията на топката в кадъра, число от 0 до около 224: под 80 значи вляво, над 144 - вдясно, между тях е в средата, и количката завива на съответната страна или кара право. Отгоре добавяме условие по размера на топката - голяма топка значи близо, и само тогава количката следва, иначе спира. Трите нива се четат като въпроси едно върху друго: има ли топка, далече ли е, наляво ли е.
★★★ трудно
урок 21 · Зрение (AI Lens)
Количка с пътни знаци
case 17 · сложност ★★★
иска и: AI Lens (не е в кутията)
В този проект ще програмираме количката Cutebot да разпознава пътни знаци на картончета пред камерата AI Lens и да им се подчинява. В режим „карти" камерата разпознава самата рисунка, не цвят и не форма - при знак „напред" количката потегля, а при „наляво" изпълнява самостоятелен блок, който сам спира след завоя. Най-интересната подробност идва след завоя: три поредни заснемания на кадър, без да се прави нищо с тях - те просто дават време картончето да излезе от полезрението, иначе количката веднага пак би видяла същия знак.
Предстои

Останалите 0 урока искат аксесоар извън кутията: шест са с AI Lens (зрение), един с Joystick:bit, един с инфрачервено дистанционно. Правят се по същия конвейер и ще носят етикет какво трябва.

В урока: разделите долу сменят части · Следваща стъпка върви вътре в частта · цъкване на снимка я отваря на цял екран с лупа · 🖥 отваря втори прозорец за лаптопа, за да остане проекторът чист.

Първите 3 урока в областта са свободни. Останалите се отварят с регистрация.