Temat: ATtiny85 z LittleWire
Opisywałem już ATtiny w zastosowaniu, jednakże większość osób sądzi że opisywany moduł to jedyna możliwość sterowania tym układem. Otóż nie, samym littlewire można sterować dedykowanymi programami które będą realizowały określone funkcje. W pakiecie littewire można znaleźć kilkanaście różnych przykładów, które łatwo można dostosować do własnych potrzeb. Jako przykłady zastosowania:
- pomiar napięcia:
# ./adc
> Little Wire firmware version: 1.3
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
> Value: 3FF Voltage: 4995.117188 milivolts
^C
PIN2 (PB2) robi za wejście, dzięki czemu można bezpośrednio zmierzyć napięcie tam doprowadzone. Czyli pośrednio można mierzyć inne wartości które można przerobić na napięcie, np. nacisk, temperaturę (termopara), oświetlenie. Można monitorować np. napięcie baterii.
- magistrala 1wire
# ./onewire
> Little Wire found with firmware version: 1.3
> Address search ...
> Addr#0: 28 B4 F2 FA 2 0 0 C5
> End of search with 1 onewire device(s) found
> Start the talking with the last onewire device found
> SCRATCH::57: 1:4B:46:7F:FF: 9:10:C7
LSB 01010111
MSB 00000001
> TEMP 21.437 deg. C
> SCRATCH::57: 1:4B:46:7F:FF: 9:10:C7
LSB 01010111
MSB 00000001
> TEMP 21.437 deg. C
^C
Podłączając zwykły DS1820 można błyskawicznie odczytać i mierzyć temperaturę za jego pomocą.
- sterowanie WS2812
WS2812 jest diodą RGB LED z własnym kontrolerem sterowanym tylko jedną linią. Można podłączyć jedną diodę lub kilkanaście w szeregu, dzięki czemu można dowolnie sterować kolorem świecie diody. Można to wykorzystać od zwykłych "ozdobnych" linii (jak podświetlanie czegoś) lub np. wskaźnik jakiegoś zdarzenia (identycznie jak led w niektórych smartfonach). Mam kilka takich led, więc jak ktoś jest zainteresowany zakupem to niech da znać.
# ./blink_ws2812
> Little Wire firmware version: 1.3
Red
Green
Blue
Off..
Red
Green
Blue
^C
Jak to działa w praktyce: http://youtu.be/6HWta1zmql4
- sterowanie GPIO
Zwykły odczyt stanu linii, np:
# ./button
> Little Wire firmware version: 1.3
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
> Button pressed.
Lub sterowanie włączaniem czy wyłączeniem linii
# ./blink
----------------------------------------------------------
> 1 Little Wire device is found with serialNumber: 512
----------------------------------------------------------
> Little Wire firmware version: 1.3
Blink!
...
Blink!
...
Blink!
...
Pierwsze można wykorzystać np. do odczytu stanu dołączonego przycisku czy stanu zwarcia jakiejś linii, drugie - np. do sterowania przekaźnika (układu typu usbrelay).
Littlewire implementuje także magistralę i2c (odczyt i programowanie czujników), magistralę SPI (odczyt i programowanie pamięci), programator usbtinyisp oraz sprzętowy i programowy generator impulsów PWM. API projektu jest dostępne, a podane przykłady w projekcie z pewnością ułatwią pisanie własnych programów.