Если вы не попробовали Ардуино только потому, что не можете начать, не зная что к чему, я сейчас спасу вас.
Ардуино — это просто, как конструктор Lego. Но когда его начинают объяснять, то всплывает куча баззвордов: среда разработки, железо, камень, прошивка, библиотека, драйвер, скетч, исполняемый файл, компоненты, навыки программирования, программно-аппаратная часть, ардуино-совместимая платформа… Да тут кто хочешь с ума сойдёт, надо же так усложнять простой набор игрушек для детей! =)
На самом деле всё просто: у нас есть сама Ардуино — это мозг наших будущих игрушек, которые мы с ней соберём.
У нас есть две готовых шилды на выбор. Почему? Мы сейчас «воткнем» Ардуину в одну шилду, посмотрим, как она работает, а затем перепрограммируем и воткнём в другую — и снова убедимся, что работает. Так нам сразу станет понятно, и мы сможем двигаться дальше — благо направлений развития вместе с Ардуиной — много.
Первая шилда — супер-интересная. Из неё мы сделаем радио, о котором я ещё много расскажу, но не сейчас. Набор хорош тем, что в нём множество компонентов и можно по-разному надстраивать конечную функциональность устройства. Но это всё потом. Ардуино в этом наборе уже есть, поэтому её не надо покупать отдельно. Вторая шилда — супер-красивая. Ею мы уютно и замысловато осветим наш мир. Про неё я тоже много чего планирую рассказать, но позже. Вы можете выбрать любые другие шилды, но мне понравились именно эти, потому что — забегая вперёд — у них большое будущее ;)
План действий сейчас такой: подключаем и перепрограммируем нашу Ардуину, чтобы посмотреть, как это работает и убедиться, что это просто. Разбираться что к чему будем потом.
Шаг 1: Cоберите первую шилду
Берём этот набор. Собираем радио по инструкции. Это просто, как собрать игрушку из киндер-сюрприза. Только гораздо более увлекательно!
Что мы только что сделали? Мы «навтыкали» компонентов в готовую шилду, «воткнули» в неё же Ардуину с загруженным заранее скетчем для работы всех этих компонентов. Всё, у нас готовое устройство. И оно работает! =)
Шаг 2: установите IDE
Всё, с первой шилдой мы увидели, как это всё собирается и работает. Теперь — самое главное: ОТКЛЮЧАЕМ ПИТАНИЕ. Достаём Ардуино и берём следующую шилду.
Наша новая шилда, если верить надписям на ней, называется MP 1051. У Ардуино глаз нет, поэтому она не знает эту шилду и не может с ней работать пока что. Сейчас мы это исправим.
Для того, чтобы Ардуина знала, где на этой шилде что, и что там вообще есть, нам нужна эта библиотека. А для того, чтобы она начала этим всем манипулировать, нам нужен какой-нибудь из этих скетчей — начнём с первого: для него не нужен пульт.
Хозяйке на заметку:
Если Ардуино — это голова, мозг, то:
Библиотека — это файлы .h и .cc — это руки-ноги. То есть то, чем можно ходить, бегать, танцевать, светить. Библиотека даёт Ардуине представление о том, во что её (Ардуину) «воткнули» и чем она теперь может светить-шевелить.
Скетч — это файлы .ino, и, собственно, это сам танец, сама ходьба, сама последовательность мигания или яркость свечения — словом, скетч отвечает за то, что Ардуина со своими «руками-ногами» делает.
Загрузить в Arduino библиотеку и скетч можно при помощи программы IDE. Если сам конструктор Ардуино похож на лего, то программа IDE похожа на iTunes: для того, чтобы загрузить музыку в телефон, вам нужна специальная программа? Миллионы людей справляются с этой задачей, справимся и мы с IDE.
1. Скачайте IDE здесь.
2. Установите IDE как обычную программу.
Узнать больше: для Windows
3. Подключите Ардуину по USB
4. Запустите IDE (с правами супер-пользователя, если вам это о чем-либо говорит. Если нет, то забейте на эти права. Если да — скачайте версию 1.0.1 — всё, что старше, на Linux работает криво).
5. Выберите тип Ардуины. (Выберется, скорее всего, автоматически. Но у нас в руках из набора Arduino Nano 3.0 и на квадратном процессоре сверху написано Amtel Mega 328p — это значит, из меню выбираем Nano ATmega328).
6. Проверьте, компьютер видит Ардуину: виден её порт, через который мы её подключили.
Всё готово? Сейчас разберёмся с тем, что загрузить и как, и через 5 минут лампочки (диоды!) на нашей новой шилде будут весело освещать наш дом.
Troubleshooting:
Если порт не найден, отсоедините всё и закройте программу. Присоедините Ардуино заново, можно к новому порту, откройте программу. Это похоже на мобильное приложение у вас в телефоне: если оно зависло, вы его перезапускаете, и оно снова работает. Здесь тот же принцип troubleshooting. =)
Шаг 3: Используйте скетч и библиотеку по назначению
Здесь-то и начинается самый magic! =) Но, почему-то, именно к этому волнующему моменту объяснения были самые скучные:
Для того, чтобы запрограммировать микроконтроллер, у нас есть три типа файлов: .h, .cc, .ino Файлы компилируются, к библиотекам шлются обращения. Всё это написано на языке C, который оперирует функциями, переменными, после чего, чтобы написанная на языке C программа стала понятна микроконтроллеру, она переводится в машинный код — компилируется и затем загружается в контроллер… вы себе не представляете, насколько сейчас нам на это пофиг =) Всё гораздо проще.
Библиотека
Скачайте библиотеку для нашей новой шилды MP1051
- Распакуйте её — вы получите папку MP1051
- Зайдите туда, где у вас лежит ваша программа Arduino IDE с её папками.
В моём случае это была папка Downloads — куда я скачала программу, там она у меня лежит, оттуда и запускается — ничего сложного.
- Скопируйте получившуюся папку MP1051 в папку libraries
Скетчи
- Скачайте набор скетчей\драйверов для нашей новой шилды MP1051
- Распакуйте
- Возьмите полученную папку examples и положите в MP1051, которая уже лежит в libraries. Или — в папку examples, всё там же, в директории программы Arduino, но тогда её надо будет переименовать во что-нибудь.
Всё! Давайте скорее объединим Библиотеку + Скетч, скомпилируем их в машинный код и загрузим на контроллер. Это быстро.
- Подключите Arduino через USB
- Откройте программу IDE
- Выберите: Скетч — Импортировать библиотеку — MP1051 (появится в выпавшем меню среди прочих библиотек)
- Выберите: Файл — Примеры — MP1051 — Step_1
- Нажмите: Галочку (= Проверить)
Произойдёт: Компилирование — Компилирование выполнено
- Нажмите: Стрелку вправо (= Загрузить скетч в Arduino)
Произойдёт: Загрузка — Загрузка выполнена
Готово!
- Отсоедините Ардуино от USB
- Посадите его на плату (Важно! Разъем для мини-USB смотрит наружу!)
- Присоедините его обратно к USB (в этот раз USB будет подавать питание)
Важно:
- Перед пересадкой\высадкой Ардуино на шилду\с шилды всегда обесточивайте прибор
- Перед загрузкой скетча, вынимайте Ардуино из шилды
Как видите, мы ни разу даже не открыли ни один скетч, а если и открыли, то ненадолго. В этом прелесть библиотек и скетчей, которые уже написаны под определённые шилды и компоненты для Ардуино.
Назад в будущее
Если вы теперь вернёте Ардуино на место, на шилду радио (Важно! Обесточьте плату перед пересадкой на шилду!), то радио больше «не будет работать». Хотите вернуть всё как было? Вы уже знаете, как это сделать!
Обратите внимание на нужные нам папки — libraries и examples. А также на то, что название папок и файлов должно писаться латиницей в одно слово. Можно использовать цифры и нижнее подчёркивание. Итак, возвращаем всё как было:
Вот библиотеки для радио
Вот скетч
Откройте все нужные библиотеки (см. изобр.) + копируйте сюда скетч. Компилируйте. Загружайте. Готово! Можно поставить Ардуино обратно в шилду радио и снова его (радио) включить.
Вот так быстро мы с вами разобрались с:
1. Как перепрограммировать Ардуино под разные шилды при помощи готовых скетчей и библиотек.
2. Зачем нам скетч, зачем нам библиотека. Что куда класть.
3. Как работать с программой Arduino IDE, чтобы загрузить скетч вместе с библиотекой.
Как видите, всё просто. У меня ушло несколько дней на то, чтобы «въехать» самостоятельно. Надеюсь, кому-то я сэкономлю эти несколько дней. Удачи вам с Ардуино DIY и до новых встреч: я планирую ещё много с чем разобраться на базе имеющихся у меня модулей и компонентов и обязательно поделюсь с вами идеями и навыками.
Традиционно, в конце статьи — спасибо!
Большое спасибо пользователю Алексею Коротичу за присланные специально для подготовки этой статьи полезные ссылки:
Видео уроки по Arduino на Youtube
RoboCraft
Официальный сайт, мануалы
Цикл статей Ардуино для начинающих
Комментарии (91)
eta4ever
13.05.2015 12:46Добавьте что ли, пункт о том, как определить, какой порт выбирать в IDE. Ну, то есть, «Открыть диспетчер устройств, и посмотреть, какой порт появляется при подтыкании ардуйни». Для полного чайника может быть неочевидно.
AnastasiaPMP Автор
13.05.2015 12:49Илья, как раз здесь IDE рассчитан на полного чайника. Он самостоятельно выбирает порт. Этот пункт добавлен только потому, что иногда IDE не видит ни порт, ни ардуино, и тогда нужно повторить запуск программы. Собственно, всё, что нужно, это убедиться — написан ли порт «сереньким» (не выбран) или «черненьким» (выбран) В этом плане IDE дружелюбна к начинающим: она даже ошибки в коде помогает исправить, но об этом потом =)
eta4ever
13.05.2015 12:51Я, может, отстал от жизни. Но как IDE понимает, на каком порту ардуина, если портов >1? Или она как-то сама ищет? Блин, нету под рукой алвты попробовать.
AnastasiaPMP Автор
13.05.2015 12:58Честно вам скажу, меня пока рано спрашивать, «как IDE это определяет» — я не знаю алгоритма. Тем не менее, спасибо, что вы обратили моё внимание: мой скриншот не корректен. На самом деле порт только один. Во время подготовки статьи у меня была проблема с PrintScreen и картинку пришлось брать из интернета. Сейчас заменим. Спасибо, что заметили!
eta4ever
13.05.2015 13:00Так в более общем случае порт будет как раз не один. Я поэтому вам и предложил способ точного определения нужного порта.
AnastasiaPMP Автор
13.05.2015 13:02Пожалуйста, уточните, как может выглядеть «более общий случай»? У меня проблем не возникало. Или вы имеете в виду случай, когда вы подключаете более одного микроконтроллера за раз? А для чего это может быть нужно?
eta4ever
13.05.2015 13:05Ну, когда у вас в компьютере имеется один-два «родных» COM-порта. Вы подключаете ардуину, появляется еще один. В IDE надо как-то определить, какой порт выбрать.
AnastasiaPMP Автор
13.05.2015 13:17Мне эта проблема кажется немного надуманной. Я бы в этом случае посмотрела на список ком-портов до и после подключения микроконтроллера. Появился новый после подключения — он мой. Но опять же повторюсь, такой проблемы не возникает: как только IDE увидела устройство, она выбирает порт с ним сама.
eta4ever
13.05.2015 13:19«Открыть диспетчер устройств, и посмотреть, какой порт появляется при подтыкании ардуйни» — я с этого и начал :)
Я дома вечером попробую глянуть, выбирает ли IDE нужный порт при наличии нескольких.AnastasiaPMP Автор
13.05.2015 13:24Попробуйте, Илья. Если найдёте что-нибудь интересное — сделаем UPD.
iliasam
13.05.2015 14:32+1Вот что пишут на родном сайте Arduiono:
8 Select your serial port
Select the serial device of the Arduino board from the Tools | Serial Port menu. This is likely to be COM3 or higher (COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your Arduino board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port.eta4ever
13.05.2015 15:00Логично. Зачем диспетчер устройств, если можно в самой IDE посмотреть.
AnastasiaPMP Автор
13.05.2015 15:02Да нет, разные источники рекомендуют смотреть в диспетчере устройств, но по факту IDE вполне достаточно. У меня Linux, поэтому проблема была другого порядка: порт определялся крайне редко. До тех пор, пока я не понизила версию до 1.0.1 — кстати, это официальная рекомендация arduino.cc для Linux.
Alexeyslav
14.05.2015 11:17Думаю, скорей всего по VID PID подключенного девайса и его текстовому описанию, которое возвращает системе любое USB-устройство, потом по реестру определяет какой порт назначен и делов-то.
r00tGER
13.05.2015 13:10Сложно как-то все…
Тут бы видеоурок помог.AnastasiaPMP Автор
13.05.2015 13:15А так? =)
r00tGER
13.05.2015 13:26Там про какие-то шаги, много всего.
А я хочу радио собрать :)
Я к тому, что народ, иногда не хочет даже пару абзацев прочитать. Готовы потратить намного больше времени на просмотр видео.
Зато, на видео видно «куда нажимать».AnastasiaPMP Автор
13.05.2015 13:31Это хорошее замечание, хотя мне хотелось сделать именно обзор. Возможно, в будущем я попробую себя и в жанре видеообзоров. Спасибо за идею!
mbait
13.05.2015 15:42Радует внезпаное переключение с русского на английский интерфейс, а также разная оболочка на всех трех снимках.
AnastasiaPMP Автор
13.05.2015 15:43Есть такое. Print Screen у меня отказался сотрудничать, пришлось Google it =) Знаю, что это нехорошо, но без скринов было бы хуже, поэтому пока так. Позже сделаем update и выкатим новую версию.
Lovesuper
13.05.2015 16:40+2Просто берешь, и всего покупаешь по 4000р. И лучше побольше, и лучше у мастер кит.
AnastasiaPMP Автор
13.05.2015 17:06Ооооу, ну это несправедливо. Шилды можно взять любые. У меня эти потому, что я их выбрала. Критерии были простые: что-то интересное, что мне дальше будет хотеться модифицировать и перепрограммировать. Т.е. мне нужна была хорошая основа, хороший старт. Но я нигде не говорю, что выбор конкретно этих шилд — это обязательно условие для освоения Ардуино =)
Lovesuper
14.05.2015 12:37Вообще, хорошо если вы это не вы. Но почему-то в последнее время стал обращать внимание на то, что компании, которые торгуют (перепродают) электроникой первым делом умножают цену стоковой китайско-итальянской штуки на два, а потом добавляют собственный коэффициент. Получается «честная» цена, потом делают скидку на 3% на всю продукцию и вуа-ля! Лучшее предложение. Когда я сравнил цены интернет магазинов электроники (наших) и городской радио-магазин, я был просто в ШОКЕ! Какая-нибудь схемка стоит в интернетах наших 60 рублей, в реальном магазине она стоит 15р. И так везде. Видел где-то крокодильчики по 50р., хотя в магазине они стоят 3р. Это цены на дурака? Объясните, пожалуйста.
Lovesuper
14.05.2015 12:44Кстати masterkit.ru/shop/battery/converters/219261 вот такой блок, стоит 400р. Откуда цена в 900?
zabbius
13.05.2015 19:59У меня в детстве бы радио конструктор, в каждом кубике которого был какой-либо компонент. В книжке к конструктору была масса рабочих схем всяких там мультивибраторов (пищалок), радиоприемников, усилителей и т.п. А толку в итоге ноль, так как в книжке были только схемы, как собирать и ничего более. Собирать-то я собирал, а как работает все равно не понял.
Мне кажется, что для первого раза такой подход вполне годится, а вот дальше надо учить матчасть. Причем и по схемотехнике и по программированию. Иначе получится типичный конструктор «Лего»: по готовой схеме механически собрать можем, а шаг в сторону и беда.Iv38
13.05.2015 20:07+1Аналогично. Конструктор «Экон-01»:
У меня от него даже где-то pdf-инструкция валяется.
Я тоже в детстве собирал на нем схемы по картинке, совершенно не представляя, как оно работает. Это совершенно не помогло в освоении электроники. Тем более именно эта модель радиоконструктора совершенно непригодна для обучения. На ней очень сложно отойти от схемы из книжки, сделать что-то свое. Были советские конструкторы попроще, с пружинками и проводками — с ними можно было экспериментировать. Ардуино и бредборд дают еще больше свободы.zabbius
13.05.2015 20:11Да, именно он. До сих пор валяется где-то. Отдельный минус то, что нереально прочитать схему по собранным кубикам.
Iv38
13.05.2015 20:17Ага. А еще контакты справа не подписаны. Там где-то питание, где-то вход усилителя, где-то переменный конденсатор. На этом конструкторе невозможно собрать простейшую схему, вроде резистора и светодиода, подключенных к батарейке и кнопке. Ну хотя бы потому, что там нет светодиода. А еще потому, что придется напихать остальные кубики, чтобы они правильно фиксировали нужные, но сами ни в чем не участвовали. При этом мгновенно пропадает наглядность схемы. Это неплохая головоломка, но очень-очень плохой обучающий конструктор.
Iv38
13.05.2015 20:28Кстати, когда искал, где спереть картинку, нашел статью о подобных конструкторах.
Alexeyslav
14.05.2015 11:30Да, он самый. И да, потом делал на нем отличные от инструкции схемы. Жаль, не все можно было реализовать из-за ограниченного набора блоков.
Alexeyslav
14.05.2015 11:28+1Дык, тут начинает работать метод научного тыка… но видимо не каждому дано?
Я тоже начинал, были и кубики был и с пружинками даже. Сначала просто собирал по схеме, потом «а что будет если этот резистор заменить… ага, не работает… а этот… ага работает но уже не так» в это время мозг делает всю работу по систематизации полученного опыта, со временем оно само проявляется и возникает состояние которое люди называют «эврика». Главное, не делать много открытий за пол часа — это время необходимое для репликации быстрой памяти в долговременную. Иначе может переполнится буфер и все лишнее будет впустую — не запомнится. Обидно что неизвестно что отбросится, в результате в голове будет каша.
Кстати, этому правилу надо следовать и в видеоуроках — все что больше получаса может восприниматься лишь фрагментарно, в итоге пользы от урока может быть даже во вред.
RubaXa
13.05.2015 22:03Пару дней назад я познакомился с мальчиком… эээ, точнее с ардуиной (mega 2560) и с тех пор постоянно думаю о ней, а точнее о rfm73. После двух дней гугления, я в принципе понял, что подключить её нужно по SPI, нашел библиотеку rfm73 (ни примеров, ни доков, ничего), вычитал где на mega находятся mosi, miso и sck, но там помимо этого есть ещё и ce, csn и irq… и пришла тьма, как я только не пытался это настроить, пробовал другие либы (mirf и rf24), всё тлен!
Я надеюсь кто-нибудь заметит этот комментарий и напишет, что куда нужно подключить (к каким pin, что подключать), а главное скетч приема и передачи сообщений «ping» и «pong» между двумя ардуинами (mega 2560 и nano).
vvzvlad
14.05.2015 01:57к библиотекам шлются обращения.
К библиотекам. Обращения.AnastasiaPMP Автор
14.05.2015 23:09Поправьте меня, пожалуйста. Как работают библиотеки и скетчи? Я буду рада объяснению.
eta4ever
15.05.2015 00:32Если я правильно понимаю, все компилируется в итоге в одну кучу машинного кода — и скетч и библиотеки. Библиотеки нужны чисто для удобства программиста — их можно распространять, можно использовать их функции (не залезая в их код) в основном модуле (скетче).
Alexeyslav
15.05.2015 09:56Скетч — это основа программы, а библиотека это абстракция для программиста чтобы не погрязнуть в деталях. В итоге, компилятор все это сведет в одну кучу.
Можно писать вообще без библиотек, но тогда программа станет очень сложной для программиста, непонятной и с трудом поддаваться осмысленной модификации.
Janom
14.05.2015 10:27+1Я что один вместо документации к библиотекам лезу в их код?
Lovesuper
14.05.2015 12:45Документация, помогает сэкономить время входа в разработку. Если ее нет, или если нужно более глубокое погружение в работу либы — вэлком в исходники.
eta4ever
15.05.2015 00:34В код хороших библиотек с нормальной документацией лезть не надо. В этом их смысл. Но, иногда надо и расковырять.
sergei76
14.05.2015 14:10+1Поворчу тут немного :)
Извините, но статья из разряда: если и так разбираешься, просто пробежишься по ней, кивая головой, ну может какие-то мелочи новые узнаешь; а если не разбираешься, но ничего и не поймешь. Мой стаж работы с Arduino около года, более-менее разбираюсь в теме, даже обучил своего 6 летнего сына сборке схем и программированию с помощью ArduBlock. Попытался абстрагироваться от своего опыта и представить себя чайником. Лучик надежды, появляющийся на фразе «На самом деле всё просто» гаснет на фразе «У нас есть две готовых шилды на выбор». Только что ж сами написали, что в этой области (как и в любой другой) новичка пугает масса незнакомых терминов и тут же начинаете использовать один из них БЕЗ ОБЪЯСНЕНИЯ, что это такое и для чего нужно. Кстати, а почему «шилда», в женском роде? Вроде в русскоязычной среде всегда называлось «шилд», в мужском роде.
Ну понятно, что текст имеет единственную цель — продать, но imho можно было и напрячься и написать более короткое, но более последовательное и внятное «введение в Arduino».AnastasiaPMP Автор
14.05.2015 23:08Нет, тут не ворчите, пожалуйста, ворчите ТАМ. :)
Я всегда рада конструктивной критике, но вы сами пишите:
Мой стаж работы с Arduino около года
значит, статья точно не для вас и не получится при помощи вас оценить насколько легко въехать с нуля по такому изложению. Но я рада, что отзывы «спасибо, легко» — уже есть.
На счет единственной цели вы уверены, что не ошибаетесь? =)
UA3MQJ
14.05.2015 14:33+1Я вообще не люблю ардуино… Но мне нравится ключ изложения. Примерно в таком же ключе я всех агитировал за ПЛИС. Интереснее будет потом, когда без технических деталей будет не обойтись. Удастся ли сохранить легкий стиль изложения?
AlNinyo
25.05.2015 16:39+1Эх, чуть не пропустил статью. Чуть добавлю комментарий как от только что закончившего проводить пробный 1,5-месячный кружок знакомства с Ардуино.
Начинать действительно лучше с азов, которыми здесь является закон Ома и всякие последовательное/параллельное подключение. У меня на кружке были ребята 6,5-28 лет и все довольно весело жгли светодиоды (специально для того предназначенные), попутно слушая пояснения, почему светодиоды сгорают. Так мы познакомились с законом Ома и теми самыми подключениями, узнали про резистор, силу тока, напряжение, сопротивление… Причём, первое занятие было вообще без Ардуино! Там мы ещё поигрались с различными подключениями 2+ светодиодов, подключали кнопку и разбирались, что такое «ключ» и т.д… А уже на втором занятии стали моргать светодиодом и собирать прочие примеры с кнопками/светодиодами+Ардуино, не боясь спалить детали, т.к. у ребят уже появилось некое понимание того, что и куда подключать (но, главное, почему!).
Так, постепенно усложняя собираемые схемы и пробуя различные примеры кода (и стандартные, и придуманные мною) мы попробовали светодиоды, кнопки, потенциометр, серводвигатель, датчики температуры, давления и влажности воздуха, работу с экраном, пьезопищалку и прочие прелести. Т.к. весь курс был задуман именно как ознакомительный, с целью познакомить детей с Ардуино и показать, что это не сложно, то сильно в теорию мы не вдавались, но под конец ребята уже кое-что могли сами, хоть и не сильно много. Главное, они увидели и поняли, что это всё не очень сложно (хотя бы самое начало) и доступно для самостоятельного ковыряния дождливыми летними днями :)
Имхо, всегда лучше сначала понять, что и почему ты делаешь, чем делать без понимания. Удачи вам и пишите ещё!
pavlick
Ну теперь-то все стало ясно. И про всякие разные шины, и про разные уровни питания, и вообще про все ) и главное — что скрывается за всеми этими файлами, загруженными в таинственный кусочек текстолита с ножками и прочими выступающими частями )
eta4ever
Следуя идеологии, пользователю ардуины должно быть реально пофиг и на уровни питания, и на тулчейны, и вообще на все. А когда все перестает работать, надо или брать новую ардуйню, или начинать разбираться.
pavlick
тогда можно просто разобрать радио, и обратно его собрать. Будет примерно такой же эффект. Потом разобрать еще что-нибудь и тоже собрать. И, о чудо, в обоих разбираемых девайсах могут оказаться схожие детали.
eta4ever
Да, я так в детстве хотел из двух будильников один собрать. Результатом стали разбросанные по ковру шестеренки, предательски втыкающиеся в ногу, куда там кубикам лего.
AnastasiaPMP Автор
У нас с вами похожее детство в чем-то. Как-то я разобрала так дорогие папины часы. Я была очень маленькая и, пожалуй, вообще не соображала, что я делаю. Папа пришёл домой с работы и поскользнулся на деталях, громко упал. Но громко не ругался, спасибо ему.
AnastasiaPMP Автор
Мне кажется, Павел, вы не совсем поняли цель этой статьи: сразу попробовать перенести ардуино с шилды на шилду, не испугавшись сопутствующего этому страшного словосочетания «перепрограммирование микроконтроллера». В этом, если можно так сказать, цель учебного эксперимента. Также, не упускайте из виду, что это только начало планируемого цикла несложных статей для новичков.
pavlick
я не очень сильно отличаюсь от чайника в мире ардуино. И вот был у меня модуль с sd-картой, толерантный к 5v ардуине, который работает через SPI. И все было замечательно, пока не появился второй SPI-девайс. И тут вдруг оказалось, что в пятивольтовом режиме sd-модулю вообще пофиг на состояние линии cs, и он всегда считает себя активным, адекватно он на нее реагирует только при работе от 3.3v.
Вариант собери по схеме и нажми на нужные кнопки тут вообще никак не поможет, и придется менять ардуины, пока не пропадет весь интерес.
Самый же вообще сок в том, чтобы понять, почему оно вообще работает и каким именно образом, на мой взгляд
AnastasiaPMP Автор
Павел, полностью согласна:
Поправьте меня, если ошибаюсь: мне кажется, что, во-первых, нам необходимо будет понять — почему оно работает и каким образом. Во-вторых, для этого лучше будет брать не шилды, а хлебные доски и пробовать собрать простейшие схемы. Таким образом нам понадобятся:
1. навыки создания электрической цепи
2. понимание назначения пинов
3. понимание основ электроники
Это то, о чем мы начали в этом посте.
Но также эту тему я предпочла пока что свернуть, т.к. ардуино — это не только железо, но и программирование. И вот следующее, о чем, мне кажется, важнее сейчас поговорить — о том, как модифицировать скетчи сперва именно под готовые шилды.
А как бы вы структурировали «вход» в ардуино? Смело предлагайте, это может быть интересно.
pavlick
ну вообще я бы начал, наверное, даже не с нано, а с уно. Во-первых, у нее есть встроенный led, и начать можно с hello world в виде мигания лампочкой в различных вариантах. Попутно сразу начинаем работать с простейшими скетчами и начинаем вникать в пины.
Потом можно взять брэдборд и добавить какую-нибудь кнопочку. Попутно можем даже увидеть дребезг кнопки и разобраться, что не так, и как лечить. Дальше можно поиграть яркостью диодов, попутно осваиваем PWM. После этого берем какой-нибудь потенциометр и начинаем осваивать аналоговые входы, например с помощью управлением потенциометром яркостью диода в виде — ардуино определяет напряжение от потенциометра и в соответствии с этим генерит соответствующую яркость диода. Дальше можно и к транзисторам приступить и покрутить какие-нибудь моторчики, если интересно. И только после этого уже, примерно понимая, что происходит внутри, переходить к радио. А вообще, например, у амперки, хотя наверняка не только у них, есть готовые наборы, которые снабжены маленькой книжечкой, которая очень хорошо помогает быстро и без проблем въехать.
AnastasiaPMP Автор
Мой готовый набор тоже идёт с отличной инструкцией, скетчами, библиотеками — так что здесь мне пожаловаться не на что. Да, всё, что вы описали — правильно. Я посмотрела немало видео, где последовательно это всё объяснялось прежде, чем писать пост. Однако пришла к выводу, что ребёнку ли, взрослому, который хочет именно попробовать, надо сначала «дать порулить» а потом уже всё остальное.
Тем не менее, объясняете вы толково. Приглашаю вас в соавторы для будущих постов.
pavlick
А для ребенка вообще хорошо бы начать с закона Ома.
Как я уже сказал, я не настоящий сварщик, поэтому рассказать могу мало чего интересного. Пока все мои задачи сводились к тому, как заставить микроконтроллер отдавать и получать инфу другим модулям по различным шинам. А дальше просто алгоритмы обработки полученной информации и реакция на нее
AnastasiaPMP Автор
Мне нужна помощь с законом Ома. Это азы, но я пока что так и не разобралась — без них двигаться дальше не получится с хлебной доской.
pavlick
Электрический ток создается разностью потенциалов.
Закон Ома для участка цепи: I = U/R
Закон Ома для полной цепи: I = ЭДС/(R+r), где R — сопротивление нагрузки, r — внутреннее сопротивление источника, которое есть у любого источника.
При прочих равных чем больше разность потенциалов (напряжение), тем больше ток. При фиксированной разности потенциалов, чем больше сопротивление нагрузки, тем меньше ток. Не стоит забывать о том, что мощность, потребляемая резистором пропорциональна квадрату тока, и выделяется в виде тепла. И каждый резистор расчитан на определенную мощность. При превышении ее он может сгореть. В данном случае можно любую нагрузку условно заменить на резистор со своими параметрами.
AnastasiaPMP Автор
Спасибо, Павел. Это хорошее объяснение, правильное. К сожалению, я всё равно не понимаю его, как и многие другие. С самого начала:
— ну круто, думаю я. но ведь я не понимаю такого входа в материал.Например:
у меня есть батарейка. с одной стороны плюс, с другой минус. в ней есть заряд. как только я поставлю её в цепь и включу, появится… а ещё есть напряжение. их взаимосвязь я не понимаю. То есть, я понимаю что они примерно как длина, ширина и высота, только касаются не пространственных измерений, а электрического тока. Но «увидеть» всё это во взаимосвязи не могу. Отсюда и не понимаю такое объяснение, к сожалению.
uuuulala
попробуйте вот это
eta4ever
Это очень круто. В закладки, в качестве оружия ликбеза.
AnastasiaPMP Автор
Вы великолепная! Спасибо вам огромное. Я искала как раз что-то настолько простое, что действительно говорит о качестве материала.
Iv38
«Канализационная электрика» должна помочь. Вам уже не раз рекомендовали почитать на Easyelectronics раздел для новичков, но может быть там сложно найти то что нужно (проклятый Вордпресс), так что я накидаю ссылок:
Цикл «Основы на пальцах». Как раз на «канализационных» примерах:
И еще одна полезная статья, уже из курса обучения по контроллерам AVR: Устройство и работа портов ввода-вывода. Оттуда можно узнать о режимах работы портов контроллеров, а значит и Ардуино. О том, как их правильно использовать, и как можно накосячить. В конце, опять же, комикс для облегчения понимания.
AnastasiaPMP Автор
Спасибо огромное! Это потрясающий комментарий, может быть, самый лучший в треде. Буду осмысливать все присланные материалы на выходных. Кто знает, может, у меня получится расширить цикл статей по ардуино классным постом про закон Ома «для начинающих» благодаря вашим рекомендациям! Посмотрим =)
ls1
AnastasiaPMP Автор
Плохой совет. Ведь кто-нибудь его прочитает — статья же рассчитана на начинающих и детей, которым подарят что-нибудь из компонентов Ардуино. Всё то же можно проделать с мультиметром и я упоминаю об этом и, кажется, даже даю ссылку на инструкцию в этой статье.
Alexeyslav
Надо к закону Ома подходить с другой стороны. Не с напряжения начинать а с тока. Само собой, формула незыблема и работает в любой момент времени для любого участка цепи и связывает три величины: напряжение на этом участке, ток через цепь и сопротивление этого участка цепи.
В данном случае надо понимать что здесь рассматрвиается двуполюсник — т.е. у нас есть всего ДВА контакта которые мы можем наблюдать — т.е. измерить ток через них и померить напряжение между ними. Вот эти величины и входят в формулу.
Теперь вот представим что у нас сопротивление цепи постоянно — тогда ток пропорционален напряжению и наоборот, коэффициент пропорциональности определяется СОПРОТИВЛЕНИЕМ.
Точно так же можно рассуждать фиксируя напряжение или ток. Если у нас по какой-либо причине фиксировано напряжение, то ток через цепь будет зависеть только от сопротивления(согласно формуле).
Если у нас фиксирован ток то напряжение будет зависеть только от сопротивления.
Отсюда следуют практические задачи: если нам неизвестна какая-либо величина, то её можно определить измерив две другие.
Но это лишь частный случай, в реальной жизни в большинстве цепей сопротивление цепи меняется во времени, поэтому постоянно может меняться напряжение даже при стабильном токе, или ток при стабильном напряжении.
Вот взять допустим диод. на участке напряжений 0...0.5В ЕГО СОПРОТИВЛЕНИЕ существенно меняется и зависит от приложенного напряжения, сооветственно меняется и ток. Чтобы этот факт отобразить придумали рисовать ВАХ(вольт-амперная характеристика). В общем случае это кривая, наклон которой в каждой точке определяет сопротивление. Для резистора к примеру это линия проходящая через точку (0,0), для диода — экспонента и т.д.
Очень интересная ВАХ у туннельного и генераторного диода, там выходит ситуация когда одному току через диод могут соответствовать ДВА разных напряжения — в зависимости от направления движения по кривой…
AnastasiaPMP Автор
Спасибо огромное за объяснение! Я вчитаюсь подробнее на выходных вместе с этой статьей, рекомендованной выше.
ivansimonov
Анастасия, а с каких пор шилд стал женского рода, а макетка — хлебной доской? Удачи в освоении ардуинки!
eta4ever
Ну, беспаечная макетка «там» breadboard называется, так что вполне. А шилда — видимо, неологизма такая.
ivansimonov
Но мы же не там. Неологизм, кстати, тоже мужского рода :)
Я за то, чтобы не вводить в использование термины типа Лицокнига.
Тем более, когда есть русские аналоги, а не дословные переводы.
Статья для начинающих — тем важнее сразу научить их корректному использованию терминологии.
Iv38
А как правильно перевести breadboard? Макетка? Но макетка это и макетная плата. Я называю breadboard просто бредбордом. А хлебная доска — это просто шутка, как и лицокнига. Надмозг-перевод.
ivansimonov
Просто оставлю здесь: ru.wikipedia.org/wiki/Макетная_плата
https://ru.wikipedia.org/wiki/Arduino (аппаратная часть — платы расширения).
Iv38
Эти ссылки не отвечают на мой вопрос. Или мне бредборд называть «макетной платой для монтажа в гнезда»?
ivansimonov
Про монтаж в гнезда — это принципиальное уточнение? На занятиях с подростками я даю оба термина «breadboard» и «макетная плата» для того, чтобы они были в теме.
Кстати, «Как правильно перевести?» и «Как называть?» — это два разных вопроса.
Iv38
Я разделяю макетки на платы с отверстиями под пайку и бредборды. Они принципиально отличаются по технике работы с ними, поэтому хочется иметь для них отдельные термины, чтобы в разговоре сразу было ясно о чем идет речь.
Теперь по поводу перевода. Как я сказал выше, хлебная доска, как и лицокнига, это намеренно абсурдные надмозг-переводы, шутки ради (я так думаю). Бредборд — варваризм, но аналога ему в русском языке нет.
Alexeyslav
У макетной платы одно назначение — сделать макет будущей конструкции, а то что она под пайку или беспаечная слабо влияет на результат.
Как правило, макетные платы под пайку одноразовые, преимуществ у них мало поэтому называть их макетными можно только с натяжкой. Единственный плюс по сравнению с печатной платой — это легкость изменения разводки.
А у беспаечной платы огромный минус — ненадежные контакты.
eta4ever
Ну, беспаечная макетная плата — громоздко довольно. Меня, например, не напрягает излишнее количество жаргонизмов.
AnastasiaPMP Автор
По поводу макетки вам совершенно правильно ответили ниже. По поводу шилды, равно как и «ваша ардуина видит» — это всё разговорный стиль речи, замечание верное. Кэп? =)
eta4ever
Про смену ардуины я издевался как раз над теми, кто не захочет разбираться. А так — при нынешней доступности информации и желании можно бодренько и ардуину освоить, и даташит на атмегу выкурить.
AnastasiaPMP Автор
У меня сложилось впечатление, что в ардуино все как раз хотят разобраться. Просто тем много: первый импульс — не знаешь, с чего начать. Нужна методика.
pavlick
тогда начать нужно с того, что рассмотреть, что же у нас в руках, что за ножки из нее торчат, для чего они нужны, и что за черный квадратик/кирпичик на этой платке присутствует.
Наверное, если вам дадут самолет, вы сразу не залезете в него и не соберетесь взлетать. А сначала разберетесь, как же он работает, и что за что отвечает
AnastasiaPMP Автор
Не совсем подходит этот вариант и я объясню почему. Дело в том, что прежде чем она окажется у тебя в руках, надо выбрать на сайте магазина то, что нужно купить. Для меня это был первый челендж: в чем, допустим разница между микроконтроллером, компонентами и ардуино-совместимой платформой? Что куда «сажать»? Что выбрать? Я запросто могла выбрать шилду для радио, если бы выбирала сама, и взять в компоненты, допустим, реле. На этом мой эксперимент был бы, вероятно закончен.
В целом, я до сих пор так и не поняла, понравилась ли вам эта статья?
pavlick
В общем-то для этого я бы, наверное рекомендовал начать именно с готовых наборов. И потом уже дойти до радио или еще чего-то.
Я, к сожалению, не могу понять, понравилась она мне или нет — не являюсь ее целевой аудиторией. Плюс — я выполняю перечень каких-то действий и получаю какой-то результат, здорово, я могу сделать нечто с этой платкой. Но почему после моих действий получается такой результат, я не понимаю — это минус
AnastasiaPMP Автор
Спасибо за отзыв! Мне такая обратная связь именно что важна, чтобы понять, как лучше сделать дальше и оценить то, что получилось уже сейчас.
bardak_roman
Мне статья понравилась, но в ней не хватает результата. Что получилось в итоге после всех действий?
AnastasiaPMP Автор
Получилось перепрограммировать МК под разные шилды «туда и обратно», Роман. Радио продолжило работать, лампочки — мигать.
bardak_roman
я имел в виду что в статье не хватает фото или видео результата. Хотел посмотреть на супер красивый шилд в действии. пришлось перейти по ссылке с описанием и там уже посмотреть.
AnastasiaPMP Автор
Вы напрасно иронизируете, Павел. На самом деле, у меня огромное количество материала собралось за две недели. Задача была как раз в том, чтобы за полчаса человек мог полностью «пощупать» всю технологию и не сойти с ума от деталей, частностей, аспектов. Отмести всё лишнее было трудно — но я смогла =) Тем не менее, уже сейчас материал есть на несколько постов вперёд. Не всё сразу)