Александр Попов (athunder) wrote,
Александр Попов
athunder

Categories:

Набор Geekcreit UNO R3 - Starter Kit для Arduino. Первые шаги, первые проекты для ребёнка.

Посмотрел урок программирования на Учи.ру и решил, что это баловство. Мой ребёнок решал там задания. Когда решил проверить, что же он на самом деле понимает, всё оказалось очень печально. Он что-то менял на экране, не понимая сути.

Но самым забавным был результат выполнения задания, как раз которое я решил проверить. Несмотря на некорректный код, сортер действительно отправлял по три детали на переплавку в одну сторону и три детали в другую сторону, как требовалось в условиях. И хотя происходило это в том числе по счастливому стечению обстоятельств (срабатывая не на всех выборках), проверка была такой, что пропускала и этот вариант.

У меня в коллекции электронных книг для детей есть несколько по языку программирования Scratch, а также по работе с отладочной платой Ардуино. Последняя меня заинтересовала в том числе благодаря проектам с гирляндами на окно и ёлку, но руки никак не доходили.

Купил набор Geekcreit UNO R3 Basic Starter Kits No Battery Version Geekcreit for Arduino на Bangood. Помимо отладочной платы он содержит множество других элементов, включая макетную плату, соединительные провода, резисторы, кнопки, дисплей, пульт дистанционного управления, пищалка, фоторезистор, потенциометр, джамперы, ...

Geekcreit UNO R3 Basic Starter Kits No Battery Version Geekcreit for Arduino


Вполне возможно, что многие вещи из этого набора вообще не понадобятся. Наверное можно приобрести только действительно нужные элементы у разных продавцов. Но для старта меня больше устраивал именно набор.

А вот чего нет в этом наборе, так это инструкции. И это может оказаться проблемой.

Первой мне в руки попала книга Эрик Шернич "Arduino для детей". Первые проекты с подключением светодиода через резистор, а также гирлянды из 5 светодиодов показали, что в книге пропущены некоторые элементы для новичка. А мне начинать приходилось с нуля.

Первым вопросом стало, нужно ли соединять какие-то элементе вместе и как запитать плату Uno R3. Саму отладочную плату хотя бы легко найти благодаря надписи Uno. Но для питания есть USB Type B разъём (как у принтера и сканера). Также есть разъём питания, к которому можно подключить провод из набора, на другой стороне которого разъём для батарейки крона. Самым простым оказался вариант подключения к компьютеру через USB, тем более, что программы с компьютера можно заливать по этому же кабелю.

В книге Шернича пара страниц уделяется установке среды разработки (IDE) и драйверов на Windows. Решил конечно же выяснить, что делать в Ubuntu. Оказалось, что для установки и настройки достаточно выполнить в терминале пару строчек:
sudo usermod -a -G dialout имя_пользователя
sudo apt-get install arduino




Вторая строчка конечно же просто устанавливает нужное программное обеспечение.

Первая строчка позволит добавить вас, как пользователя, к группе dialout, что позволит отправлять написанную программу на отладочную плату по USB кабелю (на самом деле эта строчка даёт доступ к COM портам, несмотря на использование USB кабеля). И даже если вы забудете выполнить эту строчку, то при первом запуске среды разработки Arduino вам об этом напомнят:



Всего этого уже достаточно для создания первого проекта. Шернич предлагает взять макетную плату, установить на неё светодиод через резистор и взять питание с Arduino Uno. Через резистор подключать диод приходится, чтобы последний не сгорел. А вот почему провода подключается именно так, как на схеме в книге, мне было не понятно по одной простой причине - макетную плату я видел в первый раз в жизни. Автор же видимо решил, что соединения на макетной платы очевидны и не нуждаются в пояснении или приведении схемы:



Шернич предлагает подключить красный провод к выводу VCC, а черный к GND. Оказалось, что на Uno R3 нет вывода с надписью VCC. Для меня было совсем не очевидно, что можно использовать вывод с надписью 5V.

Далее встал вопрос, какой выбрать резистор. Один диод подключили через резистор 220R (220Ом), а второй - через резистор 1K (1 кОм). Конечно же резистор с бОльшим сопротивлением приводит к меньшему свечению светодиода.

[Анимированное GIF изображение проекта гирлянды]

Схему из книги Шернича немного упростили, т.к. использовать лишние провода нет никакого смысла. Зато, благодаря автору узнал, что резисторы имеют цветные кольца, позволяющие узнать маркировку. Также наверняка для многих будет не очевидным, что резистор можно установить с любой стороны от светодиода.

Следующим проектом было заставить мигать светодиод на плате, который соответствует 13 выводу. Код простой, но уже позволяет начать работать со средой разработки, а также отправлять корректно откомпилированный код на плату по USB



Кстати, программы (для Ардуино называются скетчами) можно писать и в онлайн редакторе Arduino Web Editor, но мне показалось для начала проще запитать плату по USB и скидывать приложение по нему же.

Макетная плата, судя по всему, имеет липкую ленту с обратной стороны, так что её можно и подвесить куда-нибудь. Но мне также показалось, что эта лента мешает иногда создать хороший контакт. Самая большая проблема возникла со светодиодами, т.к. лапки у всех из них были разной длины. Как проще с этим справиться? Кусачками выровнять длину лапок?

Третьим проектом стало создание подобия гирлянды из 5 светодиодов, каждый из которых подключался через резистор, к конкретному выводу на плате. Благодаря подаче напряжения на конкретный вывод, задержке после этого и отключению напряжения, можно легко заставить светодиоды включаться по очереди.

Привожу свой код, в котором добавил массив, вычисление длины массива, а также оператор цикла.

int myPins[] = {9, 10, 11, 12, 13}; //массив с номерами используемых выводов
int nPins = sizeof(myPins); //размер массива
int nDelay = 100; //задержка в мс

void setup() {
for (int i=0; i < nPins; i++) //цикл для перебора всех выводов
pinMode(myPins[i],OUTPUT);
}

void loop() {
for (int i=0; i < nPins; i++) //цикл для перебора всех выводов
{
digitalWrite(myPins[i],HIGH); //подаём напряжение на вывод, соответствующий i-му элементу массива
delay(nDelay); //задержка nDelay милисекунд
digitalWrite(myPins[i],LOW); //отключаем напряжение на выводе, соответствующем i-му элементу массива
delay(nDelay);
}
}


Ребёнку конечно сложно понять. Надо поискать простые способы объяснения азов.



[Анимированное изображение проекта гирлянды, управляемой Arduino Uno]

Ещё одной из проблем с книгой Шернича стал некорректный код во втором проекте. Вроде бы пропущены только точки с запятой, но для неопытного ученика это может стать серьёзным препятствием.

Вместо книги Шернича можно начать и с бесплатного пособия Uno Starter Kit (PDF), которое обнаружил позднее. Также вместе со средой разработки идёт множество полезных примеров скетчей. Тем более, что вполне возможно, что часть проектов Шернич позаимствовал именно оттуда.

В целом же, меня приводит в щенячий восторг возможность лёгкого управления при помощи Arduino, пусть даже дело касается незатейливых вещей. И это при цене менее 1500 рублей. Ребёнку пока конечно интереснее электронный конструктор Знаток. Особого интереса к Ардуино и программированию пока не наблюдаю. Возможно, нужно начать с более простого языка Scratch и разобраться с основами. А, может, нужно собрать своими руками какую-нибудь завораживающую гирлянду. Xiaomi Mitu Mi Builder Rover оказался довольно отвратительным вариантом для программирования и исправлять недостатки Сяоми вовсе не собирается. Вероятно с хорошим набором Лего для робототехники было бы интереснее. Но в то же время мне всё чаще кажется, что для нынешнего поколения детей слишком многие вещи даются слишком легко, что приводит к тому, что они начинают лениться, не приучены работать, и всё время недовольны количеством развлечений.

Чем посоветуете заинтересовать ребёнка?

Tags: arduino, обучение, программирование
Subscribe
promo athunder may 26, 2013 11:36 17
Buy for 10 tokens
Вы можете вернуть процент с покупок, используя специализированные Интернет сервисы возврата наличных (cash back, кешбэк, кэшбэк, кэшбек). Такие сервисы предоставляют ссылки на Интернет-магазины. Переходя по ним и совершая покупки, вы получаете процент в виде наличных обратно. Если обычные сайты…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments