Strona ta jest historią ścieżki którą przeszedłem nim dotarłem do obecnej zawodowej pozycji embedded developera. W razie propozycji albo pytań zapraszam na maila: marcinpopko@outlook.com albo Linkedina (link po prawej stronie)
Widzę że zaczyna powstawać, jak na tą chwilę drobne, ale zawsze, zainteresowanie moim blogiem. Coraz więcej początkujących szuka gotowych rozwiązań? Być może. W większości ludzie szukają sposobu okiełznania termometru DS18B20, temat popularny, nie ma co. Jednakże nikt nie pozostawia komentarza, odpowiedzi innego śladu.
Jeżeli macie jakieś problemy, rozkminy nie do przejścia albo jakieś sugestie przy programowaniu piszcie śmiało, razem rozwiążemy kłopot:)
Naszła mnie chęć stworzenia czegoś w stylu lampki z ledem rgb, jako że takowej nie posiadałem zastosowałem zasadę "użyj co masz pod ręką". Znalazło się tymczasowe (zawsze można wyjąć z podstawki:)) zastosowanie attiny2313 którego kupiłem jakiś czas temu ale walał się niepotrzebny. Wstępnie planowałem użyć 4 ledów, ale po wstępnych testach okazało się że środkowy biały led psuje urok całej układanki.
Do uzyskania efektu pseudo neonów użyłem obudowy po długopisach za złotówkę.
Jako że korzystanie z interfejsu złożonego z jednego przycisku i dwóch ledów (jak w STM32F0DISCOVERY) jest nudne potrzebne jest nam coś co pomoże nawiązać głębszy kontakt z naszym mikrokontrolerem, by mógł powiedzieć nam co go boli, co chce zjeść itd. Mianowicie chodzi o standardowy wyświetlacz LCD zgodny ze sterownikiem hd44780. Jako że brakowało w internecie bibliotek stricte gotowców, co nieco przerobiłem tak żeby jakoś w miarę chodziło przy moim zestawie i w miarę komfortowo się z nich korzystało.
Zaznaczam że nie jest to rozwiązanie profesjonalne,
broń boże nie brać tą bibliotekę za wzorowo
wykonaną, ale tyle o ile zdatną do uruchomienia lcd. Znasz się lepiej?
Popraw i przekaż dalej, a wszyscy z tego skorzystają!
Dodałem uproszczoną konfigurację, funkcję do wyświetlania liczb i pozmieniałem nazwy funkcji. Jako że jestem leniem i nie lubię się bawić w wpisywanie LCD_GoTo (czyż nie jest to "PoKeMoŃskIe"? :D), a gdy zapomnę gdzieś wstawić dużej litery kompilator krzyczy wniebogłosy.
Wolę po prostu wpisać lcd_goto lub lcd_locate jako że przy avr taką funkcją operowałem.
Składa się z lcd_hd44780_lib.c i lcd_hd44780_lib.h
Piny wyświetlacza konfigurujemy w lcd_hd44780_lib.h
STM32DISCOVERY zamontowany w dwóch płytkach stykowych - dobry komplet do testów
A tak wygląda pudełko od tego sprzętu :D
Witam!
Latem tego roku odbył się konkurs, quiz na stronie http://www.stm32.eu/ w którym można było wygrać zestaw STM32F0-DISCOVERY w którym wziąłem udział i udało mi się takowy zestaw zdobyć. Myślę sobie łaaał 32-bitowiec, 64kb pamięci flash i 8kb ramu, szpan na dzielni, znacznie silniejsze od najbardziej typowego AVR (Atmega8). Upłynie sporo wody zanim odkryje potencjał tego mikrusa.
Sam producent wyciąga rękę do amatorów dostarczając masę programów testowych dla różnych peryferiów mikrokontrolera. Póki co udało mi się wykonać pierwsze zadanie "Hello World!" - zaświecenie diodą jak to przy uC bywa. Jednakże stopniowo będę odkrywał kolejne peryferia, o postępach na pewno się podzielę na blogu :)
Testy płytki z multipleksowanym wyświetlaczem 7 segmentowym
Witam!
Przedstawiam kilka randomowych zdjęć z moich różnych prac.
Płytka z wyświetlaczem 7-segmentowym powstała aby łatwo można było przetestować jakieś rozwiązanie. Montaż bezpośrednio na płytkę jest dość czasochłonny, a tak wpinamy moduł i mamy gotowy zestaw do pracy :)
"Trzymadło" specjal
Termometr silnika do samochodu
Prototyp kostki LED
Na pomysł skonstruowania "trzymadła" wpadłem przypadkiem. Lutowanie pojedynczych goldpinów, diod LED i innych małych elementów bez przytrzymania jest uciążliwe. Prosta budowa a ile mniej męczarni z uciekającym ledem :)
Jako że w moim pojeździe nie było wmontowanego termometru a tylko kontrolka od przegrzania, powstał takowy dodatek. Przy następnej okazji wrzucę zdjęcie jak urządzenie prezentuje się zainstalowane w samochodzie.
Zawsze przy rozpoczęciu projektu powstaje prototyp, nie było inaczej w przypadku kostki LED. Niepotrzebne tranzystory dla katod diod zwolniły dość dużo miejsca.
Ponieważ w trakcie wakacji czasu jest co niemiara postanowiłem skleić sobie klasyczny programatorek AVR'ów STK200 pod LPT, ot na wszelki wypadek jakby coś mój STK500v2 szwankował albo zaczął strajk generalny. Jako podstawę użyłem płytki uniwersalnej, chyba najprostszej jaka była pod ręką. Lubię ten programator ze względu na cenę zbudowania - "zamknie" się w około 6 złotych. Jako że konstrukcja jest wpinana bezpośrednio w złącze w komputerze musi być jakoś zabezpieczona, tu posłużyła obudowa od zużytej baterii 3R12.
Klasyczna naklejka z nazwą programatora:)
Nie jest to profesjonalna produkcja, ale celem tego bloga jest ukazanie amatorskich konstrukcji stworzonych w przystępny sposób.
I mam pytanie, posiadam Windowsa 7 x64 i jest problem z odblokowaniem portów LPT w avrdude. Czy ktoś to rozwiązał?
Chciałbym przedstawić swój prosty projekt termometru DS18b20. Bazuje na multipleksowanym wyświetlaczu LED, mikro-kontrolerze atmega8 (Wewnętrzny oscylator 8MHz) i ww. termometrze pracującym w trybie parasite. Zasilany jest z płaskiej baterii 3R12 (4,5V). W przypadku braku czujnika wyświetlacz będzie migać cyframi "88".
Łączny koszt wykonania termometru to ok. 15zł.
Schemat:
Posiada standardowe kondensatory filtrujące, rezystor 10k do Vcc przy resecie.
Film obrazujący działanie urządzenia:
Plik .hex do wgrania bezpośrednio do mikro-kontrolera (taktowany wewnętrznym oscylatorem RC 8MHz): http://adf.ly/Oipvr
Pozdrawiam i życzę udanej drugiej połówki wakacji:)
Z powodu nadmiaru wakacyjnego czasu postanowiłem kontynuować mój projekt kostki LED, który gdzieś powstał na przełomie maja/czerwca. Miała to być maksymalnie uproszczona wersja tego co możemy znaleźć w sieci. Stworzenie takiej kostki zajęło mi około 1,5h lutowania. Ogólnie cały zestaw składa się z dwóch modułów, jeden z mikrokontrolerem i peryferiami, drugi z ledami oraz tranzystorami do multipleksowania, jako że udało mi się zmieścić je razem. Bałem się jedynie że może zostać przekroczony próg wydajności prądowej uC, ale wszystkie świecące się 27 ledów pobierało około 230mA prądu (max z megi to 300).
Od początku mój pomysł zakładał że użytkownik będzie mógł dokonywać interakcji z kostką. Wstępnie to miał być prosty joystick ze switch'y, jednak był na tyle nieporęczny że zdecydowałem się na sterowanie podczerwienią - pilotem RC5. Znalazło się nawet miejsce na module uC dla odbiornika TSOP, a switch'e może się przydadzą do jakiegoś innego projektu.
Od momentu zbudowania pierwszej wersji kostki program zaczął powoli powstawać, najpierw było zapalanie i gaszenie całej kostki, potem zacząłem tworzyć cały mechanizm multipleksowania. Tak zacząłem tworzyć proste sekwencje:
Po jakimś czasie wpadłem na pomysł żeby sterować pojedynczą diodą, lub tworzyć proste sekwencje z poziomu mikrokontrolera i móc je potem odtworzyć.
Wciśnięcie specjalnego przycisku na pilocie zapisuje współrzędne punktu do pamięci EEPROM mikrokontrolera w postaci tablic, dla x, y i z. Zapamiętuje przy okazji ilość zaprogramowanych punktów. Po przejściu do opcji odtwarzania odczytuje z EEPROM'u współrzędne i wyświetla po kolei w odstępie czasowym ok. pół sekundy.
Jako że dostępność przejściówek RS-232 jest ogromna, postanowiłem takową zakupić (HL-340 czy jakoś tak) i pójść na skróty zamiast zbudować własną. Wszystko git, sprzęt wykrywany, niestety nie zostały dołączone sterowniki pod system 64-bitowy i miałem z tym problem jako że takowy posiadam. Po jakże długim googlowaniu udało mi się znaleźć pasujące driver'y. Zapraszam do wypróbowania: W paczce jest CH341SER/CH341SER/DRVSETUP64.exe odpalamy, klikamy install i powinno hulać.
Link do sterownika:http://adf.ly/DzoE3
Udało już mi się rozkminić prosty program do komunikacji USART między mikrokontrolerem a pecetem, temperatura z kochanego DSka w konsoli:)
Od jakiegoś czasu pląta się mi w głowie dość dużo pomysłów, które postaram się wykonać wkrótce:
1. Termometr do silnika samochodu na wyświetlaczu 7 segmentowym. Sam wyświetlacz już rozkminiony: http://www.youtube.com/watch?v=H2wZjyOaDLU 2. Rozpoznanie komunikacji po rs-232 między PC a mikrokontrolerem. 3. Generator dźwięku na bazie licznika NE-555. 4. Przesiadka na atmegę16, generowanie obrazu wideo. Wieem wysoka poprzeczka. 5. Przetwornik analogowo cyfrowy, pomiar napięć, prądów i tak dalej. 6. Projekt mobilnej "ściągi piórnikowej" na wyświetlaczu od Nokii 3310. 7. Sterowanie PWM, kierunkami jazdy, sterowanie podczerwienią? + zakończenie budowy robota. Wrzucę niedługo parę zdjęć, zapowiada się obiecująco.
Strudzony mało wygodnymi eksperymentami (głównie z pinami LCD) na płytce stykowej, postanowiłem zrobić coś w stylu płytki prototypowej. Zrobić, ponieważ ceny typowych "gotowców" zdecydowanie są za wysokie. Przy okazji, tworząc dochodzi dalsza praktyka lutowania, składania itd. Jako że nie miałem dokładnego planu co na takowej płytce chce posiadać, wybrałem płytkę uniwersalną PDU-41 firmy WOJART Polska jako podstawę. Dzięki temu, z czasem dorzucanie dodatków nie stanowi problemu. Ma ona dobrze wyprowadzone linie do zasilania poszczególnych elementów, co ogranicza stosowanie dodatkowych kabli.
Płytka w obecnej wersji składa się z uC Atmegi8 na podstawce, wyświetlacza LCD HD44780, złącza typu kanda, czujnika podczerwieni i dwóch czujników DS18B20. Posiada 4 switche, jeden do resetu, reszta programowalna, dwa LEDy, komplet kondensatorów i rezystorów filtrujących "jak ustawa przewiduje". Zasilanie pochodzi albo z zasilacza poprzedzonego stabilizatorem L7805 albo ze złączą kanda, jako iż mój programator (USB AVR PROG firmy SIBIT) ma zasilanie z USB.
Według producenta zasilanie z programatora USB na bezpiecznym (dla programatora) poziomie może zapewnić do 100mA prądu, więc do obecnych zastosowań jest wystarczające.
Witam wszystkich! Pierwszy post na blogu, zamieszczam od razu swój projekt wstawiony już również na portalu elektroda.pl :)
Wstęp
Na pomysł stworzenia "neonowego" napisu wpadłem jakiś rok temu. Nadał się on do szkoły na tzw. dzień integracyjny jako emblemat mojej klasy, 1TM2. Jako że zacząłem przygodę z mikrokontrolerami, postanowiłem stworzyć coś więcej, mianowicie migający na różne sposoby napis.
O samym napisie słów kilka...
Całość składa się z 13 diod LED zamontowanych w obudowy od długopisu za złotówkę. Za podstawę dla nich posłużył stary karton oklejony czarną folią. Wyprowadzony wyłącznik i dwa switche - jeden reset, drugi do zastosowania w przyszłości. Układ sterowania
Najprostszy mikrokontroler - Attiny13. Jako że ma ograniczenie prądu I/O do 80mA, a diodki pobierają razem około 100 mA zastosowałem tranzystor BC 547, każdy odpala oddzielnie swój segment. Wszystko to na płytce uniwersalnej PDU-21. Całość zasilana z dwóch dużym baterii 1,5V. Program został napisany przeze mnie w C, cudów nie stworzyłem ale jestem dopiero po "przesiadce" z Bascoma.
Wrażenia Banerek przedstawia się całkiem fajnie, zwłaszcza w ciemności