Orange

Первый опыт с Arduino

Уже давно я мечтал освоить Arduino. Это очень дешёвый микрокомпьютер, у которого есть 14 цифровых входов/выходов и 6 аналоговых входов. Для Arduino есть множество дополнительных модулей (датчики, клавиатуры, экраны, моторы), программы для него создаются на простом языке программирования и загружаются по USB.

Во время большой китайской халявы позапрошлой осенью я накупил по 5 центов кучу плат и дополнительных модулей. Сегодня с утра я наконец-то начал с этим всем разбираться.




Arduino UNO удобно использовать, как платформу для разработки (плата напрямую подключается к компьютеру, а все соединения выполняются без пайки проводами с разъёмами). Такая плата на Aliexpress стоит от $2.99. Когда разработка завершена, в готовом устройстве можно использовать гораздо меньшую по размерам и ещё более дешёвую плату Arduino Pro Mini, обладающую теми же возможностями. Она стоит меньше 100 рублей - $1.3.



Для меня Arduino не игрушка. Я хочу с помощью неё сделать совершенно конкретные, нужные мне устройства. Первые две вещи, которые я хочу сделать - гониофотометр и электронный ЛАТР.

Гониофотометр - устройство, позволяющее определить световой поток лампы и угол освещения. Он прокручивает мотором патрон с лампой на 360 градусов в горизонтальной плоскости, измеряя уровень освещённости в каждом положении лампы, а затем рассчитывает световой поток и угол.

Электронный ЛАТР - устройство, позволяющее получать переменное напряжение от 1 до 256 вольт с дискретностью 1 вольт. Оно пригодится для моего тестирования ламп и для регулировки скорости вентиляторов (с обычными диммерами вентиляторы гудят). Идея в том, чтобы заказать небольшой трансформатор с восемью вторичными обмотками: 1, 2, 4, 8, 16, 32, 64 и 128 вольт. Коммутируя их с помощью реле, управляемых Arduino, можно будет получать любые напряжения.


Сегодня я научился управлять шаговым мотором. Мотор 28BYJ-48 вместе с платой управления стоит всего $1.65. У него есть встроенный редуктор и он делает полный оборот за 2048 шагов или 4096 полушагов.

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

Я нашёл в интернете программу управления и схему подключения. Запустил - крутится. Научился делать циклы. Потом разобрался, как создавать функции. В результате через три часа после того, как первый раз в жизни включил Arduino, я создал функцию, которая умеет делать нужное количество шагов мотора.
Вся программа, вращающая двигатель по часовой стрелке на полоборота с паузой 200 мс выглядит так:



Конечно, предстоит разбираться ещё с очень многим, но успешное начало положено. :)

Сегодня я заказал ещё модуль двухстрочного ЖК-экрана с шестью кнопками за $2.60, пару модулей с четырьмя силовыми реле по $1.95 (есть модули и с восемью реле, но я решил, что два модуля по 4 реле удобней), четырёхкнопочную мембранную клавиатуру за $0.53, четырёхразрядный индикатор за $1.4. Ещё заказал два разных датчика освещённости за $0.4 и за $0.6, но с ними я промахнулся - они пороговые и используются для включения освещения в тёмное время суток. Но ничего, пригодятся. Заказал хитрый датчик с двумя фотодиодами и двумя АЦП за $1.75 и простенький датчик с аналоговым выходом за $0.9.


© 2017, Алексей Надёжин




Основная тема моего блога - техника в жизни человека. Я пишу обзоры, делюсь опытом, рассказываю о всяких интересных штуках. А ещё я делаю репортажи из интересных мест и рассказываю об интересных событиях.
Добавьте меня в друзья здесь. Запомните короткие адреса моего блога: Блог1.рф и Blog1rf.ru.

Второй мой проект - lamptest.ru. Я тестирую светодиодные лампы и помогаю разобраться, какие из них хорошие, а какие не очень.

Последние записи в журнале

  • Секреты налоговых вычетов

    Каждый работающий гражданин России платит государству подоходный налог - 13%. Есть семь способов, как получить обратно от государства часть этих…

  • Электронный гигрометр за 60 рублей

    Ради эксперимента заказал на Али пару гигрометров по $1 за штуку. Прибор показывает влажность и температуру. Один из двух гигрометров, увы,…

  • Рекомендую блог

    К сожалению, ЖЖ наполнен желтухой, копипастой и джинсой. Иногда создаётся впечатление, что читать в LiveJournal почти нечего. Сегодня я хочу…

  • 17000 френдов

    Сегодня количество подписчиков моего блога перевалило за семнадцать тысяч. 16000 френдов было 23 ноября 2016 года:…

  • Лучшие светодиодные лампы за полцены

    Позавчера я неожиданно оказался в магазине ИКЕА Белая дача (был поблизости и решил заехать, купить новые лампочки для тестов). Обнаружилось, что в…

  • Первый гвоздь в гроб аналогового радиовещания

    11 января 2017 года в Норвегии началось отключение радиовещания в FM-диапазоне. Скоро многочисленные владельцы автомагнитол и радиоприёмников смогут…

  • Необычные саморезы

    Из Европы, где я проводил новогодние каникулы, я привёз маааленький сувенир. Точнее 250 сувениров. :) Эти саморезы отличаются от обычных тремя…

  • Четыре месяца тюрьмы за брелок с Aliexpress

    Любые китайские безделушки со встроенной видеокамерой (ручки, часы, брелки) в России приравнивают к «специальным техническим средствам,…

  • Зачем в USB Type-C 24 контакта

    Ещё совсем недавно стандартным разъёмом для всех портативных электронных устройств стал MicroUSB, а мир уже начал переходить на новый разъём - USB…

promo ammo1 январь 1, 21:00 6
Buy for 200 tokens
Мой блог называется "Жизнь, полная впечатлений". Я не перестаю удивляться, узнавая что-то новое и сталкиваясь с тем, о чём даже не мог предположить. Сегодня я просмотрел всё, что я написал в прошлом году и выбрал то, от чего у меня остались самые сильные впечатления. 1. Я и представить себе…
Очень интересный конструктор! сам задумался о покупке частей,
Хотелось бы по подробнее про проекты...
интересует создание программируемых роботов
Конечно, с точки зрения документации и всяких примеров Arduino впереди планеты всей,... но чисто с железной точки зрения STM8 намного лучше старичка AVR AT Mega и AT Tiny, причем не намного дороже. А уж STM32 вообще космос.
Прочитал заголовок, подумал что Аммо согрешил с испанцем. Прочитал, отпустило. Грех с микросхемой за грех не считается.
"Идея в том, чтобы заказать небольшой трансформатор с восемью вторичными обмотками: 1, 2, 4, 8, 16, 32, 64 и 128 вольт. Коммутируя их с помощью реле, управляемых Arduino, можно будет получать любые напряжения."

По этому принципу работают релейные стабилизаторы напряжения. Там простейший контроллер, который управляет обмотками через реле в зависимости от входного напряжения.
А знаете ли вы, Алексей, во что вам обойдется заказной трафо с восемью обмотками? Сьем шляпу, частотник дешевле купить готовый.
А в этой программе управления степ-мотором (даже не хочу на нее смотреть) запросто могут отсутствовать необходимые дэд-таймы (пока мотор маломощный, это ничем серьезным не грозит), а вот если в программе управления релюхами будут нахлесты на временных диаграммах?
Но ход мыслей ваш верный. Надо сперва велосипед попробовать изобрести:)
ну не знаю, имхо для бытовых нужд лучше ESP8266 ничего нет. Там вообще всё банально можно сделать, покупаете вот такую штуку: http://www.ebay.co.uk/itm/Sonoff-S20-Smart-Timer-Socket-Switch-WIFI-Smart-Home-AutomationPhone-APP-Control-/172446238134?hash=item282698c5b6:g:S6cAAOSwnHZYUok2

вскрываете её, подключаете uart переходник и те датчики, что выбрали себе, заходите на сайт конфигуратора https://wifi-iot.com/, выбираете то, что конкретно хотите прошить, получаете файл, прошиваете, используете и радуетесь.
>гониофотометр

прочитал как гонево-ферометр :)))))))))

Вообще, сама АрдуиноИДЕ убогая донельзя, посмотрите в сторону Visual Studio 2015 communuty + Visual Micro - вообще красота!
А нельзя ли там какие-нибудь сделать ЦАПы, анти цапы, усилители и кроссоверы?
Это же просто рай будет для аудиофилов!
Вот реально, можно ли без пайки собрать приличный усилитель?
Классная штука! За пол года освоил и наделал для себя много удивительных вещей,аналогов которым или нет или стоят под 500 евро. Правда пришлось приобрести еще китайский 3д принтер,что бы получить готовый продукт.И в паре они творят чудеса))
Есть конечно всякие там stmы и пр.Но ардуинка справляется с большинством задач,и не требует особого вникания в дебри электроники. Да и в сети полно примеров,и особенно на буржуйских сайтах.
Какой удачный пост. У меня сейчас в корзине на али как раз лежит кучка шилдов и ардуина для изучения.
Вопрос: почему у вас UNO с USB TYPE B штекером, а не с microUSB? На последние ведь кабель легче найти.
Буду внимательно следить за обновлениями!
Сам купил на Новый Год ребёнку arduino uno
Хочу приобщить к программированию через S4A или ardublock
Пока что сам разбираюсь, оказалось не так элементарно :))))))
Крутень!
Как раз сегодня весь день пытаюсь понять как это работает:
https://www.youtube.com/watch?v=Xy3gGOXdEFQ
И тут ваш пост - спасибо!

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

На первой картинке сам Arduino UNO + еще модуль между мотором. Он как называется?
Спасибо!

Edited at 2017-01-09 20:28 (UTC)
Re: Крутень!
В тексте ссылка есть на комплект мотора с платкой. Платка на ULN2003, это просто набор транзисторных ключей. Удобнее, конечно, управлять драйвером на таймере NE555, ардуинка даже не нужна.
https://au.pinterest.com/explore/stepper-motor-arduino/
Там дофига.
Во, хорошая тема. Тоже планирую со временем заняться. Так что, желаю побольше творческого зуда ;) и желания делиться достижениями с братьями и сёстрами ;)

Датчик освещённости выглядит аналогично 4-х контактному с аналоговым выходом; возможно, отдельным проводом можно самому подпаяться.

> Идея в том, чтобы заказать небольшой трансформатор с восемью вторичными обмотками: 1, 2, 4, 8, 16, 32, 64 и 128 вольт. Коммутируя их с помощью реле, управляемых Arduino, можно будет получать любые напряжения.

Тогда я б посоветовал цеплять нагрузку через одно хорошее мастер-реле, а коммутацию выполнять релюшками подешевле, размыкая мастер-реле на время коммутации. Это чтобы поменьше изучать на личном опыте, чем бывает плоха ЭДС самоиндукции.
Можешь часы со стрелками сделать какие нибудь оригинальные. Например отдельно часовые, секундные и минутные.
Ардуино - это нихрена не интересная игрушка с беззащитными входами и выходами и убогой IDE. Она лишает человека многих удовольствий (и денег):

1. Оптимальный выбор камня.
2. Проектирование схемы.
3. Разработка платы.
4. Сборка.
5. Программирование камня на чистом С со своими собственными библиотечками, оптимизированными до последнего бита и не жрущими память.
6. Работа без всяких IDE, с обычной командной строкой и простым текстовым редактором.

Один мой знакомый ассемблеродрочер написал программу простых часов на С, которая сожрала всю память в камне. Не помню, каком, но не на самом слабом. Я сказал ему: а нахера ты используешь библиотечную функцию printf? Ее код весит под целый кБ. Он мне: а как же иначе? Я ему снова: чтобы вывести две цифры, двоеточие и еще две цифры, тебе нужна printf? Да, бля, напиши свою функцию, которая делает ровно то, что должна, она будет весить байт сто, а то и меньше.

Потом до меня дошло, что чувак меня просто не поймет. Чтобы понять, что язык C это не библиотечные функции, а операторы и скобки, и что большинство простых действий можно совершать без танцев с бубном, нужны чуть более основательные знания, чем могут быть у любителя и дилетанта.

Кстати, тот же чувак, в принципе, способный парень, но не очень подкованный, написал на ассемблере прошивку для своей разработки, которая выпускалась промышленно. Радовался, что "все летает". Естественно, пошли пожелания от потребителей изменить то-то и то-то, добавить/убавить фичи и т.д. В общем, обычная техническая подержка. А чувак практически ничего в своем коде изменить не может!!! АААААААА!!!! Он никогда не слыхал о такой штуке как функциональная декомпозиция и весь его проект был похож на лапшу. Ваял, ваял, а потом за репу схватился. Изменения оказались практически непосильными даже для самого автора. Вавилонская башня. А понтов, понтов-то было! Железо у него, кстати, тоже было сделано на рассыпухе. Шина I2C демультиплексировалась хуевой тучей (бедные монтажницы!) из smd транзисторов и сопротивлений, хотя есть специальные интерфейсные микросхемы для этого. Поэтому у него (точнее, у потребителей) дорожки и горели при малейшей ошибке, что разведены были с пиздий волос, на плате попросту катастрофически не хватало места. А плату, между прочим, разводил чувак с дипломом, но знающий еще меньше, чем наш одаренный и преисполненный бурной энергией левша эдисонович кулибин. Все, что чувак с дипломом рассказывал о годах своей учебы было то, что у них в институте в туалете говно застывало колом и торчало из толчка. Поэтому он, в частности, не знал, что двухтактная схема преобразователя ограничена на практике мощностью в 200-300 Вт, а для 1.5 кВт нужен мост, и никак иначе. Наипал директора и наполнил ведро битыми мосфетами, (каждая пара по тыще с лишним целковых). Это только малая толика всей клоунады, которая мне известна.

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

К чему это все? К тому, что байда наподобие Ардуино убьет любого инженера в зародыше, будь он семи пядей во лбу от рождения. Перед ним не стоит ни одной проблемы, а все подсказки и советы. Как в песне:

Блядь привел Иван Иваныч
Раздевал Иван Степаныч
Направлял Иван Фомич
А палки клал Иван Кузьмич
Автомат для полива растений, для кормления рыбок и вкл выкл света в аквариуме, переключения программ для телевизора по заданной программе, сигнализация для дачи или квартиры с отправкой смс и еще много чего
Всем кто хочет купить такую игрушку в подарок своим детям советую на том же али прикупить набор различных датчиков, что позволит изучать физические явления и проводить различные опыты