poniedziałek, 5 listopada 2012

Feel free to ask anything

Witam!

Ja wcale nie gryzę! :D
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:)



Pozdrawiam,
~Mesho



wtorek, 23 października 2012

Szybki spontan - led ala'rgb + pwm.

Witam!

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ę.

Efekt? Zobaczcie sami:

"Wideło" z testów na "jutube":

http://youtu.be/WtzFiWBYoww

Źródła z gotowym wsadem i krótkim komentarzem:

http://adf.ly/DznrD

Jeżeli są jakieś pytania co do programu - wal śmiało.



Greets,
Mesho

środa, 17 października 2012

[STM32] Pierwsza rozkmina - wyświetlacz hd44780

Witam!

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ą!

Oto efekt:




Nieprzerobione biblioteki znalazłem na blogu:
http://avrkwiat.nstrefa.pl/omnie/index.php?option=com_content&view=article&id=123&Itemid=145

Przerobione przeze mnie ww. biblioteki:
http://adf.ly/DznoN

 Gotowy program testowy do wgrania przez Keil uVision:
http://atmegan.blogspot.com/2013/03/stm32f0-hd44780-raz-jeszcze.html


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

//**********  Ustawienia pinów wyswietlacza     **********//
#define LCD_GPIO GPIOB //port
#define LCD_CLK_LINE RCC_AHBPeriph_GPIOB //linia zegarowa, zmienic litere portu

#define LCD_D4 GPIO_Pin_6
#define LCD_D5 GPIO_Pin_5
#define LCD_D6 GPIO_Pin_4
#define LCD_D7 GPIO_Pin_3

#define LCD_RS GPIO_Pin_13
#define LCD_RW GPIO_Pin_14
#define LCD_EN GPIO_Pin_15
//********** Koniec ustawien pinów wyswietlacza **********// 
 Lista funkcji:
lcd_init(); //inicjacja wyświetlacza
lcd_cls(); //czyszczenie wyswietlacza
lcd_str("Teskt"); //wprowadzanie tekstu
lcd_strxy("Teskt", liczba kolumny, liczba wiersza); //wprowadzanie tekstu + lokalizacja
lcd_locate(liczba kolumny, liczba wiersza); //lokalizacja kursor
lcd_int(66); //wprowadzanie liczb
lcd_intxy(66, liczba kolumny, liczba wiersza); //wprowadzanie liczb + lokalizacja

Pozdrawiam :)

wtorek, 9 października 2012

Nowe możliwości - 32 bitowy ARM

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 :)



A tak wyglądał pierwszy test:

poniedziałek, 24 września 2012

Randomowe zdjęcia z prac

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.








To by było na tyle,
Do następnego posta :)




niedziela, 12 sierpnia 2012

STK200 na wszelki wypadek


Witam!

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ł?

To by było na tyle.



Schemat programatora (kliknij aby powiększyć):

niedziela, 5 sierpnia 2012

Prosty termometr DS18B20



Witam!

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:)

niedziela, 15 lipca 2012

[Prototyp][Atmega8] Kostka LED 3x3x3

Witam!

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.



Na razie to wszystko co chciałem przedstawić.

Pozdrawiam,
Mesho

386aca5f0c3d22ca89df78b1b285149e

środa, 30 maja 2012

Przejściówka RS-232

Witam!

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 podLink 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:Linkhttp://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:)


Na razie tyle,
Pozdrawiam:)

sobota, 31 marca 2012

Moc pomysłów w głowie

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.

Będzie się działo!:)

wtorek, 27 marca 2012

Pora na solidną podstawę!
















Czołem! :)

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.

Nowsza wersja niniejszej płytki z opisem:
http://www.elektroda.pl/rtvforum/viewtopic.php?p=11044526


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.

A więc pora zacząć programować!:)
~Mesho

sobota, 4 lutego 2012

[Attiny13] Napis LEDowy




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 Smile

Film przedstawiający działanie napisu: