Однажды я прочитал слово “Arduino”, затем увидел Arduino Single-Sided Serial Board, (да, это было давно), потом одну из плат с USB на борту; и эти платки меня увлекли, в первую очередь тем, что их можно спаять самому. Я смотрел на них, читал схемы, а возможности собрать, на то время, не было…
Но, немного погодя, я её сваял:
Первой заботой стал переходник USB-COM, аппаратный COM-порт не хотелось, FT232 была дорога, непонятна и не паябельна(тогда). Решился этот вопрос благодаря Osamu Tamura - японскому коллеге, сообразившему такой переходник на контроллерах Atmel. На сайте есть варианты с применением ATtiny45 с кварцем и без; ATtiny2313; ATmega8/16/48/88/168/328. Отдельного разъёма для программирования микроконтроллера переходника не предусмотрено - один раз подпаялся и прошил. После подключения и установки драйверов, в системе появляется Virtual Communications Port с автоматически присвоенным номером, который и нужно выбрать в Arduino IDE (пункт «Последовательный порт» в закладке «Сервис»). Все сигнальные линии (RX, TX, CTS, RTS, DTR) и общий провод выведены на отдельный шестиконтактный разъём. Стремился повторить плату в размерах Duemilanova, и для переходника USB-COM взял ATmega8 в планарном корпусе.
Основной МК (тоже ATmega8) в DIPe и в панельке, прошит optiboot_v5.0. Не понимая идеи размещения разъёма ICSP установил его там, где мне было удобно. А кнопку сброса, встретив несколько нареканий на её непродуманное расположение, установил ближе к краю и в угловом исполнении.
Автоматического переключения питания с внешнего на 5V USB и наоборот не предусмотрено, уж сильно мудрёными мне казались схемы с ОУ и MOSFETами в связке. В итоге схема питания, и конвертера USB-COM стала такой(у японца МК в DIPe):
На схеме нет электролитического конденсатора после стабилизатора 3.3В, на плате тоже его нет – не нашел как его уместить. Автосброс можно отключить сняв джампер (не понадобилось ни разу). Остальная часть (МК, кнопка сброса, кварц 16МГц, светодиод разъём ICSP и выходные разъёмы) повторяет схему ArduinoSeverino.
Покупными были: контроллеры, кварцы, панелька и разъёмы, остальное выпаяно с плат. Стабилизаторы, диод, предохранитель сняты с материнской платы; кнопка, кажется, из джойстика приставки Sega; держатели светодиодов выпаяны из свитчей для локальной сети, ещё такие корпуса попадаются в сетевых картах.
Габариты платы, размещение крепёжных отверстий и выходных разъёмов повторяют Arduino UNO, версию R2.
В рамка изучения динамической индикации, датчика DHT11 и библиотеки FlexiTimer2 на платформе Arduino, был набросан маленький проект.
В бегущей строке по очереди выводятся: температура (TMP, temperature) в градусах Цельсия, и влажность (HMD, hymidity) в процентах, при отсутствии датчика пробегает надпись no-dht. 3-х разрядный индикатор с общим катодом подключён к Arduino напрямую, точки не используются, динамическая индикация организована библиотекой FlexiTimer2 – каждые 5ms в прерывании вызывается функция ind(). Используемая библиотека для датчика позволяет работать и с DHT21 или DHT22. У меня есть DHT11, который, в отличие от DHT21/22, умеет измерять только целые значения температуры и влажности, поэтому в качестве типа возвращаемых значений я использовал byte, в примерах библиотеки автор использует float.
Семейство Astra Linux - российские ос на базе ядра Linux, которая внедряется в качестве альтернативы всем известной Windows от Microsoft. Изначально была оборонной разработкой и использовалась в целях защиты информации в силовых структурах.