Sterownik rozszerzony na Attiny25V

co i jak zrobiłem...
Awatar użytkownika
Bocian
Site Admin
Posty: 3149
Rejestracja: niedziela 11 lis 2007, 21:21
Lokalizacja: Wiskitki

Sterownik rozszerzony na Attiny25V

Post autor: Bocian »

Witam. Chciałem zaprezentować sterownik rozszerzony według mojego pomysłu. Otóż, na wstępie chciałem zaznaczyć, że nie jestem zwolennikiem komplikowania rzeczy, które powinny być z natury proste i intuicyjne. Wychodzę z założenia, że lepiej jest, poniekąd zmusić użytkownika do przyjęcia pewnych reguł (które po niedługim czasie użytkowania sam doceni) zamiast dodawania 25-cio kliku aby jedna osoba na tysiąc miała to co akurat sobie wymyśliła... Ale przejdźmy do rzeczy.

Sercem sterownika jest mikrokontroler z rodziny AVR Atmela - Attiny25V. Szybki PWM (brak efektu migotania najniższych trybów). Sterownik do obsługi klików (wielo-klików) posiłkuje się kondensatorem ceramicznym (aby maksymalnie oszczędzać ciągłe mielenie EEPROMu, który jak wiadomo też ma swoją żywotność-przez kilka osób osiągniętą :mrgreen: ). Posiada 4 programowalne tryby (spośród palety 11 jasności dostępnych w procedurze programowania). Fabrycznie ustawione to 2, 5, 8, 11 (0,15%; 10%; 32%; 100%).

Nawigacja pomiędzy trybami pracy jest dwukierunkowa. Jedno-klik powoduje przejście do kolejnego trybu w pętli, dwuklik powrót do poprzedniego. Pozwala nam to np. zmniejszyć jasność bez "przeklikiwania" mocniejszych trybów w pętli. Po dojściu do skraju pętli, pójście dalej w tym kierunku spowoduje przeskok do kolejnego skraju pętli.

Kondensator służy za jedno bitową pamięć z ograniczonym czasem podtrzymania informacji. Jest on użyty do odróżnienia krótkiego zaniku napięcia zasilania (klika) od wyłączenia. Standardowy kondensator 470nF zapewnia czas, po którym zanik zasilania jest traktowany jako wyłączenie około 0,5s. Zmiana kondensatora na 1µF umożliwia wydłużenie tego czasu (długości klika) do 1s. Tak więc każdy zanik napięcia na czas mniejszy niż 0,5s jest traktowany jako klik, każdy kolejny wykonany po czasie świecenia mniejszym niż 0,5s, jest traktowany jako kolejny klik wielo-kliku.


Procedurę programowania danego trybu wywołujemy szybkim 6-cio klikiem będąc aktualnie w trybie który chcemy zmienić. Wyświetlanie sekwencji następuje od trybu najniższego (sygnalizowanego "mrugnięciem") w górę. Każdy tryb wyświetla się przez ok. 1,5 sek. Po dojściu do 100% następuje również sygnalizacja "mrugniecie" po czym malejąco wyświetla tryby w dół. Tryb programujemy w trakcie wyświetlania go klikiem (bądź mechanicznym wyłączeniem włącznika). Jeśli nie wykonamy nic podczas procedury prezentacji trybów w górę i w dół lampka zostanie przy dotychczasowo ustawionej jasności.

PALETA POZIOMÓW JASNOŚCI DOSTĘPNYCH W PROCESIE PROGRAMOWANIA:
0,02%
0,15%
1%
4%
10%
18%
25%
32%
50%
70%
100%

Włączenie trybu strobo wywołujemy szybkim 3-klikiem Mechanizm ten działa w ten sposób, że błyski mają intensywność trybu, z którego wywołaliśmy trójklik i mają optymalną według mnie częstotliwość 2Hz.

Precyzyjny pomiar napięcia ogniwa pod obciążeniem wywołujemy szybkim 4-klikiem. Do tematu podszedłem tu po swojemu :mrgreen: zakładając co następuje: Praktyczny zakres użytecznego rozładowania ogniwa Li-Ion pod obciążeniem zawiera się w przedziale od 4.0V do 3.0V. Po wywołaniu 4-kliku lampka na moment zapala się w trybie 100%, następuje pomiar napięcia, a następnie ilością błysków o intensywności 20% sterownik informuje nas o dziesiętnej części V po 3.X. Np. 8 błysków to napięcie 3,8V; 5 błysków to napięcie 3,5V etc. I tak w przedziale od 0-10 gdzie 10 błysków to okolice 4.0V (ogniwo wyjęte prosto z ładowarki) a brak błysku 3.0V oznacza, że za chwilę nastąpi ostrzeganie o niskim poziomie napięcia. Pomiar ten bardzo dobrze sprawdza się również do diagnostyki nowych lampek i związanych z nią spadków napięcia w całej konstrukcji (jakości styków etc.), gdyż dostajemy info jakie napięcie fizycznie występuje na poziomie sterownika.

Monitoring temperatury Procedura ta działa zawsze w tle i nadzoruje aktualną temperaturę sterownika. Bazuje na wewnętrznym czujniku temp. procka 25V. Po osiągnięciu progu bezpieczeństwa (domyślnie 60st) sterownik płynnie redukuje moc, po czym stara się wyrównać do zadanego trybu pracy. Jeśli ciepło wciąż nie jest skutecznie odbierane, znowu redukcja i trzymanie się zadanego progu bezpieczeństwa. Przy wychłodzeniu lampki (np. opływ powietrza na obudowie lampki) powrót do nominalnych parametrów zaprogramowanego trybu. Mechanizm ten działa na tyle skutecznie, że możemy lampkę odpaloną na 100% zawinąć w koc bez obawy o uszkodzenie sprzętu czy... koca :mrgreen:

Jako, że rozrzut tolerancji czujników w prockach rodziny Attiny 25/45/85 jest dosyć duży, zaimplementowano procedurę serwisowej regulacji temperatury dla progu bezpieczeństwa (domyślnie ustawionej na 60st). Pozwala to również dla doświadczonych użytkowników na dostrojenie sterownika do konkretnej konstrukcji w której pracuje.

10-klik - temperatura graniczna o 5*C w górę, potwierdzone 3-ma "mrugnięciami"
12-klik - temperatura graniczna o 5*C w dół, potwierdzone 2-ma "mrugnięciami"

Powyższe zmiany mogą być przeprowadzane wielokrotnie np. 10-klik przeprowadzony dwa razy z rzędu, podwyższy temp. o 10 st. C (3x 15st C) analogicznie 12-klik aż dostroimy mechanizm do naszych konkretnych wymagań.

Auto-kalibracja termicznego progu bezpieczeństwa. Wywołujemy ją 9-klikiem. Sterownik startuje w trybie 100%, lampka nabiera temperatury i kiedy uznamy, że aktualna temperatura obudowy lampki osiągnęła próg bezpieczeństwa, jakikolwiek klik zapisuje tę temperaturę jako próg bezpieczeństwa.

8-klik - RESET do ustawień fabrycznych (tryby do: 0,15%; 10%; 32%; 100% oraz próg zabezpieczenia termicznego do 60*C)


Ostrzeganie o niskim napięciu ogniwa Zaczyna działać gdy ogniwo w danym trybie pracy osiąga okolice 2,9-3,0V. Następuje "mrugnięcie" i redukcja o kolejny, niższy poziom z palety programowalnych trybów (osiągamy ~2,9V w nim, mrugnięcie i redukcja do niższego). Tak dzieje się do poziomu numer 3 (1%). W tym momencie lampka utrzymuje ten poziom, mrugając cyklicznie co 10 sek. Po osiągnięciu 2,8V następuje ostatnia redukcja do poziomu 2 (0,15%). Po osiągnięciu krytycznie niskiego napięcia 2,6V sterownik 4 razy mruga i przechodzi w tryb uśpienia.

Autorem softu, według moich wytycznych jest kolega Pyra :)

Sterownik jest dostępny w dwóch wariantach, 3,04A na bazie 8szt. AMC7135 binu 380mA oraz standardowym 2,8A na AMCkach 350mA. Sterowniki, które trafią do oferty, będą miały zalutowane porządne przewody 0,35mm2 w silikonowej izolacji (typ modelarski, prąd pracy ciągłej 10A). Na życzenie (bez dopłaty) mogą mieć również dolutowaną w miejscu styku sprężyny z plusowym terminalem ogniwa blaszkę stykową włącznika Omten PBS101C (zwiększa to powierzchnię styku sterownika z ogniwem zmniejszając spadek napięcia w tym miejscu, jest to lepszy materiał niż zwykły, goły mosiężny krążek).

Poniżej kilka fotek:
Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek
Ostatnio zmieniony wtorek 18 lut 2014, 09:53 przez Bocian, łącznie zmieniany 8 razy.
Sometimes darkness can show you the light
Awatar użytkownika
ElSor
Site Admin
Posty: 5038
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

Ale R1 i R2 chyba są zbędne?
A Sławek jak dla mnie jest geniuszem. Jak mi powiedział o pomyśle z kondensatorem to mnie aż zatkało. Takie banalne a nikt wcześniej na to nie wpadł. Gratuluję wam obu - pomysłu i wykonania, bo jak dla mnie właśnie dzięki prostocie UI jest to chyba najlepszy obecnie mod 105tki.
Awatar użytkownika
smokuxx1987
Posty: 2113
Rejestracja: środa 16 maja 2012, 19:04
Lokalizacja: Krosno

Post autor: smokuxx1987 »

Świetny soft.
Mam pytanie odnośnie zabezpieczenia termicznego, czy można w jakiś sposób sprawdzić jaka jest aktualnie ustawiona wartość zabezpieczenie termicznego?
Czy jest zrobione na tej zasadzie że trzeba pamiętać o ile się podniosło czy obniżyło jego wartość?
Awatar użytkownika
Pyra
Site Admin
Posty: 8522
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Jeśli chodzi o ustawianie temperatury, to ustaliliśmy, że wystarczy tryb serwisowy. Ustawienie będzie przebiegało w zasadzie tylko raz na początku, być może nawet przez Bociana.
W związku ze sporym rozrzutem parametrów czujnika temperatury, granica zadziałania, będzie ustalana organoleptycznie, na zasadzie: za gorąca, obniżamy o 5°C, zadziałało za nisko, podnosimy o 5°C, jak za mało, to jeszcze raz, itd.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
greg
Posty: 3535
Rejestracja: środa 08 paź 2008, 00:16
Lokalizacja: Wrocław
Kontakt:

Post autor: greg »

ElSor pisze:Jak mi powiedział o pomyśle z kondensatorem to mnie aż zatkało. Takie banalne a nikt wcześniej na to nie wpadł.
Pomysł z podtrzymaniem kondensatorem portu procesora zamiast zasilania jest bardzo dobry, ale nie jest nowy :) Pisałem na forum o tym sposobie jakiś czas temu w tym wątku.
Bocian pisze: Precyzyjny pomiar napięcia ogniwa pod obciążeniem
Niestety, z doświadczenia pomiar mało precyzyjny. Nie bazowałbym na tym jak na multimetrze, srodze można się zawieść. Dokładność napięcia odniesienia ATtiny25V wynosi około 10% (wg karty katalogowej), praktycznie jest ciut wyższa, ale daleko tu do jakiejkolwiek precyzji.

Podoba mi się pomysł kalibracji zabezpieczenia termicznego. Podobny jak w driverach TaskLEDa. Tam ustawia się jeszcze dodatkowo próg zadziałania ochrony ogniwa.
Sterownik extended v3.5 HE <klik>
Instrukcje sterowników w PDF <klik>

kontakt: info(at)krypton(dot)pl
(podstawić @ i . w stosowne miejsca)
Awatar użytkownika
ElSor
Site Admin
Posty: 5038
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

greg pisze:Pomysł z podtrzymaniem kondensatorem portu procesora zamiast zasilania jest bardzo dobry, ale nie jest nowy :)
Przyznaję zatem, że umknęło to mojej uwadze i dopiero od Sławka usłyszałem o realnym zastosowaniu tego pomysłu.
Awatar użytkownika
pralat
Posty: 413
Rejestracja: piątek 16 kwie 2010, 12:27
Lokalizacja: Opole

Post autor: pralat »

Na wstępnie: dobra robota :mrgreen:

Zastanawiam się od dawna nad możliwością wykonania sterowania w stylu Xeno E03, czyli:
- klik normalny (powiedzmy: 0,5 .. 1,0 s) - zmiana trybu na kolejny
- trzy szybkie kliki (< 0,5 s) - włączenie trybów specjalnych.
Czy to uda się osiągnąć lutując do pierwszej gwiazdki kondensator 470nF, a do drugiej 1uF (no i oczywiście odpowiednia obsługa w sofcie)? Czyli w skrócie chodzi o rozpoznawanie kliku "krótkiego" i "długiego" bez pomocy zapisów do eepromu.
Awatar użytkownika
Bocian
Site Admin
Posty: 3149
Rejestracja: niedziela 11 lis 2007, 21:21
Lokalizacja: Wiskitki

Post autor: Bocian »

greg, dla mnie na kilkanaście egzemplarzy jak dotąd zbudowanych i przetestowanych pod labo działa to zadziwiająco dobrze i dokładnie. Przyznasz jednak, ze większa rozdzielczość wyniku pomiaru dla doświadczonego użytkownika, który oswoi tą konstrukcję, jest raczej plusem.
Sometimes darkness can show you the light
Awatar użytkownika
artur_n
Posty: 874
Rejestracja: niedziela 03 mar 2013, 17:37
Lokalizacja: Jarosław

Post autor: artur_n »

Kiedy można będzie nabyć serowniki do testów?
Everybody lies...
Awatar użytkownika
Bocian
Site Admin
Posty: 3149
Rejestracja: niedziela 11 lis 2007, 21:21
Lokalizacja: Wiskitki

Post autor: Bocian »

artur_n pisze:Kiedy można będzie nabyć serowniki do testów?
Na dniach :)
Sometimes darkness can show you the light
Awatar użytkownika
greg
Posty: 3535
Rejestracja: środa 08 paź 2008, 00:16
Lokalizacja: Wrocław
Kontakt:

Post autor: greg »

Bocian pisze:greg, dla mnie na kilkanaście egzemplarzy jak dotąd zbudowanych i przetestowanych pod labo działa to zadziwiająco dobrze i dokładnie. Przyznasz jednak, ze większa rozdzielczość wyniku pomiaru dla doświadczonego użytkownika, który oswoi tą konstrukcję, jest raczej plusem.
Pierwsze 10 tak, następne 50 nie ;)
Podobnie jak z pomiarem temperatury, który właśnie bazuje na napięciu odniesienia i głównie z tego powodu "pływa". Sam się przekonasz :)

P.S.
Właśnie dlatego zrezygnowałem z "większej rozdzielczości", ponieważ okazało się to raczej minusem.
Sterownik extended v3.5 HE <klik>
Instrukcje sterowników w PDF <klik>

kontakt: info(at)krypton(dot)pl
(podstawić @ i . w stosowne miejsca)
Awatar użytkownika
Bocian
Site Admin
Posty: 3149
Rejestracja: niedziela 11 lis 2007, 21:21
Lokalizacja: Wiskitki

Post autor: Bocian »

Jak widać i jedno i drugie rozwiązanie ma swoje wady i zalety (sposób wizualizacji stanu aku). Dla mnie z kolei minusem jest to, że muszę pamiętać ile błysków jaki przedział napięcia reprezentuje. Ale co kto lubi :)
Sometimes darkness can show you the light
Awatar użytkownika
greg
Posty: 3535
Rejestracja: środa 08 paź 2008, 00:16
Lokalizacja: Wrocław
Kontakt:

Post autor: greg »

Precyzyjny układ napięcia odniesienia kosztuje około 20x więcej, niż cały procesor serii ATtiny25/45/85V. Jest drogi, ponieważ technologia do niskobudżetowych nie należy.

Układ napięcia odniesienia w ATtiny jest tani. Tani, znaczy mało dokładny. Na tym typie procesora można zbudować w miarę precyzyjny woltomierz czy termometr, lecz wymaga to minimum dwupunktowej kalibracji zakresu pomiarowego, oczywiście dla każdego układu indywidualnie.
Sterownik extended v3.5 HE <klik>
Instrukcje sterowników w PDF <klik>

kontakt: info(at)krypton(dot)pl
(podstawić @ i . w stosowne miejsca)
Awatar użytkownika
Pyra
Site Admin
Posty: 8522
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
pralat pisze:Zastanawiam się od dawna nad możliwością wykonania sterowania w stylu Xeno E03, czyli:
- klik normalny (powiedzmy: 0,5 .. 1,0 s) - zmiana trybu na kolejny
- trzy szybkie kliki (< 0,5 s) - włączenie trybów specjalnych.
Rozwiązanie jest podobne.
Pojedyncze kliki, czyli czas przerwy w zasilaniu i następujący po nim czas świecenia dłuższy od 0,5s są traktowane jako pojedyncze sygnały, tak więc przeklikiwanie się zmianą trybów i 20 razy, nie spowoduje wywołania innej funkcji. Trzeba świadomie wykonać szybki 3 klik, aby wejść w strobo itd.

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
alienth
Posty: 270
Rejestracja: poniedziałek 08 paź 2012, 19:10
Lokalizacja: Rzeszów

Post autor: alienth »

Gratuluje pomysłu i realizacji. Cieszy mnie to, że w kwestii programowalnych sterowników cały czas się coś dzieje :) Opcja zmiany trybów "do przodu" i "do tyłu" bardzo mi się podoba i myślę, że już ma kilku zwolenników (np. ja :) ), zabezpieczenie termiczne bardzo się przyda. Mam jeszcze kilka pytań. Jak wygląda kwestia pamięci ostatniego trybu oraz kwestia przerwania kontaktu akumulatorka jadąc np. rowerem w pagórkowatym terenie, tryby się zmienią?

Czy planujesz wypuścić wersję 1.4A, konkretnie mod Nanjg 101-AK-A1?
Czy będzie możliwość nabycia samego zaprogramowanego procesora z kondziołkiem do samodzielnego moda?
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
ODPOWIEDZ