
- Цена: $35.15
Душу всегда тянуло к разного рода самодельным устройствам и механизмам, поэтому arduino-конструктор как раз подходил мне по соотношению необходимые знания/результат. Спросив, как-то тут на сайте совет о первом наборе, emc-problem подсказал взять этот, как самый подходящий («Всего этого вам хватит как минимум чтобы понять «ваше оно или нет» — вот ключевые слова), подкупило и наличие ArduinoMega.
Ограничил себя бюджетом в 4000 руб. и сделал заказ:


вся эта мелочевка может и не обязательна для начинающего, но в моей голове уже были некоторые идеи и для их реализации взял всё сразу
Далее был месяц ожидания, далее отпуск и катастрофическая нехватка времени для изучения чего-то нового.
Изначально идеи делать обзор не было, поэтому фото разложенных деталей нет, только видео с распfковкой, откуда я и выдрал этот скриншот, чтобы показать как упаковано (глубина коробки 5см)


каждый значимый элемент в отдельном антистатическом пакете
Пора бы приступить к испытаниям конструктора, но не могу ни сказать, что по совету, взял про запас пару блок питания(стабилизации), т.к. планировал питать всё со стороны, а не только по USB. Из описания (где-то в интернете) нашёл, что входное напряжение до 12V преобразует в стабильные 5V/3,3V, однако, подключив к нему питание китайской пьезоиспарялки (12V), а лицезрел пшик конденсатора и ощутил приятный аромат в комнате.
как я понял, то ли мои 12V были далеко не 12, то ли информация в интернете меня подвела. В общем, пришлось покопаться поглубже в кладовке и найти таки 9V блок питания. Не зря брал два таких стабилизатора, со вторым и 9V напряжением всё нормально работает.
Ну а теперь начнем немного разбираться, что и как:
Для начала, надо скачать и установить программу ARDUINO 1.6.x (бесплатно официального сайта). Тут, забегая вперед, добавлю, что программа местами глюченая (v.1.6.5) и порой скетч не заливается(ошибка), а приходится просто заново открывать программу и тогда всё нормально.
Далее подключаем свою arduino(в моём случае Mega) к usb порту и качаем драйвер (в моём случае, ссылка на драйвер была прям на странице заказа). Но и тут без приключений не обошлось: драйвер не имеет цифровой подписи и из вод нормальной Windows он не ставится (только через дикие танцы с бубном, но у меня и они не привели к успеху), поэтому в интернете так и пишут, что есть способ просто загрузить Windows без проверки цифровой подписи драйверов, так я и сделал (F8 при загрузке ОС и нажать, как у меня на картинке)
В этом режиме проблем не возникает.
Я решил не изобретать велосипед и для начала повторить примеры с сайта амперка с раздела «Мини-проекты с Arduino», там же почитал теорию и про язык программирования.
Я покажу уже готовые примеры без детальных описаний и, с Вашего позволения, сами скетчи прикладывать не буду, т.к. не вижу смысла столько информации дублировать и делать кучу сполеров с кодом.
Чтобы всё не юлозило, я прикрутил arduino mega и макетную плату к остатку столешницы, пока не определю нормальное место для экспериментов.
Пример 1 «Маячок»
Простое мигание светодиодом, подключенным через резистор (чтоб не сгорел быстро).
Пример 2 «Маячок с нарастающей яркостью»
Изменение яркости светодиода от нуля до максимума (скачками).
Пример 3 «Светильник включаемый кнопкой»
Тут я уже подключил, указанный раньше стабилизатор питания на 5V и соединил его с портами питания Arduino, все дальнейшие примеры, будут питаться по этой схеме.
Пример 4 " Светильник с управляемой яркостью"
Управление яркостью при помощи потенциометра или кнопкой
Пример 5 " Терменвокс"(пищалка)
Осторожно, мерзкая пищалка в видео!
Тут суть в том, что после звукового сигнала, надо нажать любую из кнопок:
Пример 6 «Бегущий огонёк»
Пример 7 «Секундомер»
Пример 8 «Счетчик нажатий»
Пример 9 «Ночной светильник»
Лампа регулируется либо от датчика освещенности, либо вручную.
Пример 10 «Включение светодиода от датчика дистанции»
Включение светодиода при дистанции менее 10 см
Включение светодиода при дистанции менее 10 см и лазера при менее 5 см
Можно сделать лампу, включаемую/регулирумую взмахом (вот только перспектива, что этим сможет пользоваться мой кот меня слущает)
Т.к. помимо основного набора Arduino я заказ ещё и модуль bluetooth (далее BT), то я начал искать способы реализовать беспроводное управление. В интернете я наткнулся на интересную программу/ресурс «remote xy» с помощью которой легко визуализировать кнопки управления на смартфоне, приобрел платную версию (я уже не помню точно какие ограничения в бесплатной, вроде длительность в 30 секунд). На их сайте в редакторе создаем визуально кнопки, загружаем библиотеку, получаем код.
следующие примеры уже с её использованием. Первые примеры простые и на сайте есть примеры их повторения, сюда их код не буду копипастить.
Я использую ArduinoMega, поэтому подключил BT к порту serial1, чтобы не мешало заливать скетчи.
Пример 11 «Кнопка по BT»
Пример 12 «Сервопривод по BT»
Пример 13 «Отображение температуры по BT»
Пример 14 «RGB светодиод по BT»
К моему величайшему сожалению в программе не было готового метода управления RGB светодиода, меня это поразило. Пришлось делать самому, подглядывая в чужие примеры
с учетом, что я в этом деле профан, для меня это была просто победа
Пример 15 «Управление турелью с дальномером»
Тут я собрал устройство, которое управляется с телефона и показывает дистанцию. К сожалению, сервоприводы я толком не настроил (я так понимаю, это отдельная песня), поэтому рывки и т.п. Дальномер тоже точностью не блещет, тут всё просто для наглядности.
Сервоприводы слабые и тот, что в основании, никак не хотел удерживаться на платформе (при кручении слетал), пришлось использовать клеевой пистолет с фикспрайса, дальномер крепил также. Можно вместо дальномера поставить лазерный модуль (и получить дистанционный лазерный целеуказатель.
/////////////////////////////////////////////
// RemoteXY include library //
// use ANDROID app version 3.2.1 or up //
/////////////////////////////////////////////
/* определение режима соединения и подключение библиотеки RemoteXY */
#define REMOTEXY_MODE__SERIAL
#include <RemoteXY.h>
/* настройки соединения */
#define REMOTEXY_SERIAL Serial1
#define REMOTEXY_SERIAL_SPEED 9600
/* конфигурация интерфейса */
unsigned char RemoteXY_CONF[] =
{ 2,11,56,0,3,5,4,160,13,4
,84,9,1,4,32,1,0,9,61,1
,67,4,25,34,52,14,7,11,129,0
,22,22,65,9,7,208,148,208,184,209
,129,209,130,208,176,208,189,209,134,208
,184,209,143,44,32,209,129,208,188,0
};
/* структура определяет все переменные вашего интерфейса управления */
struct {
/* input variable */
signed char slider_1; /* =-100..100 положение слайдера */
signed char slider_2; /* =-100..100 положение слайдера */
/* output variable */
char text_1[11]; /* =строка оканчивающаяся нулем UNICODE */
/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */
} RemoteXY;
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
#include <Servo.h>
#define Trig 10
#define Echo 11
Servo myservo1;
Servo myservo2;
void setup()
{
RemoteXY_Init ();
// TODO you setup code
myservo1.attach(8);
RemoteXY.slider_1 = 0;
myservo2.attach(9);
RemoteXY.slider_2 = 400;
pinMode(Trig, OUTPUT); //инициируем как выход
pinMode(Echo, INPUT); //инициируем как вход
Serial.begin(9600);
/* задаем скорость общения. В нашем случае с компьютером */
}
unsigned int impulseTime=0;
unsigned int distance_sm=0;
void loop()
{
RemoteXY_Handler ();
// TODO you loop code
// use the RemoteXY structure for data transfer
int ms1 = RemoteXY.slider_1*20+1500;
myservo1.writeMicroseconds(ms1);
int ms2 = RemoteXY.slider_2*20+500;
myservo2.writeMicroseconds(ms2);
digitalWrite(Trig, HIGH);
/* Подаем импульс на вход trig дальномера */
delayMicroseconds(10); // равный 10 микросекундам
digitalWrite(Trig, LOW); // Отключаем
impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса
distance_sm=impulseTime/58; // Пересчитываем в сантиметры
dtostrf(distance_sm, 0, 1, RemoteXY.text_1);
}
К сожалению, оказались потерты скетч на RGB-светодиод и остальные, хотя я точно менял файлы сохранения…
Пример 16 «Управление розеткой»
Главное: соблюдаем технику безопасности.
Я для соединения проводов использовал клемники Wago.
Остальные сенсоры я проверить не смог, т.к. они не распаяны, а паяльник ещё только едет. Возможно, будут ещё обзоры, но не факт.
Вывод
Мне данный набор понравился. Можно реализовать много интересных идей, я, чуть позже, собираюсь сделать таймлапс с управлением по BT для своего фотоаппарата Sony Nex5-N(на который и снимались все фото/видео), а то после обновления даже китайский пульт к нему работать перестал. Есть еще идея собрать простенький тахеометр с сервоприводами(хорошими), но надо ещё переварить основы, тут всё ограничено только фантазией. Огромное количество времени уходит на копание интернете в поисках нужных примеров, русскоязычных хороших сайтов по ардуиньке с большой базой примеров я так и не увидел (хоть самому создавай), что сильно затормаживает.
Своим обзором я не то чтобы хотел напрямую поделиться удачной покупкой или похвастаться своими корявенькими проектами, сколько хотел бы порекомендовать людям не бояться реализовывать свои идеи в жизнь, а с подобными конструкторами это становится чуточку легче.
Всем добра!
(c) 2015 Источник материала.