Наручные часы на Attiny85 с Oled экраном

Добрый день, сегодня я хочу поделится инструкцией по изготовления наручных часов на основе Attiny 85 с Oled дисплеем. Возможностями наручных часов функции моих часов не ограничиваются. Они также могут использоваться как настольные, а еще можно давить цифровой датчик температуры.

Для изготовления самоделки нам понадобится:

— Синтетический ремешок (любого цвета)
— Липучка для одежды
— Digispark Attiny85
— Дисплей Oled разрешением 128х64, I2C
— ds18b20 – цифровой датчик температуры (по желанию)
— Резистор 4.7 Ком 0.25 Вт
— Arduino плата для прошивки Digispark Attiny85 (ISP программатор)
— Лист тонкого пластика
— Цветные провода
— Dupont 2.54 мм «мама» разъемы
— Кнопки 2 шт.
— Маленькая монтажная плата или небольшой обрезок платы
— Паяльник, припой, канифоль
— Нитки, иголка, ножницы
— Канцелярским нож
— Термоклеевой пистолет
— Термоклей
— Двусторонний скотч

Шаг 1 Подготовка ремня.
В любом магазине для рукоделия можно купить ремешок. Выбираем ремешок шириной 25 мм. Цвет любой. Нам нужна полоска около 50 см. Складываем наш ремешок пополам и сшиваем по краям. Затем в середине ремешка делаем прорезь, но только в одной из частей. С концов ремешка пришиваем липучки.

Откладываем нитку с иголкой в сторону и берем паяльник.

Шаг 2 Подготовка платы и Oled дисплея.
«Мозгом» наших часов будет контролер Digispark Attiny85. Они выпускаются в нескольких вариантах. Покупать следует плату с разъемом Микро USB. Остальные версии платы не поместятся в корпус часов.

Если вы купили плату с распаянными контактами, вначале их следует отпаять. Затем берем провода разных цветов, нам понадобится 9 разных цветов. Отрезаем от каждого провода примерно 15 см, зачищаем и припаиваем к Attiny85. Сразу стоит записать какой провод к какому выводу припаян, чтобы потом не путаться.

В моем случае провода по цветам выглядят так:

PB0 MOSI – желтый
PB1 MISO – голубой
PB2 CSK – синий
PB3 — фиолетовый
PB4 – белый
PB5 NRES – серый
GND – черный
+5 – красный
Vin – оранжевый

У вас цвета проводов могут отличаться, главное запишите их.

Перейдем к экрану. Мы будем использовать Oled дисплей. Разрешение экрана 128х64, работает по шине I2C. В продаже имеются экраны разных цветов: белый, голубой, синий с желтым. Будьте внимательны! Слово «двухцветный» в описание и названии данного экрана обозначает наличие полоски цвета, отличного от основного, вверху экрана, а не возможность отображать этим экраном два цвета! Все экраны данного типа отображаю только один цвет, или вверху полоска одного цвета, внизу – другого. Мне понравился синий экран, с желтой полоской вверху. Цвет не играет особой роли, выбирайте какой вам понравился. Так же как и с Attiny85, если вы купили экран с распаянными контактами, вначале следует их выпаять.

С обратной стороны экрана следует припаять небольшие провода. Лучше использовать провода таких же цветов, что и с Attiny85, чтобы потом не перепутать. В моем случаем к SDA экрана припаиваю желтый провод, к SCL – синий, GND – черный, VCC – красный.

На двусторонний скотч крепим Attiny85 к обратной стороне Oled экрана. Attiny85 не должна выступать за рамки платы Oled экрана.

Спаиваем Attiny85 и Oled вместе.

PB0 MOSI Attiny85 – желтый – SDA Oled
PB2 CSK Attiny85 – синий – SCL Oled
GND Attiny85 – черный – GND Oled
+5 Attiny85 – красный – VCC Oled

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

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

Если нет аккумулятора можно использовать батарейку типа A27 или A23

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

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

Обрезаем лишние и обжимаем все провода Dupont 2.54 мм «мама» разъемами. Вставляем в пластиковые корпуса и сматываем изолентой, так чтобы получился аккуратный разъем, со всеми выводами Attiny85. Тут также стоит записать, а еще лучше зарисовать, все контакты полученного разъема. GND Attiny, GND Oled и минус от аккумулятора можно сразу соединить и обжать в один контакт. Для дальнейшей заливки скетча и подключения дополнений, удобнее всего расположить контакты следующим образом:

PB0 | PB1 | PB2 | PB5 | +5 ATTINY | GND ATTINY

PB3 | PB4 | VCC OLED | GND OLED | Vin ATTINY | + BAT

Теперь пора перейти к корпусу.

Шаг 3 Изготовление корпуса.
Для корпуса понадобится тонкий пластик. Его можно купить в интернет магазине. А можно в канцелярском магазине купить скоросшиватель с плотной пластиковой обложкой и из обложки сделать корпус. На пластике размечаем развертку часов. Сплошные линии это линии разреза, пунктирные линии – сгибаем.

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

И с обратной стороны:

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

Шаг 4 Подготовка среды программирования.
Для работы с прошивкой (или скетчем) будем использовать Arduino IDE. Скачиваем архив или уставщик с официального сайта Arduino IDE.

Кроме этого нам необходимо добавить поддержку Attiny в Arduino IDE. Для этого запустите Arduino IDE, далее Файл — Настройки — в поле «Additional Boards Manager URLs» вставьте ссылку:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Нажмите OK (В этом поле вы можете вводить несколько ссылок, разделенных запятой). Затем заходим в Инструменты — Плата — Boards Manager в поле фильтра вводим Attiny и выбираем «attiny by David A. Mellis». Нажимаем Install и дожидаемся окончания загрузки.

Также понадобится библиотека для работы с Oled экраном. Их много, мне понравилась, и я рекомендую использовать именно TinyOzOLED. Она удобная, а главное, помещается в память:

tinyozoled-master.rar

[15.99 Kb] (скачиваний: 1)

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

onewire.rar

[16.75 Kb] (скачиваний: 1)

Устанавливаем эти библиотеки. Для этого можно прямо в среде программирования Arduino IDE, не распаковывая скачанные архивы, выбрать меню Скетч – Подключить библиотеку. В самом верху выпадающего списка выбрать пункт «Добавить .Zip библиотеку». В появившемся диалоговом окне выбрать библиотеку, которую вы хотите добавить, в данном случаем две скачанные. Теперь снова откройте меню Скетч – Подключить библиотеку. В самом низу выпадающего списка вы должны увидеть новые библиотеки. С этого момента библиотеки можно использовать в программах. После всего этого перезагрузите Arduino IDE. Также можно просто распаковать в папку «libraries», находящуюся в папке с установленной Arduino IDE.

Шаг 5 Подготовка программатора.
Digispark Attiny85 можно запрограммировать через находящийся на плате микро USB разъем, используя Arduino IDE. Однако, при этом приходится жертвовать 2 Кб из 8 Кб Flash памяти, для загрузчика. Скетч часов не помещается вместе с загрузчиком, поэтому необходимо использовать ISP программатор, стерев тем самым загрузчик. Если под руками нет ISP программатора (как у меня), можно использовать Arduino плату вместо него. Я буду использовать Arduino Uno. Но можно использовать и любую другую плату. Итак, подключаем Arduino Uno к компьютеру. Запускаем Arduino IDE, открываем Файл – Примеры — Arduino ISP. Выбираем в меню Инструменты – Плата – Arduino Uno. Выбираем порт, к которому подключена, Arduino, и нажимает загрузить. Вначале скетча содержится подсказка о том, как подключить Arduino к программируемому контролеру.

// 10: slave reset
// 11: MOSI
// 12: MISO
// 13: SCK

Схема подключения к Digispark Attiny85:
Arduino UNO — Digispark Attiny85

D11 – P0
D12 – P1
D13 – P2
D10 – P5

Шаг 6 Подготовка провода для загрузки скетча.
Вариантов скетча несколько, да и просто для удобства загрузки, изготовим провод, соединяющий Arduino Uno (в качестве ISP программатора) и наши часы. Здесь также рекомендую использовать цветные провода, совпадающие по цвету с теми, которые мы уже использовали. С одной стороны, должна быть колодка:

PB0 Желтый | PB1 Голубой | PB2 Синий | PB5 Серый | +5 Красный | GND Черный

Эта колодка подключается к часам, в верхнюю часть колодки часов.
С другой стороны две колодки для подключения к Arduino Uno:

Pin 10 Серый | Pin 11 Желтый | Pin 12 Голубой | Pin 13 Синий

+5 Красный | GND Черный

Должно получиться примерно так:

Шаг 7 Прошивка.
Итак, я написал несколько вариантов скетча для наших часов. Я позже напишу в чем отличия и выложу все. Для заливки скетча запускаем Arduino IDE, выбираем меню Инструменты, стави следующие параметры:

Плата — Attiny 25/45/85
Процессор — Attiny 85
Clock — internal 16

Выбираем последовательный порт, к которому подключен ISP программатор или Arduino в качестве программатора. Также в меню Инструменты – Программатор выбираем «Arduino as ISP». Теперь выбираем Скетч – Загрузить через программатор. Осталось дождаться завершения загрузки.

Шаг 8 Скетчи.
Первый вариант часы с датой. Для установки времени нужно будет подключить кнопки, примерно такие:

К контактам PB1, PB3, PB4.

attiny85_oled_spi.rar

[1.9 Kb] (скачиваний: 2)

Второй вариант только часы. Для установки времени надо использовать USB-TTL.

attiny85_oled_spi_softwareserial_nodata.rar

[1.45 Kb] (скачиваний: 2)

И третий вариант, настольные часы с датой и термометром.

attiny85_oled_spi_term_2.rar

[2.78 Kb] (скачиваний: 2)

Шаг 9 Запуск.
Для запуска часов, если вы используете литиевый аккумулятор, нужно установить перемычку в колодку между контактами BAT, +5 и VCC. Можно использовать маленький отрезок тонкой проволоки. Если у вас стоит батарейка понадобится две перемычки, первую ставим между BAT и Vin, вторую — + 5 и VCC.

Источник: usamodelkina.ru

Добавить комментарий