Кружки робототехники в наше время определенно пользуются успехом. Лего, ардуино, скретчи и много чего еще доступно современным детям (я уверен, многие, как и я, в этом плане завидуют нынешней детворе). Будучи преподавателем робототехники, решил поделиться некоторым материалом, который у меня накопился за пару лет работы, а именно довольно простым роботом и несколькими занятиями с ним.
Данные агрегаты используется мною на занятиях для того, чтобы объяснить детям принципы работы драйвера двигателя, датчика линии и дальномера. Дети, которых настигло изучение данного робота, уже как правило отучились год и имеют минимальные представления об Arduino, моторах и электротехнике в целом. В интернете много проектов с данными комплектующими, но разработать свою машинку меня мотивировало две вещи – хотелось использовать отсек под 4 батарейки АА и иметь возможность надежно прикрепить к роботу практически любой датчик (для этого в конструкции есть несколько дополнительных крепежных отверстий).
Управляется робот платой Arduino Uno с motor shield l293d, из датчиков я ставил дальномер HC-SR04 и два датчика линии tcrt5000 (имеет как цифровой, так и аналоговый вывод).
Корпус робота состоит из 3 деталей (не считая необязательных креплений под датчики), которые печатаются на 3D-принтере. Для сборки понадобится крепеж М3, все необходимые элементы я описал в документе, лежащем с файлами для 3D-принтера.
Программируется робот, как и в стандартной среде Arduino IDE (дети постарше), так и в программе miniBloq (для младших групп). Для стандартной среды используется библиотека AFMotor, которая необходима для работы с шилдом драйверов двигателя. В miniBloq-е для работы необходимо выбрать в разделе оборудование робота «ta-bot v1», использующего аналогичный драйвер.
Имея на борту дальномер и датчики линии, робот годится для участия в соревнованиях по многим дисциплинам, но создан был именно для обучения, занять призовые места с ним не получится.
Занятия, которые с ним можно провести:
- Работа с драйвером двигателей. Вращение колеса в разные стороны и с разной скоростью.
- Простые маневры. Езда по кругу, езда по восьмерке (в этих занятиях как правило приходится много раз подбирать необходимое время и скорость, чтобы получить заданную фигуру).
- Датчик линии. Принцип работы. Передача показаний датчика в компьютер (монитор порта).
- Езда по линии с одним датчиком линии.
- Езда по линии с двумя датчиками линии.
- Дальномер. Принцип работы дальномера. Передача показаний дальномера в компьютер.
- Езда по комнате с дальномером. Робот едет вперед до встречи с препятствием, как только подъезжает к стене – поворачивает.
- Поиск противника (как в робосумо). Два робота ставятся в круг и начинают крутиться на месте, выискивая дальномером противника.
В папке с деталями также можно найти несколько готовых занятий из вышеперечисленного списка.
Комментарии (25)
TechnoMag
29.03.2018 20:03Простите за глупый вопрос: знание основ физики и закона Ома уже не нужно? Всегда считал, что чтобы что-то спроектировать в области электроники, пусть даже что-то элементарное, нужно как минимум понимать закон Ома, и знать свойства электро-деталей (конденсаторы, резисторы, диоды). Если проводить параллель с программированием: сначала был язык низкого уровня, потом языки высокого уровня, потом языки с ООП. Так вот, Adruino мне представляется как язык с ООП. Но! При этом, на собеседованиях не редко спрашивают не только о ООП, но и основах (core). Arduino уже считается отдельным от основ, и спрашивать основы уже не будут? То, что этот робот для обучения детей, увы, меня не впечатлило. Думаю, перспектив с такого обучения мало.
nicher Автор
29.03.2018 20:25Робота проходят дети, которые уже занимаются около года и знают принципы работы простейших радиоэлементов, умеют паять и работать руками (более-менее)
MaxAlekseev
29.03.2018 20:31Простите за глупый вопрос: знание основ физики и закона Ома уже не нужно?
Это дают в базовой программе школы, допобразование про другое.
Думаю, перспектив с такого обучения мало.
3-D печать, подразумевает владение САПР и спец. софтом станка с ЧПУ, Arduino — навыки программирования в Си и работе с микроконтроллерами, сборка и наладка робота — начальные навыки в электротехнике/электронике и механике, все вместе — навыки комплексного решения сложной задачи, чем и является робототехника в широком смысле. Все нормально с перспективами, и очень здравое дело.n12eq3
30.03.2018 12:02достаточно популярный тип заданий на электронном фрилансе — «я сделал свой девайс на ардуино, вот исходники — теперь сделай мне так как это должно быть с нормальным железом».
это всё, что нужно знать про «перспективность» развития инженера из пользователя ардуины. аналогично с принтерами и ЧПУ станками.
наборы роботов и подобные штуки это хорошо и полезно для развития в целом, но нужно строго следить за моментом перехода между «я пишу скетчи» и «я разработчик». иначе это грозит неправильным восприятием окружения и тотального провала в дальнейшем (закодить тележку могут 90% детей. вырасти в инженеров = кратно меньше. просто статистика)MaxAlekseev
30.03.2018 12:19сделай мне так как это должно быть с нормальным железом
Atmega328 — это нормальное железо для своего круга задач.
закодить тележку могут 90% детей.
Работаю преподавателем доп. образования по робототехнике в школе. 90% детей не могут, 10% могут, за год преподавания ситуация начинает меняться в обратную сторону.
«я пишу скетчи» и «я разработчик»
Скетчи на ардуино — это упрощенный си, и это тоже разработка только «детская» и да не все потом вырастут в инженеров — это нормально, но развитие в этой области и кругозор расширят. Arduino — это как букварь в первом классе, читать/писать научим… а дальше выбирай куда двигаться и расти.
ntfs1984
30.03.2018 01:39Знание основ физики и закона Ома уже не нужно, вы правы. И это к лучшему. Важнее сосредоточиться на результате.
А вот насчет «даже чего-то элементарного» — не правы.
Даже ваша параллель о программировании работает совсем не так.
Язык низкого уровня нужен тогда, когда язык высокого уровня уже не справляется, и не важно что было сперва, важно то что язык высокого уровня был создан не просто так. Глупо изучать ассемблер, структуру памяти, регистров, прерываний, чтобы поморгать светодиодом. В процессе работы все равно зае***тесь писать ассемблерные инструкции, соедините их в процедуры, функции, вызовы, в итоге получите тот же высокоуровневый язык с тем же результатом, но убив при этом уйму времени.
* * *
Поймите, обучение детей программированию нужно не для того, чтобы дети умели программировать. Это развивает логику, умение решать задачи нестандартными способами, развивает память, навыки чтения, абстрагирования, фантазию, а если попадется толковый учитель, то и прививает интерес к DIY.TechnoMag
30.03.2018 19:06Может, проведение параллели с языками программирование и неудачное. Мне кажется вы несколько упустили суть моего поста: в самом упрощенном случае, человек может просто устроить короткое замыкание в цепи, не будь защиты от дурака (аля ООП), пусть даже на базе форм-фактора разъемов.
rgaliull
29.03.2018 22:51подскажите, пожалуйста, ссылки для заказа всего добра.
Сын давно просит.Eureka
30.03.2018 11:01
DonArmaturo
30.03.2018 14:59Есть еще BHV (книжное издательство, да!). Заходите на сайт bhv.ru и ищете «Arduino». Там есть штук 5 наборов (ардуинка, макетная плата, детальки и узлы) сразу с книжкой по роботостроению и ардуино-программированию. Но там цены от 4 до 9 тыр. Можно заказывать через Wildberries, ну, или еще какие службы, выбирая подешевле.
Если нет готового набора навыков по преподаванию ребенку робототехники, лучше воспользоваться готовым комплектом. Для начала.
safari2012
30.03.2018 12:49я бы вместо передней опоры поставил одинарное колесо на вращающеся платформе.
Wan-Derer
31.03.2018 21:53Так кусать стяжки травмоопасно. Надо ?кусать под корень бокорезами с плоской поверхностью губок, чтобы за замок ничего не выступало.
Arxitektor
А почему Arduino? Есть же другие процессоры? Тот же cortex?
Просто у Arduino ATmega328p а там не очень много ресурсов.
На чем ещё можно делать такие самоделки? Есть что то мощнее но Arduino совместимое?
nicher Автор
Есть платы NUCLEO на STM32, они совместимы с шилдами для Arduino, разрядности и тактовая частота там заметно больше, но и платы недешевые, со своей спецификой.
KonstantinSpb
Да ладно недешевые, очень даже дешевые 95-150 рублей за плату
Model: STM32F103C8T6, Core: ARM 32 Cortex-M3 CPU, 72MHz, 64K flash memory, 20K SRAM.
www.aliexpress.com/item/1-pices-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino-Sensing-Evaluation-for-Skiller/32765534610.html
nochkin
Есть NodeMCU платы на ESP8266. Для них есть Arduino среда.
ntfs1984
И што, там таки есть аналоговые входы-выходы, они 5в-толерантны (а значит без дополнительных прослоек которые даже меня взрослого бесят), по ним есть куча документашки и они продаются у каждого барыги даже в виде голой микросхемы уже способной к работе, их не надо прошивать хитровыигранным способом, у них не зависает последующая загрузка скетчей после захвата uart по своим нуждам, а прошивка запускается если собрана с поддержкой определенных модулей, например dht?
Не смешите.
Поймите, логика «зачем %X если есть %Y» с детьми не работает. Здесь не стоит вопрос в том, чтобы найти ЛУЧШЕЕ ЖЕЛЕЗО, здесь вопрос в том как ребенку получить желаемый результат с наименьшими потерями по времени (или у вас нет детей, вы не знаете что дети не усидчивы?).
nochkin
На обычной Ардуине на atmega тоже нет аналоговых выходов. Это скорее правило, чем исключение.
А в чём сложность с 5 вольтами? Есть периферия на 3,3 вольта ведь. Тот же L298 работает без проблем.
Прошиваются без особых хлопот. У меня проблем пока не было. Они через тот же USB прошиваются как и классическая ардуина на atmega.
Прошивку пишут сами, как и для atmega. Если есть уже что-то кем-то написано, то можно использовать. Это к самому контроллеру не относится, это любой код так можно.
> Здесь не стоит вопрос в том, чтобы найти ЛУЧШЕЕ ЖЕЛЕЗО
Как раз такой вопрос и стоял.
Вопрос был изначально, что на atmega328 мало ресурсов и нужна альтернатива пожирнее.
Есть у меня дети, но это не относиться к вопросу про более жирный контроллер.
Ребёнку без разницы какой контроллер вообще если он сам его не программирует.
А если программирует, то тут важнее сама среда, а не железо. Железо, конечно, тоже важно, но не так сильно как сама среда для программирования.
В том возрасте когда ребёнок может программировать на том же wiring уже усидчивость есть для этого.
ntfs1984
Отлично. Аналоговые входы есть на всех без исключения.
Сложность с 3.3 вольтами ДЛЯ РЕБЕНКА (!!! это важно !!!) в том, что большинство вкусных модулей, блоков питания, зарядок для мобилок, и прочих USB идут пятивольтовые. Ну и на кой хер в системе половина устройств на 3.3 в, а вторая половина на 5 в?
Прошивку пишут сами? Какую такую прошивку? NodeMCU уже прошита. Проблема в том, что когда вы загрузите программу, использующую UART — вы больше не сможете загружать свою программу, и вам придется перепрошивать девайс заново. На форумах и даже на гите этих кукареканий полно, и касаются они именно NodeMCU.
Вопрос был изначально, чтобы показать детям конструктор робототехники, который их заинтересует, а не отпугнет. Для этого конструктор должен быть простой, удобный, по нему должно быть куча документации чтобы родители в случае чего могли помочь, он должен быть дешевый чтобы его не жалко было спалить, и он должен быть популярный чтобы его можно было купить в любом магазине.
Про ресурсы я вам уже сказал. Передо мной сейчас лежит Ардуина Мини за 2 бакса. У нее на борту: 8 аналоговых входов, 6 аналоговых выходов (PWM точнее, но суть не меняется — яркость светодиодиков можно плавно регулировать цифрой от 0 до 1023), SPI, i2c, 2хUART (и вообще любые пины можно использовать как Rx\Tx), 12 цифровых входов\выходов. И это только Mini.
Уточните, какие ресурсы нужны ребенку, а так же юзкейс, в котором эти ресурсы будут востребованы?
>>>
Ребёнку без разницы какой контроллер вообще если он сам его не программирует.
А если программирует, то тут важнее сама среда, а не железо. Железо, конечно, тоже важно, но не так сильно как сама среда для программирования.
В том возрасте когда ребёнок может программировать на том же wiring уже усидчивость есть для этого.
<<<
Конечно без разницы. Ребенку нужно чтобы он подключил, и оно заработало. Как только ваша альтернатива это позволит — ребенков будут обучать на ней. На данный момент не позволяет, а вы все никак не можете своим техническим умом понять, что привлекательность устройства не состоит из выдранной одной фичи, а состоит из всех достоинств одновременно: цена+наличие в магазинах+наличие модулей+наличие документации+легкость подключения+аппаратные возможности. Если хотя бы один критерий выкинуть — устройство станет терять привлекательность даже если другой критерий в стопицот раз лучше. Вас сильно утешит что Ламборджини Авентадор в 5 раз быстрее вашего Форда Фокуса, если вы сможете на нем ездить только взад-вперед по проспекту из-за низкой посадки? Думаю нет. Здесь — то же самое. Детям (и мне как родителю) не нужно БЫСТРО, нам нужно эффективно и результативно.
То-то я смотрю на форумах куча недетских вопросов и о wiring, и о nodeMCU :))
Вы так и не поняли в чем суть привлекательности конструктора)))
nochkin
Аналоговые входы на классической atmega328 нет.
При чём тут зарядка для мобилы? Это всё равно что сказать, что в розетке 220 вольт, зачем мне эти все устройства на 5 или 12 вольт?
Такой же странный аргумент.
Почему именно для ребёнка 3.3 вольта это однозначно проблема? Сейчас много модулей на 3.3 вольтах работает.
NodeMCU — это и есть прошивка. Но речь вообще шла про Arduino, а не NodeMCU.
Изначально вопрос пользователя Arxitektor был о том есть ли что-то пожирнее atmega328. Я предложил плату на esp8266.
Зачем ещё уточнять что именно ему нужно? Явно вопрос был не об впихивании его задумок в размер atmega328.
> а вы все никак не можете своим техническим умом понять, что привлекательность устройства не состоит из выдранной одной фичи
Я же не утверждал обратное. Я ответил на вопрос выше. Почему надо теперь обвинять меня в том, что я даже не говорил в своём ответе?
И сравнение с Фордом вообще ни о чём.
> Вы так и не поняли в чем суть привлекательности конструктора)))
Эта тема даже не поднималась. Зачем выдумывать что-то и потом на этой почве начинать обвинения со скатываением на тему какой у меня ум, о выдранности фичей и прочего, которое непонятно откуда взялось?
Спор ради спора? Тогда я пасс.
Wan-Derer
Доооо? Вот эт новость!:)
nochkin
Да, верно. Выходы, конечно. Это была опечатка. Я в первом сообщении правильно написал.
ntfs1984
Ну а почему в первом классе букварь? Есть же другие. Та же «Война и мир».
Просто у букваря азбука, а там не очень много страниц.
Сэр, Arduino — потому что букварь, который умеют читать практически все, который легок, есть везде, и почти у всех можно спросить совета, даже у тех взрослых, которые в глаза его не видели.