Себестоимость домашнего производства клавиатуры
Печать корпуса клавиатуры (чистая себестоимость) - 250 рублей за обе половинки
Покупаем на авито б/у клавиатуру и распаиваем - в среднем 800 рублей за бюджетный вариант клавиатуры на красных свичах (кнопках).
Два контроллера ардуино Pro Micro - 1450 на озоне и 600-800 рублей на али.
Беру у данного производителя надежная пайка без косяков.
Ранее пытался экономить на таких:
Самодельный провод - 10 рублей.
Припоя уйдет мало - сантиметров 7 катушки.
Винтики м3 из леруа 8 шт - 15 рублей от силы.
Силикон - 25 рублей
Итого по нижней планке: 1855 рублей за набор запчастей для увлекательной попытки сделать что то своими руками и пользоваться своей клавиатурой)
Топ 25 очень дешевых датчиков и модулей для различных электронных поделок, найденных на AliExpress
1) Датчик удара
Модуль с датчиком удара и сильной вибрации. Стоит такой 40 рублей с бесплатной доставкой. Ссылка на источник.
2) Микроволновый датчик движения
RCWL-0516
Доплеровский датчик движения — способен определять движение объектов (препятствий), которые полностью или частично отражают радиоволны (люди, животные, металлы и т.д.), даже если они находятся за деревом (дверью), стеной (гипс, бетон), пластиками, стеклами и т.д. Стоит такой датчик около 36 рублей. ссылка на источник.
3) Защитная плата для зарядки
Плата с разъемами для зарядки «сделай сам» 134N3P. Стоит такая 35 рублей. ссылка
4) MOSFET триггер
MOS FET модуль драйвера триггерного переключателя с ШИМ регуляцией. Стоит такой 36 рублей. ссылка
5) Плата карты памяти
Плата расширения для хранения Micro SD. Стоит такая 28 рублей. ссылка
6) Адаптер ESP32
Плата-адаптер для быстрого подключения устройств на модуле микроконтроллера ESP-32 к макетной плате. Стоит такая около 28 рублей. ссылка
7) Плата зарядки
Плата для зарядки литиевой батареи с защитным зарядным модулем. Стоит такая где-то 36 рублей. ссылка на источник
8) Батарейный блок CR2032
Плата батарейного модуля для CR2032 . Стоит такая 30 руб. с бесплатной доставкой. ссылка
9) Светодиодный модуль
Светодиодный 8-цветный светодиодный модуль WS2812 5050 RGB. Стоит такой 36 рублей. ссылка
10) Датчик атмосферного давления
Модуль представляет из себя высокоточный цифровой измеритель атмосферного давления на базе микро-чипа BMP280. Стоит такой 41 рубль. ссылка
11) Лазерный сенсор
Лазерный сенсорный модуль 650 нм, красная лазерная точка. Стоит такой 34 рубля. ссылка на источник.
12) Плата усилителя
Модуль одноканального аудио усилителя HXJ8002. Стоит такой около 34 рублей. ссылка
13) Различные разъемы
Разъемы USB/мини/микро . Стоят около 39 руб. ссылка
14) Дисплей
Цифровой дисплей на 3 цифры 0,56 дюймов. Стоит такой 34 рубля. ссылка
15) Модуль кнопок
4 независимые клавиши. Стоит модуль 38 рублей с бесплатной доставкой. ссылка
16) Усилитель звука
Модуль усилителя звука XH-M125. Стоит такой около 41 рубля. Ссылка на источник
17) Преобразователь понижающе-повышающий
Малошумный микро преобразователь DC-DC 2 в 1 повышающий и понижающий напряжение до 3.3 Вольт. Есть защита от короткого замыкания. Входное напряжение 1.8 - 5V, при его превышении модуль выйдет из строя. Стоит такой 26 руб. ссылка
18) Wi-Fi антенна
Wi-Fi 2,4 ГГц антенна. Стоит такая 25 рублей. ссылка
19) Переключатель термостата
Переключатель с пластиной, который выключает приборы при достижении определенной температуры, например чайник. Стоит такой около 34 руб. ссылка
20) ИК-модуль
3 pin KY-022 универсальный ИК-модуль. стоит такой 25 руб. ссылка
21) Модуль усилителя сигнала
Модуль LM358 операционный усилитель сигнала DC5-12V. Стоит такой 41 рубль. ссылка
22) Светочувствительный датчик
Модуль со светочувствительным датчиком. Стоит такой около 35 рублей. ссылка
23) Питание 9V
Разъем для подключения батареи 'Крона' 9V. стоит такой 29 рублей. ссылка
24) Голосовой модуль
4-контактный модуль обнаружения звука. Стоит такой около 38 рублей. ссылка
25) Датчик уровня воды
Красный датчик уровня воды. Стоит такой 29 рублей с бесплатной доставкой. Ссылка на источник.
ATtiny45 Arduino IDE
ATtiny45 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny45 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
Характеристики:
Высокопроизводительный, экономичный 8-разр. AVR-микроконтроллер
Усовершенствованная RISC-архитектура
— Обширный набор из 120 инструкций большинство которых выполняются за один цикл
— 32 x 8 универсальных регистров общего назначения
— Полностью статическая работаЭнергонезависимые памяти программ и данных
— Внутрисистемно программируемая флэш-память программ размером 4 кбайт с износостойкостью 10 тыс. циклов запись/стирание
— 256 байт внутрисистемно-программируемого ЭСППЗУ с износостойкостью 100 тыс. циклов записи/стирания
— 256 байт внутреннего статического ОЗУ
— Программируемые биты защиты флэш-памяти и ЭСППЗУОтличительные особенности периферийных устройств
— 8-разр. таймер-счетчик с предделителем и двумя каналами ШИМ
— 8-разр. высокоскоростной таймер-счетчик с отдельным предварительным делителем 2 высокочастотных выхода ШИМ с отдельными регистрами задания порога сравненияПрограммируемый генератор паузы
— Универсальный последовательный интерфейс с отдельным детектором условия старт
— 10-разр. АЦП4 несимметричных канала
2 дифференциальных канала с программируемым усилением (1x, 20x)
— Программируемый сторожевой таймер с отдельным встроенным генератором
— Встроенный аналоговый компараторСпециальные функции микроконтроллера
— Встроенная отладочная система debugWIRE
— Внутрисистемное программирование через порт SPI
— Внешние и внутренние источники прерываний
— Экономичные режимы: холостой ход (Idle), уменьшение шумов АЦП (ADC Noise Reduction) и пониженная мощность (Power-down)
— Усовершенствованная схема сброса при подаче питания
— Программируемая схема контроля напряжения питания
— Встроенный калиброванный генераторВвод-вывод и корпуса
— Шесть программируемых линий ввода-вывода
— 8-выв. корпус PDIP и 8-выв. SOICРабочее напряжение
— 1.8 — 5.5В для ATtiny45V
— 2.7 — 5.5В для ATtiny45Градации по быстродействию
— ATtiny45V: 0 — 4 МГц при 1.8 — 5.5В, 0 — 10 МГц при 2.7 — 5.5В
— ATtiny45: 0 — 10 МГц при 2.7 — 5.5В, 0 — 20 МГц при 4.5 — 5.5ВМалый потребляемый ток
— Активный режим: 1 МГц, 1.8В: 450 мкА
— Режим пониженной мощности: 0.1 мкА при 1.8В
Микроконтроллер ATtiny45 отлично подходит для маленьких и дешевых проектов, а поддержка средой программирования Arduino IDE заметно упрощает работу с микроконтроллером.
Для поддержки ATtiny45 в Arduino IDE необходимо выполнить несколько простых операций:
Добавление поддержки платы
Откройте в Arduino IDE вкладку Файл > Настройки и добавьте ссылку для менеджера плат
Далее перейдите во вкладку Инструменты > Плата > Менеджер плат
Выберите и установите пакет новых плат ATtiny45, ATtiny85, ATtiny44, ATtiny84
Далее в Инструменты > Плата выберите плату ATtiny45.
Установите параметры платы как показано на скриншоте:
Для прошивки скетча Вам понадобится программатор USBAsp
Схема подключения
Распиновка программатора USBAsp
Для удобства использования и прошивки микроконтроллера ATtiny45 можно воспользоваться отладочной платой HW-260.
В настройках платы нужно выбрать поддержку Attiny45 и установить частоту 8 MHz internal, остальные параметры менять не нужно. Далее необходимо выставить нужные фьюзы для микроконтроллера, чтобы он всегда работал на выбранной Вами частоте. Для этого в настройках Arduino IDE выберите программатор USBasb и нажмите Инструменты > Записать загрузчик. Эту операцию необходимо проводить всего один и снова повторить если Вы будете менять частоту работы микроконтроллера.
Для загрузки скетча в настройках Arduino IDE выберите программатор USBasb и во вкладке Скетч нажмите на Загрузить через программатор (или просто нажать кнопку — Загрузить)
Для примера, можно загрузить простой скетч мигания светодиода, к выводу 3 (PB4) контроллера подключите светодиод через резистор 200 Ом.
void setup() {
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
}
После загрузки скетча, светодиод начнет мигать.
Для нормальной работы микроконтроллера необходимо подать напряжение VCC через резистор 10 кОм на вход RST микроконтроллера.
Примеры использования
ЧАСЫ ATTINY45+DS3231 С КНОПКАМИ КОРРЕКЦИИ ВРЕМЕНИ
ПРОСТОЕ РЕЛЕ ВРЕМЕНИ 0…99 МИН
Кнопками (+/-) можно задавать время от 1 до 99 минут, при установки времени таймера сразу же активируется реле, при обнулении таймера реле отключает нагрузку.
DHT11 ДАТЧИК ТЕМПЕРАТУРЫ И ВЛАЖНОСТИ
ВОЛЬТМЕТР 0…5 В
3.3V
1.8 V
ЧАСЫ С БОЛЬШИМИ ЦИФРАМИ И ДАТЧИКОМ ТЕМПЕРАТУРЫ ATTINY45+LCD1602_I2C+DS18B20+DS3231
Скетчи - http://rcl-radio.ru/?p=129389
TDA7719 + LCD2004 + DS3231 + IR + ENCODER (Arduino)
Ранее в http://rcl-radio.ru/?p=62993 описывался пример использования аудиопроцессора TDA7719 под управлением Arduino Nano с дисплеем LCD1602, на этой странице будет рассмотрен аналогичный пример но с использованием дисплея LCD2004 c I2C модулем на базе микросхем PCF8574, что позволяет подключать символьный дисплей LCD2004 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5).
ИМС TDA7719 представляет собой Hi-Fi аудиопроцессор с программируемой матрицей входов, имеет 6 аудио выходов, независимый аттенюатор для каждого выхода и входа, три полосы регулировки тембра с изменяемой центральной частотой и добротностью, полосовой фильтр для сабвуферов (два выхода) с фазоинвертором, тонкомпенсация. При подачи на вход стерео сигнала аудиопроцессор после обработки преобразует его в квадро и дополнительные два канала для сабвуферов.
Аудиопроцессор имеет следующие технические характеристики:
Напряжение питания от 7,5 до 10 В
Ток потребления 35 мА
Сопротивление по входу 100 кОм
Коэффициент гармоник не более 0,01%
Разделение каналов 90 дБ
Отношение сигнал\шум 104 дБ
Регулировка тембра:
ВЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 10.0 12.5 15.0 17.5 кГц
СЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 500 1000 1500 и 2500 Гц, добротность 0.5 0.75 1 и 1.25
НЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 60 80 100 и 200 Гц, добротность 1.0 1.25 1.5 и 2.0
Тонкомпенсация:
Аттенюатор от -15 до 0 дБ
Полосы частот — FLAT (линейная) 400 800 и 2400 Гц
Сабвуфер:
Два канала (R и L)
Частоты полосового фильтра — FLAT 80 120 и 160 Гц
Фазовый сдвиг дискретно от 0 до 180 °
Регулировка громкости от -63 до 0 дБ
Раздельная регулировка каждого выхода от -16 до 0 дБ
Раздельная регулировка входов от -15 до + 15 дБ
Кол-во стерео входов 6 (программно может быть изменена)
Выходы:
ПК фронт
ЛК фронт
ПК тыл
ЛК тыл
ПК сабвуфера
ЛК сабвуфера
Ниже показан пример использования TDA7719 совместно с Arduino Nano. Управление аудиопроцессором происходит при помощи энкодера KY-040 и четырех кнопок, информация выводится на LCD дисплея LCD2004_I2C.
Управление аудиопроцессором разбито на три меню:
Меню 1
Регулировка громкости от -63 до 0 дБ с индикатором активного входа
Регулировка BASS (НЧ) от -15 до 15 дБ
Регулировка MIDDLE (СЧ) от -15 до 15 дБ
Регулировка TREBLE (ВЧ) от -15 до 15 дБ
Меню 2
Аттенюатор выхода ЛК тыл от -16 до 0 дБ
Аттенюатор выхода ПК тыл от -16 до 0 дБ
Аттенюатор выхода ЛК фронт от -16 до 0 дБ
Аттенюатор выхода ПК фронт от -16 до 0 дБ
Аттенюатор выхода сабвуфера ПК от -16 до 0 дБ
Аттенюатор выхода сабвуфера ЛК от -16 до 0 дБ
Тонкомпенсация (loudness) аттенюатор от -15 до 0 дБ
Полоса частот — FLAT (линейная), 400, 800 и 2400 Гц
Меню 3
Выбор центральной частоты для BASS 60, 80, 100 и 200 Гц
Выбор центральной частоты для MIDDLE 500 ,1000, 1500 и 2500 Гц
Выбор центральной частоты для TREBLE 10.0 ,12.5, 15.0 и 17.5 кГц
Выбор центральной частоты для сабвуфера FLAT (линейная), 80, 120 и 160 Гц
Добротность для BASS 1.0, 1.25, 1.5 и 2.0
Добротность для MIDDLE 0.5, 0.75, 1 и 1.25
Дополнительные опции
Программно активно 3 входа которые имеют независимые предусилители в диапазоне от -15 до 15 дБ, активный вход отображается в меню 1 в строке регулировки громкости
Режим MUTE
Режим STANDBY
Изменение яркости подсветки экрана, уровень яркости изменяется в скетче
Часы в режиме POWER OFF
Коррекция времени часов
Управление всеми параметра (кроме коррекции времени часов) продублированы ИК пультом
Меню 1
Меню 2
Меню 3
Mute
Standby
Меню выбора входа
Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется через скетч:
#define BRIG_H 200 // Яркость 0…255 POWER ON
#define BRIG_L 50 // Яркость 0…255 POWER OFF
Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).
Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.
В проекте используются часы реального времени DS3231, текущее время выводится в режиме STANDBY.
Установить текущее время можно двумя способами:
Установки времени через скетч:
Раскомментируйте строку:
clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
загрузите скетч, далее закомментируйте строку:
// clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
повторно загрузите скетч.
Установка времени кнопками:
Перейдите в режим STANDBY, нажать и удерживать кнопку энкодера, нажимать кнопки:
SET — обнуление секунд
IN — коррекция минут
MUTE — коррекция часов
ИК пульт дублирует работу энкодера и кнопок. Для управления регулятором подойдет практически любой пульт ИК, для поддержки Вашего пульта необходимо прописать коды кнопок в скетч:
#define IR_1 0x33B8A05F // Кнопка вверх
#define IR_2 0x33B8609F // Кнопка вниз
#define IR_3 0x33B810EF // Кнопка >
#define IR_4 0x33B8E01F // Кнопка <
#define IR_5 0x33B850AF // Кнопка IN
#define IR_6 0x33B844BB // Кнопка SET
#define IR_7 0x33B8946B // Кнопка MUTE
#define IR_8 0x33B800FF // Кнопка STANDBY (POWER)
Для получения кодов кнопок Вашего пульта загрузите скетч и откройте монитор порта, при нажатии кнопки пульта его код будет отображен в мониторе порта.
В проекте предусмотрен выход STANDBY для управления режим STANDBY усилителя мощности, а так же режим MUTE. Все параметры сохраняются в энергонезависимую память, сохранение происходит после 10 секунд не активности органов управления.
Скетч - http://rcl-radio.ru/?p=129453
ATtiny45 + TEA5767 + TM1637 (FM radio)
TEA5767 производимая компанией NXP применяется для конструирования низковольтных FM-радио тюнеров. В составеTEA5767 имеются внутренние цепи выделения промежуточной частоты и демодуляции принимаемого сигнала, что позволяет обходиться минимальным набором внешних компонентов.
Технические параметры TEA5767:
Напряжение питания от 2,5 до 5 В
Потребляемый ток при Uпит = 5 В 12,8 мА
Чувствительность 2 мкВ
Отношение сигнал/шум 54 дБ
Разделение между стереоканалами 24 дБ
Коэффициент гармоник 0,4 %
Диапазон принимаемых частот от 76 МГц до 108 МГц
Шины управления: I2C или 3-х проводная
Используя радио модуль, индикатор и микроконтроллер ATtiny45 можно собрать простое FM-радио.
Радио приемник управляется всего одной кнопкой, которая позволяет по кругу переключать заранее записанные каналы. Частота канала выводится на индикаторный модуль TM1637. К выходу модуля радиоприемника необходимо подключить любой маломощный усилитель, например можно использовать модуль усилителя PAM8403 с регулятором громкости.
Последний выбранный канал сохраняется в энергонезависимой памяти.
Перед прошивкой микроконтроллера рекомендую ознакомится со статьей — http://rcl-radio.ru/?p=129389 (общие сведения о микроконтроллере ATtiny45, прошивка при помощи Arduino IDE).
Перед загрузкой скетча необходимо записать в него выбранные для радио каналы:
float ch[]={104.4, 101.9, 102.5, 88.0, 101.5, 105.0, 103.9, 105.7};
и указать кол-во выбранных каналов:
#define CH 8
Усилитель PAM8403
Скетч - http://rcl-radio.ru/?p=129530
ЧАСЫ-БУДИЛЬНИК НА VDF1602 + DS3231 + DS18B20 (Arduino IDE)
Часы-будильник основаны на микроконтроллере Atmega8, содержит часы реального времени DS3231, цифровой датчик температуры DS18B20, датчик освещенности в виде фоторезистора, зуммер для сигнала будильника, четыре кнопки управления и дисплей VDF1602.
Дисплей VDF1602 (16T202DA1E) выполнен на базе вакуумно-люминесцентного индикатора, который может отображать ASCII символы в 2 строки (16 знаков в 1 строке) каждый символ в виде матрицы 5х7 пикселей.
Дисплей 16T202DA1E программно полностью совместим с дисплеем LCD1602 контроллере HD44780.
Для правильной работы базе вакуумно-люминесцентного индикатора требуется два источника питания, это питание сеток и анодов напряжением 12-27 В и питание катода (нити накала) переменным напряжением от 1,2 до 5 В (в зависимости от типа ВЛИ). В дисплее 16T202DA1E все необходимые источники для правильной работы ВЛИ уже встроены в плату, поэтому для питания дисплея Вам понадобится только одно напряжение в 5 В. Так же в отличии от LCD1602 в дисплее 16T202DA1E нет вывода Vo (регулировка контрастности), что делает подключение дисплея к Arduino Nano еще проще.
Распиновка дисплея
На дисплей выводится следующая информация
Текущее время
День недели (рус)
Время будильника
Индикатор работы будильника
Температура
Дата и месяц
Кнопки управления:
SET_ALARM — коррекция времени будильника, первое нажатие коррекция часа, второе — минут
SET_TIME — коррекция (установка) времени часов, при нажатии на кнопку меняются параметры времени для корректировки (часы, минуты, секунды(обнуление), дата, месяц, день недели)
SET_UP — Плюс изменение параметра часов и будильника
SET_DW — Минус изменение параметра часов и будильника
В режиме вывода времени кнопки SET_UP и SET_DW позволяют отключать и включать режим будильника, а при сигнале будильника кнопки SET_UP и SET_DW отключают сигнал будильника но при этом не меняют режим работы будильника. Если не нажимать кнопки SET_UP и SET_DW то сигнал будильника будет звучать 1 минуту.
Так как дисплей VDF1602 имеет функцию программного изменения яркости свечения символов, то в схеме используется датчик освещенности (фоторезистор). Датчик освещенности меняет яркость свечения символов дисплея в зависимости от освещенности.
Датчик температуры DS18B20 рекомендуется выносить за корпус уст-ва, так как дисплей VDF1602 при работе имеет небольшой нагрев.
Время будильника и режим работы будильника сохраняются в энергонезависимой памяти.
Красными точками на схеме указаны пины подключения программатора, как прошить прошивку описано в — http://rcl-radio.ru/?p=82486
Более подробно о дисплеи VDF1602 описано в — http://rcl-radio.ru/?p=129034
Скетч - http://rcl-radio.ru/?p=129553