пятница, 16 октября 2015 г.

Bicolor LED matrix 1588ABEG-5

Матрица 1588ABEG-5 досталась со стартовым набором. Странно, но найти на нее даташит в интернете не удалось, возможно маркировка неправильная. Пришлось взять типовую схему управления и прозвонкой найти нужные пины, благо они расположены не хаотично.
Вот полученная распиновка:
Чтобы собрать ее на макете традиционным способом, по-хорошему надо соединить две макетные платы, иначе к матрице некуда подключать провода - матрица закрывает всю ширину макетки. Но так как я покупал платы в разных магазинах, они оказались не вполне совместимы по боковым соединителям.
Выход, тем не менее, нашелся - пригодился набор перемычек:

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

четверг, 21 мая 2015 г.

Новый паяльник

В прошлой итерации я прошел путь от паяльника "с деревянной ручкой" до почти что паяльной станции в советском исполнении. И в принципе был доволен - жало достаточно тонкое, сам паяльник легкий и удобный, только ручка греется. Заземление жала предусмотрено.

Посмотрел, что сейчас паяют уже совсем не так, тоже захотел попробовать. Для старта есть отличная статья с описанием вариантов и отличий: http://easyelectronics.ru/traktat-o-payalnikax.html. Понял, что станция мне ни к чему, а из просто паяльников GOOT PX-201 - лучший выбор, но цена, а особенно цена сменных жал, крайне удручила. Зашел с другой стороны - самые распространенные жала - HAKKO , и дешевых предложений пруд-пруди. Дальше сам паяльник. По статье сделал вывод, что нужен керамический нагреватель, мощность от 40Вт и термостабилизация. На али нашел вот такое синее чудо: http://www.aliexpress.com/item/Pro-60W-220V-Electric-Adjustable-Temperature-Welding-Solder-Soldering-Iron-Tool/1774178553.html. В отзывах увидел, что жала 900M-T-*** подходят, цена приятная, надо брать. Так же, помня, что комплектное жало-иголка никуда не годно, взял набор: http://www.aliexpress.com/item/10PCS-Replace-Lead-free-Solder-Tip-Soldering-Rework-Station-Tool/1904024755.html.
Попробовал паять - вроде нормально, держать удобно, греет неплохо, температуру выставил 250 градусов, как советуют для сбережения жала. Попробовал второй раз - не паяет вообще, вроде нагрелся, но припой не плавит. Подкрутил температуру на 275 - вроде получше стало, но жало потемнело и припой не держится вообще. Подумал, может навык потерял, попробовал старый добрый, с деревянной ручкой - нет, все в порядке, паять не разучился.
Начались эксперименты с новомодным паяльником. Убедился еще пару раз, что новое жало какое-то время позволяет паять нормально, а потом как будто облезает, и покрывается окислом, который плохо тепло проводит. Понял, что от жал за 5 баксов десяток не стоит ждать, что это будет настоящее современное "необгораемое жало". Облудить по новой их не удалось, как ни старался, они из неизвестного металла, совсем не похожего на медь. Ладно, сделаем шаг назад к старым технологиям, попробуем обычное медное жало. Предложений медных жал сильно меньше, стоят они втрое дороже, и отзывы о продавцах плохие. Но все-таки заказал, и через два месяца получил: http://www.aliexpress.com/item/Free-shipping-10-Pure-copper-soldering-iron-head-900MT-D2-4-High-precision-welding-nozzle-electric/1776502912.html. Форму D2.4 выбрал по рекомендации все того же DI HALT.
Медное жало заработало куда лучше блестящего, но подозрительно быстро почернело. Наконец, догадался померить температуру термопарой, взяв самый дешевый мультиметр с возможностью измерения температуры DT 838. Тут то и выяснилось, что цифры на крутилке паяльника совсем никак не бьются с реальностью, и пользовался я диапазоном от "300 с лишним" до "сильно за 300", а регулировка от 200 до 300 находится в зоне, размером в миллиметр, в районе отметки 200 на паяльнике. Но регулировка по термопаре выявила следующую проблему: никакой термостабилизации в паяльнике не обнаружилось, только тупая регулировка мощности. Поэтому греться до рабочей температуры он стал пять минут, и при касании места пайки заметно терять температуру. В общем, работать - работает, но радости пользование им не доставляет.
Посмотрел еще раз на GOOT PX-201 - жаба все еще душит. Стал искать паяльник с настоящей термостабилизацией, но под все те же жала HAKKO, которых скопилось уже двадцать штук, разной степени испорченности. CT-96/CT-2092 по разумной цене в продаже есть, и стоят недорого прямо в Питере, но жала там не совместимые. Потом наткнулся на ресурс http://mysku.ru/, где паяльников описано довольно много, и обращается внимание на честность термостабилизации. Причем отзывы к обзорам зачастую полезнее самих обзоров. В итоге остановился на Atten AT-SS-50 http://www.aliexpress.com/item/Soldering-Iron-gun-Soldering-Iron-220V-50Watt-AT-SS-50/1156412828.html.
По работе - гораздо лучше "синего". Не такая удобная ручка, легче обжечься о горячую железку, менее гибкий провод, но паяет куда лучше. Наученный прошлым опытом, померил температуру термопарой. Расхождение с цифрами на регуляторе есть, но константное, надо просто учитывать поправку. И хорошо видно, что регуляция отрабатывает довольно быстро.

понедельник, 13 апреля 2015 г.

Servo SG90

Попробовал, что такое servo, в применении к ардуино. Вот простая и понятная статья: http://wiki.amperka.ru/%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0:%D1%81%D0%B5%D1%80%D0%B2%D0%BE%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4%D1%8B.
Заранее почитав про управление моторчиками, обзавелся специальным шилдом Motor Drive Shield Expansion Board L293D (http://www.ebay.com/itm/170910733083). Как я понял, это китайский клон шилда от AdaFruit https://learn.adafruit.com/adafruit-motor-shield.

Кратко про сам шилд: на UNO он садится настолько плотно, что низ платы упирается в разъемы. И создается впечатление, что один из контактов мотора будет коротить на корпус USB. На всякий случай наклеил бумажку. Также важно, что шилд не проходной, больше ничего прямо на контакты ардуины не подцепить. Можно его ставить последним в "пироге", но в принципе, смысл этого шилда чисто обучающий, в готовом изделии можно просто повторить часть его схемы для реиспользования отлаженного кода.


Даташит на серво: http://datasheet.sparkgo.com.br/SG90Servo.pdf. Самое интересное там - "can rotate approximately 180 degrees", что сразу намекает на игрушечность.
Подключается серво к одному из двух трехпиновых разъемов. Никакой хитрой схемы за ними нет, пятивольтовое питание и выходы 10 и 9 с ардуины напрямую. Пины на плате подписаны, соответствие по цветам описано в даташите.

Код взял из вышеупомянутой статьи, увидел, что крутится машинка реально быстро, немного дописал, чтобы попробовать вращать плавно.
Результат:
#include <Servo.h>

Servo myservo;

void setup()
{
  myservo.attach(10);
}

void loop()
{
//  myservo.write(90);  // устанавливаем сервопривод в серединное положение
//  delay(500);
//  myservo.write(0);  // устанавливаем сервопривод в крайнее левое положение
//  delay(500);
//  myservo.write(180);  // устанавливаем сервопривод в крайнее правое положение
//  delay(500);
int i;
  for (i=0;i<=180;i++)
  {
    myservo.write(i);
    delay(100);
  }
  for (i=180;i>=0;i--)
  {
    myservo.write(i);
    delay(100);
  }
}
Надо отметить, что точность у этой игрушки невелика, крайние положения могут оказываться немного в других местах в каждом цикле. Диапазон вращения и правда "приблизительно 180", чуть меньше 180. Можно приближенно считать, что myservo.write() передается желаемый угол в градусах. Еще понятия "левое положение" и "правое положение" довольно относительны. У меня получилось, что "крайнее левое положение" - это "до упора по часовой стрелке, если смотреть со стороны рабочего органа".

воскресенье, 12 апреля 2015 г.

I2C RTC Arduino

Подключил модуль реального времени к ардуине. Основной вывод - можно пользоваться I2C протоколом, абсолютно его не понимая. По описанию протокола он позволяет подключать множество устройств к одной двухпроводной шине, каждому назначается свой ID, путем опроса можно общаться с любым.
Купил модуль I2C RTC DS1307 AT24C32 Real Time Clock Module for Arduino 51 AVR ARM PIC (http://www.aliexpress.com/item/Free-Shipping-I2C-RTC-DS1307-AT24C32-Real-Time-Clock-Module-for-Arduino-51-AVR-ARM-PIC/1786267095.html, были дешевле, но без отзывов на тот момент). Батарейка CR2032 была в запасах.
Запаял семипиновую гребенку SQ, DS, SCL, SDA, VCC, GND, BAT (на втором ряду контактов выводов меньше, решил, вдруг пригодятся).
Как потом выяснилось, реально нужны только 4 - SCL, SDA, VCC, GND.
А дальше просто нагуглил статью http://www.instructables.com/id/Sleep-Cycle-Alarm-Clock-with-Motion-Sensor/?ALLSTEPS. Там по ссылкам взял две либы, DS1307RTC и Time. Что удивило, в либе ни слова про то, куда подключать модуль, похоже I2C в ардуино стандартизирован. Описание подключения взял в самой статье: Attach the RTC to 5V, Ground, A4, and A5.
Дальше просто взял пример из DS1307RTC - ReadTest. Он первым делом написал, что нужно сначала запустить соседний пример SetTime. Запустил, время выставилось, и теперь ReadTest выдает это:
DS1307RTC Read Test
-------------------
Ok, Time = 08:24:25, Date (D/M/Y) = 12/4/2015
Ok, Time = 08:24:26, Date (D/M/Y) = 12/4/2015

Итак, понимания работы I2C не появилось. Как задается ID модуля? Почему используются аналоговые пины?

пятница, 27 марта 2015 г.

Стартовый набор и чем он плох

С чего я начал:
Robotale starter kit with UNO R3 MEGA328P+830 holes Breadboard basics of using the Arduino.  
kit list:
1.uno R3 board * 1
2.830 holes Breadboard * 1
3.packaging box * 1
4.LED lights red * 5
5.LED lights yellow * 5
6.LED lights green * 5
7.Resistor 220 Ohms * 8
8.Resistor 1K * 5
9.Resistor 10K * 5
10.Buzzer * 1
11.Passive Buzzer * 1
12.Key switch * 4
13 Digital tube * 2
14.6 5 battery box * 1
15.4 digital tube * 1
16. Ball switch * 2
17.Photoresistor * 3
18.Adjustable resistance * 1
19.Flame sensor * 1
20.Infrared receiver * 1
21.LM35 temp sensor * 1
22.74H595 * 1
23.RGB module * 1
24.8 * 8 dot matrix * 1
25.USB Cable 1 * 1
26.Colorful Bread Line * 30
27.mini remote control * 1
(фото, кстати, неправильное, по факту приехала ардуина с MEGA328 в DIP корпусе с панелькой.)
Искал по ключевым словам “Arduino UNO starter kit” и выбирал больше по картинке и цене.
Почему UNO - везде пишут, что это “самая популярная платформа”. По последующему опыту, мне бы больше подошла Nano. С ней куда проще сделать самостоятельно живущую тяп-ляп поделку, просто за счет меньших габаритов. Поиграть с периферией на ней ничуть не сложнее, чем с UNO, разница только, что breadboard нужен.
В этом конкретном наборе больше всего привлекли ПДУ и светодиодная матрица.
Пока заказанный набор ехал, появилось подозрение, что деталек будет не хватать, вдогон заказал такое:
generic parts package For Arduino kit + 3.3V/5V power module+MB-102 830 points Breadboard +65 Flexible cables+ jumper wire box
Item Name Value Quantity
1 Carbon Film Resistors plug 100R 30
2 Carbon Film Resistors plug 1K 30
3 Carbon Film Resistors plug 4.7K 30
4 Carbon Film Resistors plug 10K 30
5 Carbon Film Resistors plug 47K 30
6 Carbon Film Resistors plug 100K 30
7 Carbon Film Resistors plug 1M 30
8 The associated potentiometer (Short) handle length of 3 feet 15MM feet 2.54 or 5.08 10K 2
9 The associated potentiometer (Short) handle length of 3 feet 15MM feet 2.54 or 5.09 100K 2
10 Straw hat type LED plug-F5 white hair green long legs Green 3
11 Strawhat LED plug-F5 white hair red long legs Red 3
12 Straw hat the LED plug F5 white hair yellow long-legged Yellow 3
13 Long legs white hair and white straw hat type LED plug-F5 White 3
14 12 * 12 tact switch switch body 6
15 12 * 12 tact switch key cap - blue circle 3
16 12 * 12 tact switch key cap - red circle 3
17 12 * 12 tact switch key cap - white round 3
18 12 * 12 tact switch key cap - white square 3
19 12 * 12 tact switch key cap - green square 3
20 1 * 40 single pin 2.54 pitch gilded 2
1PCS 65 Root Breadboard Cables
1PCS MB-102 Color breadboard
1PCS Breadboard power module
1PCS 140 Root jumper wire box
aeProduct.getSubject()
Еще один breadboard, так как увидел, что простейший проект с матрицей строится только на двух макетках, жесткие перемычки, которых не было в стартовом наборе, модуль питания под breadboard. Ну и мелочевка, которой много не бывает. Забегая вперед - 65 Root Breadboard Cables оказались очень востребованы, тридцати штук из стартового набора не хватило на первый же интересный проект.
Дополнительно - десяток чипов 74HC595 (в стартовом наборе он один, а в проектах со светодиодами и индикаторами используют по несколько штук).


Теперь по пунктам, что реально пригодилось, а что - нет.
830 holes Breadboard. В сумме их стало две штуки, вроде бы одинаковых, но как оказалось не совсем. У них предусмотрена возможность соединения длинными сторонами, чтобы размещать особо большие компоненты (матрица 8х8 классически ставится на две макетки, иначе не подобраться к контактам). Так вот две борды из разных наборов не смогли состыковаться - соединители типа “ласточкин хвост” оказались немного разной формы. В результате с матрицей пришлось повозиться.
Светодиоды - разноцветные, можно веселые мигалки делать. Количество даже избыточно, но много - не мало.
Резисторы - казалось бы тоже много, но на самом деле не все востребованные номиналы для стартовых поделок.
Buzzer, Passive Buzzer - пищат, но не особо весело. Интереснее было прицепить динамик из какой-то игрушки, он побольше.
Key switch - кнопки, во втором наборе еще и с колпачками разноцветными. Не самая нужная вещь.
Digital tube - это просто семисегментный индикатор. Их в наборе две штуки. Полезного применения не придумал.
Battery box - вроде как нужен, если делаешь самостоятельное устройство. Но почему именно на 6 батареек? Для прототипов я просто откопал в коробке со старыми зарядками блок питания на 9 вольт, с разъемом как на ардуине и на модуле питания макетки.
4 digital tube - счетверенный семисегментный индикатор. Эта штука уже интереснее, чем одиночные, плюс его подключать можно множеством способов.
Ball switch - датчик вибрации или положения. Неинтересно.
Photoresistor - используется в стандартном примере ардуины, особого восторга не принес.
Adjustable resistance - неплохо разошлись по первым поделкам. Удивило, что во втором наборе были колпачки на кнопки, но не было ручек на переменные резисторы.
Flame sensor - датчик огня. Так и не попробовал.
Infrared receiver/mini remote control - казались очень привлекательными устройствами, а по факту примитивно подключаются, со стандартной библиотекой запускаются, коды кнопок считываются. Что дальше делать - не придумал.
LM35 temp sensor - по описанию неплохой датчик температуры, но оказался мертвым. Было очень обидно, тем более стоит он в розницу больше бакса. Но так как я был очень нацелен на измерение температуры, заменил его на термопару от компьютерного кулера, валявшуюся без дела.
74HС595 - уже упоминал, вещь востребованная, но одной штуки мало.
RGB module - странная штука, непонятно как затесавшаяся в набор - единственный “модуль”, все остальное просто компоненты. Строенный RGB светодиод, подбирая яркость каждого компонента можно светить разным цветом.
8 * 8 dot matrix - маленький экранчик из светодиодов. При ближайшем рассмотрении оказалось, что она еще и сдвоенная, желтая с красным. И по ее маркировке невозможно найти datasheet.


А теперь, чего же еще сразу же не хватило в этих наборах.
Конденсаторы. Практически во всех схемах модулей для Ардуино они есть. В цифровых схемах считается хорошим тоном поставить электролит 10 мкФ на питание и керамический конденсатор 0.1 мкФ на каждый корпус микросхемы. В аналоговых схемах конденсаторы еще более востребованы, даже в простейшем усилителе на одном транзисторе.
Транзисторы. Когда одна нога Ардуины должна зажечь до восьми светодиодов, без транзисторного ключа не обойтись. Когда надо управлять моторчиком - транзисторов может понадобиться много, да еще и разной полярности (но можно взять и интегральный драйвер, или даже готовый модуль или шилд - только творческого момента будет меньше).

Стандартного чипа для работы со светодиодными матрицами и семисегментными индикаторами - MAX7219 (MAX7221). Очень сильно упрощает управление со стороны ардуины.

В предыдущий раз я брал в руки паяльник лет двадцать назад. Что изменилось за эти годы?



Доступность информации.

Не нужны многочисленные тома справочников по электронным компонентам, не нужно в них рыться и искать. Не нужны сборники схем и описаний устройств. Не нужны бумажные книги типа «Введение в электронику». Браузер, поисковик, запрос типа «2N2222 datasheet» или «простейший усилитель на LM386» или «применение компараторов».

Доступность компонентов.

Тут в первую очередь влияет, конечно, доступный бюджет на это хобби. Сейчас необходимость потратить 10, 20 или 100 баксов не вызывает затруднений, раньше о таких суммах только мечтать приходилось. Плюс нет необходимости ехать через весь город на Юнону, все можно заказать с доставкой. Остается только выбирать между «купить здесь, привезут через три дня, но дороже» или «купить в Китае, привезут через месяц-два, но сильно дешевле».

Инструментарий.

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

Что это

Через двадцать лет после детского увлечения электроникой решил снова поиграть в радиолюбителя. Захотелось своими руками пощупать Arduino, о которой много пишут. Кое-какие наблюдения хочу записать здесь.