воскресенье, 13 марта 2016 г.

Проект «Телеграфный маяк» на  Arduino…

Как только мы не используем нашего верного помощника  Arduino! Это самые разнообразные проекты: от домашней метеостанции до автоматической установки для полива растений. Проектов с каждым днем становиться все больше (не говоря уже об идеях). А не пора ли и нам сделать проект на  Arduino, чтобы он был связан с радиосвязью?

А почему бы и нет? Меня давно уже притягивала тема радиолюбительских маяков. Уже давно освоен WSPR, но хочется что-то более простого: не требующих больших затрат и самое главное включение компьютера. Идеально подойдет здесь радиомаяк, который будет работать независимо от компьютера, но тем не менее будет посылать сигналы CW. Конечно можно сделать простейший мультивибратор, который и будет «пищать». Но это не так интересно…
А почему не создать на базе  Arduino автоматическое устройство, которое будет отправлять в эфир морзянкой вполне осмысленный текст, например такой: «CQ RN6LLV/B CQ RN6LLV/B CQ pse K K K». То есть маяк дает общий вызов и сообщает что это маяк «/В». Хотя можно конечно передавать и прямым текстом: CQ RN6LLV CQ bacon. Ну с текстом можно еще поработать, главное как научить плату  Arduino передавать морзянку?


Что будет лежать в основе алгоритма? Делаю первое приближение: создаем сигналы на определенном пине разной длительности. Скажем точка будет иметь длительность 200 мс, а тире 600, паузы между буквами продолжительностью точки, между словами продолжительностью тире. Тут нам поможет команда delay.  Ну и конечно придётся программировать отдельными функциями (они будут работать как подпрограммы) на отдельные фразы: CQ, RN6LLV/B, PSE K K K.

Начинаю программировать. Пока что будем делать симулятор: то есть пока вместо передатчика будет мигать светодиод (передавая точки и тире), ну и чтобы было не совсем скучно подключим еще и пьезоизлучатель, так что в итоге мы еще будем и слышать точки и тире. Схема получилась простейшей, а вот скетч… В смысле скетч тоже несложный, но довольно длинный. Но тем не менее отлично работает (загрузить скетч можно с яндекс диска здесь).. Провожу первое включение и тест: работает! Передает морзянку звуком и светодиод мигает в такт приходящим точкам и тире.

Далее в проекте радиомаяка я заменю светодиод на оптрон, который и будет уже заставлять простейший телеграфный передатчик выдавать морзянку в эфир. Причем этот передатчик будет выдавать минимальную мощность, порядка 100-300 милливатт, что вполне будет соответствовать QRPP мощности. Так что пора переходить ко второму шагу: это спаять схему такого передатчика.
Большое спасибо дорогим коллегам клуба QRP (RV3MP es R2AJA) за помощь и консультацию по коммутации передатчика и платы ардуино. Впереди у меня еще много работы, так что еще будет о чем еще написать. 

суббота, 12 марта 2016 г.

Имитация горения свечи…

Всем моим читателям большой привет. Продолжаю осваивать удивительный мир микроконтроллеров Ардуино. На этот раз появилась идея реализовать мигание светодиодов в более менее интересный проект, который так же будет использован в будущем проекте «Умный ночник». Но пока что будем идти вперед, и как говориться начало пути это первый шаг. А первый шаг как раз и будет решением задачи – сделать так чтобы светодиоды мерцали, таким образом, чтобы это напоминало горение свечи…

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

А теперь от идеи пора переходить к практической реализации, а точнее алгоритму работы светодиодов. Он оказался таким простым, благодаря оператору случайных чисел. Вот попробуйте сами разобраться как будет работать такая строчка кода: analogWrite (led_red, random(120) + 135); на самом деле все просто: с помощью команды analogWrite на вывод (который может генерировать ШИМ, это могут быть пины с номерами: 9, 10, 11) будет подаваться напряжение от 0 до 5 вольт благодаря генерации случайных чисел от 135 до 255). Полный скетч привожу ниже:
int led_gel1 = 9; // желтый светодиод
int led_red = 10; // красный светодиод
int led_gel2 = 11; //желтый светодиод
void setup()
{
  pinMode (led_gel1, OUTPUT);
  pinMode (led_red, OUTPUT);
  pinMode (led_gel2, OUTPUT);
}

void loop()
{
  analogWrite (led_gel1, random(120) + 135);
  analogWrite (led_red, random(120) + 135);
  analogWrite (led_gel2, random(120) + 135);
  delay (random(100));
}
Как видите все действительно просто. Собираю схему пока на макетной плате, и проверяю. В целом все работает, но чтобы действительно получить эффект горящей свечи, светодиоды я поместил в полупрозрачный пластиковый колпачок (от использованной жидкости для полоскания рта). Под полупрозрачным колпачком светодиоды действительно зажигаясь напоминали горение свечи. Но особо эффективно смотрится конечно же ночью.


Какие планы на будущий проект «умный ночник»? Конечно же сделать его автоматическим и многорежимным. Автоматически он зажигает светодиоды в режим «свечи» при низком уровне освещения, тут конечно же понадобиться фоторезистор. Так же можно сделать управление с пульта: включением дополнительной подсветки (здесь уже с помощью реле можно включить мощную нагрузку, например светодиодную ленту).  Как говориться идеи есть, теперь можно постепенно их начинать реализовывать. 


четверг, 10 марта 2016 г.

Корпус для платы Arduino Uno...

Те кто серьезно занимается Arduino наверняка сталкивались с небольшой проблемой: как закрепить плату Arduino Uno, чтобы при создании прототипа схемы не повредить плату (или скажем случайно не замкнуть там контакты на плате)??? Конечно можно плату разместить на столе и не заморачиваться разными корпусами. Но раз есть корпуса, почему бы не попробовать их использовать на практике.


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

Корпус для  Arduino Uno основательно продуман (есть все необходимые отверстия под болты и крепеж, вырезы (для доступа к разъемам и пинам). Материал прозрачный акрил, довольно прочный. Все детали корпуса поставляются заклеенными с двух сторон защитной бумагой, которую снять что называется помощью ногтей практически невозможно. Есть более простой и быстрый способ: нужно иголкой проколоть защитный бумажный слой, слегка ввести ее внутрь и затем просто осторожно приподнять вверх и немного на себя. Защитная пленка легко отклеивается и дальше ее просто не спеша отклеиваем от акрилового корпуса. На все про все у меня ушло пять минут.  А вот на сборку ушло минут 15...

Конечно корпус для платы  Arduino Uno весьма нужен. Это защита и от механических повреждений, да и от случайных замыканий контактов тоже. А еще плата в прозрачном акриловом корпусе смотрится очень даже здорово. конечно же туда (в корпус) кроме самой платы  Arduino Uno больше ничего нельзя поместить (тот же самый шилд). Но с другой стороны это и не важно, так как на корпусе есть все необходимые вырезы для доступа к кнопке перезагрузке, разъемам питания и конечно же пинам.

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



воскресенье, 6 марта 2016 г.

Ардуино: управляем ПДУ мощной нагрузкой

Всем привет! Очередной урок по ардуино. На этот раз давайте будем разбираться с подключением релейного модуля. А так же попробуем после успешного подключения управлять с помощью реле мощным устройством. До этого мы работали со светодиодами, а теперь вместо них можно управлять мощными нагрузками. Пришлось поискать что-то мощное и доступное, нашел лампочку на 12 вольт от новогодней гирлянды, которую мы и подключим к реле. Ой я же забыл самое главное: не рассказал, что у меня появился новый модуль. Пришла как всегда посылка из Китая. Что и как можно посмотреть в видео – распаковка…

А теперь давайте перейдем к делу. На сом деле у меня не простой релейный модуль, он еще с оптроном. Это хорошо, так как получается что-то вроде дополнительной развязки. Но вот как все это дело теперь подключить, вот в чем и предстоит нам разобраться. Новый проект делать не стал, так как уже есть проект «Управление включением светодиодами с помощью ИКпульта». Так что можно теперь вместо одного из светодиодов подключить реле.

Оказывается, что подключить релейный модуль проще пареной репы: там три контакта (правда еще два замкнуты перемычкой –оставил их как есть – замкнутыми). Далее все просто: три контакта один из которых подключаем к земле (GND), другой на питание 5 вольт и один сигнальный можно подключить параллельно к плюсу любого светодиода. Включаю релейный блок приветливо зажег светодиод на плате – значит все работает.

Теперь наступает торжественный момент: жму кнопку на пульте и … Слышен характерный звук срабатывания реле – щелчок! Есть контакт! Тут же зажглась и 12 вольтная лампа, запитанная от свинцового аккумулятора. Так же светиться и светодиод, к которому я и подключил сигнальный провод ведущий к релейному модулю. Все работает прекрасно.  А теперь как всегда видео которое наглядно покажет все в работе.



Теперь нужно решить еще одну задачу: как все это можно теперь использовать с максимальной отдачей? Вот где еще придется поломать голову. Ведь с одной сторону нужно придумать проект, потом все оформить (в смысле написать программу для ардуино, да и продумать корпус для размещения всех компонентов). Ну и потом уже реализация. Пока что у меня такая идея сделать «умный ночник» которым можно управлять с пульта (включением, управлением режимами и выключением). 


Скажем два режима: режим полного автомата (в этом случае горит зеленый сигнальный светодиод, а ночник активирует реле когда в комнате будет темно, то есть датчик в данном случае будет фоторезистор), второй режим ручной (горит желтый светодид, ночник активировался и зажег дежурное освещение, но через каждый час реле пару раз заставит мигнуть дежурную лампу, и если в течении двух минут не было активности (нажать на ПДУ определенную кнопку) то свет выключается. Но это пока так идея или первое приближение. Еще подумаем как улучшить….

пятница, 4 марта 2016 г.

Музыкальная «пыточная» шарманка или осваиваем пьезоизлучатель...

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

Предыстория, или как хотите вступление, ведет в те детские годы, когда мы пробовали без всякой подготовки «поиграть» на разных инструментах. В итоги обычно удавалось из разных инструментов (например гитары или пианино) извлекать разные ноты, которые в своем наборе напоминали не музыку а дикую каксофонию. А вы знаете что и наш ардуино тоже так умеет? И даже больше: гораздо лучше и интереснее! А вот теперь давайте и приступим к делу…
Начнем со схемы. Все настолько просто, что даже на этот раз мы обойдемся без ее рисунка. Просто подключите наш пьезодинамик (но с соблюдением полярности – посмотрите где у него «плюс» и соответственно плюсовой вывод мы подключим к 7 пину на плате ардуино, а другой на землю) прямо к плате ардуино. Все просто не правда ли? Теперь давайте освоим новый оператор…

Оператор tone как раз и позволит получить звук определенной частоты и длительности. По сути все что нужно это просто прописать: tone (номер пина, частота Гц, длительность мс,); чтобы все наглядно показать, давайте сделаем чтобы на 7 пине генерировался сигнал с частотой 770 Гц продолжительностью в полсекунды. Да нет ничего проще: tone (7, 770, 500);
Думаю, что слушать тон одной и той же частоты да еще одинаковой продолжительности вряд ли заинтересует нашего любопытного читателя. А давайте сделаем так чтобы все параметры постоянно менялись. А вот тогда мы получим «музыкальную шкатулку» в которой будет издаваться самые разные звуки причем разной длительности. Для этого воспользуемся специальным оператором генерации случайных чисел: random (300, 800); С этим оператором еще проще: он просто будет генерировать случайным образом числа в указанном в скобках диапазоне. Таким образом будет меняться тональность (скажем от 300 до 800 Гц) и длительность (от 200 до 400 мс). Конечно вы можете потом сами поменять размах этих задаваемых значений тона и длительности и посмотреть, что из этого вышло.  А теперь сам скетч:

int spek=7;
long res=300;
long sef=300;
void setup()
 {
   pinMode (spek , OUTPUT);
}

void loop()
 {
  res=random (300, 800);
  sef=random (200, 400);
tone (spek, res, sef);
delay (400);
}



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