Введение

В процессе сбора информации.

Из моего письма на 4PDA:

LittleWire позволяет запускать “из коробки” приложения для домашней автоматизации (управление ШИМ, RGB лентами ws2812, подключать датчики 1Wire и I2c, кнопки, реле и т.д.)
Сами бинарные файлики программ управления маленькие, под конкретную задачу их можно закидывать прямо на роутер.
К роутеру в USB порт подключается стик с установленной на нем tiny85, загрузчиком (micronucleus) и прошивкой (littlewire).
Причем прошивки на тиньке можно менять прямо с роутера. В результате получаем с роутера 5 gpio с кучей вкуснейших плюшек в виде ШИМ, 1Wire, I2C и т.д.
Портирование Makefile проектов Micronucleus и LittleWire под OpenWRT произведено.
Исходники здесь – https://github.com/ZigFisher/Glutinium Там, кстати, есть и другие интересные фичи портированые под OpenWRT.
Например, утилиты и прошивки для переходника USBasp на котором уважаемый MaksMS с проекта http://Homes-smarT.ru делает и описывает интересные вещи (приемники и передатчики 433MHz, датчики, а так-же работа с линейкой модулей nRF24).
Нужен основной libusb + libusb-compat. Насколько я понял, это библиотека для работы с низкоуровневыми устройствами.
Digispark это просто платка, с распаянным tiny85 и обвязкой для подключения к USB порту. Micronucleus – бутлоадер и одноименная утилита загрузки прошивок.
LittleWire – прошивка, заливаемая в тиньку при помощи утилиты micronucleus и дающая возможность получить на любом роутере с USB:
Вполне возможно, что LittleWire можно влить в Digispark просто через Arduino IDE, но тут фишка в другом – залить (или сменить) загрузчик на Micronucleus
и затем иметь возможность заливать прошивки в Digispark утилиткой прямо с роутера без использования avrdude (он жирноват).
Ссылка на архив с готовыми пакетами для платформы Ralink – http://zftlab.org/files/firmware_bricket/packages/
Digispark и LittleWire по хардварной части ничем не отличаются. LittleWire был разработан еще на обычных элементах (первые образцы), а потом уже Digispark и китайцы начали штамповать SMD клоны.
Прелесть вся в простой реализации нужного функционала на чистом Си (малый размер кода на выходе) и с простой аппаратной интеграцией (воткнул в USB и пользуй).
Так-же предлагаю подумать над модулем RCswitch, который будет позволять подавать команды радиоуправляемым розеткам 315/433 MHz.
Одна из рабочих программ уже так-же есть у меня в примерах на GitHub.


Возможности

  • USBtinyisp compatible AVR programmer
  • 4 channel GPIO
  • ADC with 10 bit resolution
  • 2 parallel hardware PWM outputs
  • SPI interface
  • I2C interface
  • 1-Wire interface
  • WS2812 RGB LED interface
  • Multiple device support

Pin outs

All pins can be used as Digital I/O

  • Pin 0 → I2C SDA, PWM (LED on Model B)
  • Pin 1 → PWM (LED on Model A)
  • Pin 2 → I2C SCK, Analog In
  • Pin 3 → Analog In (also used for USB+ when USB is in use)
  • Pin 4 → PWM, Analog (also used for USB- when USB is in use)
  • Pin 5 → Analog In

Прошивка загрузчика на Digispark (выполняется при помощи USBasp)

avrdude -c usbasp -p t85 -U flash:w:digispark_t85_micronucleus-v2.03.hex -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m

Если вы хотите намертво вшить загрузчик в Digispark, используйте hfuse:w:0×5d:m (не рекомендуется)


Прошивка проекта на Disispark (выполняется на роутере)

micronucleus --run --type intel-hex /usr/share/little-wire/digispark_t85_littlewire_v13.hex

Тстовые утилиты Little Wire

  • adc – отображает напряжение на GPIO
  • blink – мигает светодиодом на плате
  • blink_ws2812
  • button – отображает нажатие кнопки
  • debugConsole
  • fade_ws2812
  • hardwarePWM
  • i2c_blinkM
  • i2c_nunchuck
  • lwbuttond
  • onewire – сканирует шину 1-Wire и показывает температуру датчика
  • rgb_cycle_ws2812
  • servo
  • softPWM
  • spi_LTC1448

Подключение устройств и датчиков к Digispark с прошивкой Little Wire

Digispark USBtinyisp Hard PWM Soft PWM ADC I2C SPI OneWire WS2812 CDC-232
pin1 MISO CH_B CH_2 - - DO - DATA TX
pin2 SCK - CH_3 CH_1 SCL SCK DATA DATA RX
pin3 RESET - - CH_0 - CS - DATA -
pin4 MOSI CH_A CH_1 - SDA DI - DATA -

Получение тестовых бинарных сборок

wget -O /usr/bin/octonix_gpio http://zftlab.org/files/firmware_bricket/binary/octonix_gpio && chmod 755 /usr/bin/octonix_gpio

Разработчикам прошивок на базе OpenWRT

Если вы хотите сделать поддержку пакетов Glutinium в своей среде разработки, добавьте в файл feeds.conf, находящийся в корне проекта, строку:

src-git glutinium https://github.com/ZigFisher/Glutinium.git

Затем, обновите список пакетов командой:

./scripts/feeds update glutinium

Выберите, какие именно пакеты вы хотите интегрировать. Рекомендуемые и полулярные пакеты:

#
./scripts/feeds install homes-smart
./scripts/feeds install httping
./scripts/feeds install i2c-telemetry
./scripts/feeds install littlewire
./scripts/feeds install micronucleus
./scripts/feeds install rcswitch

После этого можно выполнить команду make menuconfig и указать, какие из вновь установленных пакетов собирать.

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

Предложения о интеграции пакетов сделаны разработчикам прошивок ‘Хитрый Домовенок’ и ‘CyberWRT’


Внутренние ссылки


Внешние ссылки



Published

04 October 2016

Tags