sobota, 27 lipca 2013

WAV PLAYER + RTC = Mówiący zegar


Witam!

Chciałbym przedstawić kolejny projekt nad którym pracuję, ale urósł już on do jako takiej formy. Jako że mamy dostęp do odtwarzania plików wav z karty pamięci, czemu by tego nie wykorzystać aby stworzyć mówiący zegar?
Jako że głosu jakiegoś specjalnego głosu radiowego nie mam, postanowiłem posłużyć się syntezatorem Ivona, który w wersji trial był wystarczający, abym mógł wygenerować to co na tą chwilę potrzebuję.

W połączeniu z zegarem RTC PCF8583 powstał gadający zegar, posiadający na tą chwilę dwie funkcje gadania - godzina na życzenie oraz wypowiadanie o równej godzinie automatycznie.

Zresztą co będę się dużo rozpowiadał - wszystko mówi poniższe nagranie:


Czy poszerzę to dalej? Być może... Jak przyjdą mi dodatkowe pomysły na dodatki :))

Źródła:
https://docs.google.com/file/d/0ByyXOOtWDAmuWFI4ZGFTUWdYNUE/edit?usp=sharing


Tak mniej więcej wygląda na tą porę drzewko plików:)


Klasycznie biblioteki z książek zamazałem, kto je posiada i ma łeb na karku - będzie potrafił złożyć to do kupy:) Co do samego odtwarzania - starałem się maksymalnie uprościć procedurę wyboru pliku z żądaną godziną i minutą, pewnie wyższym udało by się to zrobić lepiej, ale działa. Nad programem jeszcze będę pracował, na razie na tą chwilę jest może nieco bałagan w kodzie, wprowadzę obsługę przycisków bez _delay_ms(), efektywniejsze nastawianie zegara i może jeszcze jakieś dodatki - zależy co do głowy przyjdzie.


Jakieś pytania, sugestie, groźby?

Pozdrawiam

wtorek, 9 lipca 2013

Czujnik DS18B20 - odczyt rom code

Witam!

Użycie wielu czujników temperatury DS przy jednym projekcie bywa czasem kłopotliwe, jeżeli nie
odpytamy tych które właśnie w danym miejscu programu chcemy. Potrzebowałem rozwiązania do jednego ze swoich projektów, jak zwykle przewalając szukajke znalazłem tylko poszlaki, więc przyszło mi się trochę nad nimi popracować. Miał to być program którym odczytałbym kod i wkleił do projektu właściwego "imię i nazwisko Kowalskiego" którego miałbym właśnie odczytać.

Wersja oryginalna, kiepsko to wygląda :(
Znalazłem dobrą poszlakę na stronie: http://hobby.abxyz.bplaced.net/index.php?pid=8&tid=45
wysyła on kod w hex przez UART, pomysł dobry lecz postanowiłem go dopracować wedle własnego uznania, ponieważ te krzaczki są mało funkcjonalne. Aby wkleić id do programu trzeba było się namęczyć dodając 0x, przecinki dołączając go do tabeli a ja jestem leniem!:)


Nie wygląda to lepiej?:)

Jako że dzięki poradnikowi:
https://www.youtube.com/watch?v=qDDCU3udirA (zajrzyj, bo warto!) Mirka z forum.atnel.pl poznałem kody terminala VT100, postanowiłem chociaż podstawową część z nich wykorzystać.





Jako że to co stworzyłem ma jakąś wartość merytoryczną i może się przydać innym udostępniam źródła + gotowy wsad do pobrania: 07_UART_DS_ODCZYT.zip http://adf.ly/Rmxe9
Kod jest dobrze okomentowany, więc myślę że nie potrzeba moich dodatkowych wyjaśnień.
Aby ciągle mikrokontroler nie wysyłał tego samego adresu, wykonałem wyzwalanie odczytu przyciskiem, schemat ogólny (bez złącza kanda/kondensatorów filtrujących) wygląda następująco (obrazek po lewej stronie).



Program w konsoli drukuj gotową tabelę języka C z kodem w hexach, starczy ją kleić bezpośrednio do kodu programu:

Done by Mesho @ www.atmegan.blogspot.com

DS18B20 ID READER
unsigned char rom_code[8] = {0x28, 0x82, 0xCE, 0x8E, 0x04, 0x00, 0x00, 0x48};
 


 Jak go użyć? Korzystam z biblioteki do ds18b20 z niebieskiej książki i przy odczytywaniu temperatury starczy zrobić prosty myk:

if( DS18X20_OK == DS18X20_read_meas(rom_code, &subzero, &cel, &cel_fract_bits) ) display_temp(3);



poniedziałek, 8 lipca 2013

Zestaw uruchomieniowy ATB rev 1.04 - opinia i kilka porad


ATB rev 1.04
Czołem!

Los sprawił, że w moim warsztacie przybyło kolejne narzędzie, a mianowicie zestaw uruchomieniowy ATB firmy Atnel. Po ponad tygodniu pracy na nim stwierdzam że jest dobry, nawet bardzo dobry i to nie jest tak że mi zapłacili za tą reklamę. Nie wiem jak to ma się z konkurencyjnymi zestawami, ponieważ jest to moje pierwsze tego typu urządzenie "zakupne".

Przy użyciu kilku kabli połączeniowych możemy złożyć dowolny projekt, komfort pracy na takim sprzęcie jest na prawdę na poziomie:)

Jedną zajawkę skleconym odtwarzaczem wave wrzuciłem już na tubę:
http://youtu.be/hWvW0g3qMUI

Kupiłem go w najtańszej opcji, a co za tym idzie bez dodatków, więc parę elementów musiałem zdobyć/wykonać samodzielnie. Co jest potrzebne do rozpoczęcia pracy?

Jak go wykonać
Własnoręcznie wykonany:)

1. Kabelek połączeniowy do wbudowanego programatora, ładnie wytłumaczona budowa na zdjęciu po lewej stronie. Dzięki niemu nie ma potrzeby użycia zewnętrznego programatora, do zestawu podłączamy



60 sztuk wystarczy na pewno!:)



2. Kable połączeniowe - tutaj nie robiłem kombinacji, jako że można je kupić 30 sztuk za 10zł, postanowiłem się nie męczyć i nabyłem takowe na Allegro.




 3. Konwerter z DIP40 na DIP28. Dość spora ilość projektów bazuje na starej dobrej Atmedze8 więc aż się prosi o posiadanie takowego.
Można go zakupić, jednak funkcjonalność wykonanego własnoręcznie jest dla mnie wystarczająca. Niestety DIP28 musiałem wyciągnąć poza obrys DIP40 w celu zminimalizowania ilości przelotek.
Podpięte zostało minimum dla mnie potrzebne: linie ISP, zasilanie normalne i części analogowej. Reszta wedle uznania będzie podłączana kablami połączeniowymi.

Podstawowe kondensatory na zasilaniu, miejsce na kwarc jest, ale użyje je gdy zajdzie faktycznie takowa potrzeba.

Wszystko tworzy ładnego pająka:)
Programator FT232 ważne!
Jeżeli masz jakiś programator/przejściówkę opartą o scalak FT232 musi zostać wypięta z USB podczas korzystania z programatora na ATB. Miałem problem bo mój STK500v2 właśnie ma dodatkowo takowy scalak i przy podłączonych obu programatorach bo prostu się gryzą i nic nie działa.

Sterowniki do pobrania z:
http://www.ftdichip.com/Drivers/D2XX.htm
Polecam pobrać jako samo instalującą się paczkę, zdecydowanie prościej:) Pomimo że były wgrane już sterowniki wcześniej, musiałem wgrać najnowsze aby wszystko działało.


Pozdrawiam,
Marcin