Oto nowa wersja rejestratora temperatury. Tym razem jest to dedykowana płytka dwustronna wykonana metodą termotransferu zamiast uniwersalnej. Układ został wzbogacony o wyświetlacz alfanumeryczny, klawiaturę oraz beeper.

Klawiatura posiada 6 przycisków połączonych w matrycę – „strzałki”, „OK” (lewy-dolny) oraz „Powrót” (prawy-dolny). Po przetrzymaniu przycisku OK w czasie startu rejestratora (reset) włącza się tryb konfiguracji w którym można ustawić aktualny czas (w przyszłości będzie tam więcej opcji). Wyświetlacz, to 16-znakowy moduł na sterowniku zgodnym z HD44780 kupiony za jedyne 5,5zł w sklepie Lispol ;-) . Wyświetlana jest na nim aktualna godzina oraz temperatura naprzemiennie z datą. W przeciwieństwie do pierwszej wersji, na płytce znajdują się trzy diody sygnalizacyjne (zasilanie, status – mruga co 5 sekund, zapis\odczyt z SD(SPI)\RTC(I2C)\Termometra(1Wire)) oraz beeper, który wydaje dźwięki podczas wciskania przycisków przy konfiguracji oraz sygnały kontrolne przy starcie. Dodatkowo na płytce znajduje się wyprowadzenie RS232 (TTL) przydatne przy debugowaniu.

Program nie jest jeszcze w pełni ukończony – wymaga trochę zmian w celu optymalizacji (był pisany „na szybko” – co widać np. przy budowie sekcji konfiguracji – ustawienia daty\godziny) oraz dodania kilku nowych funkcji. Rejestrator działa od początku lutego i jak na razie sprawuje się bardzo dobrze.

Firmware, przeglądarka (wersje skompilowane jak i źródła) dostępne poniżej! Jeśli podoba Ci się projekt, zostaw swój komentarz.

FOLDER PROJEKTU:

  Otwórz folder:
  TEMPLOGGER2/

FIRMWARE:

Aktualna wersja: 0.20

  Pobierz plik: templogger2/firmware/tl_firmware_0.20_a32_8mhz.hex
  Rozmiar: 56.05 KB, pobrany 1335 razy.

  Pobierz plik: templogger2/firmware/tl_firmware_0.20_src.zip
  Rozmiar: 229.18 KB, pobrany 1617 razy.

* Program wymaga wyłączenia JTAGa – piny PC1…PC5 są używane (LCD).
Przykładowa konfiguracja w AVR8-Burn-o-mat:

do zrobienia m.in:

- zapisywanie wartości średniej z kilku pomiarów zamiast z jednego;
- opcja wyłączenia dźwięku, lub wyłączenia beepa kontrolnego podczas startu w godzinach nocnych – przydatne kiedy wyłączają i włączają prąd o 4 rano :-) ;
- uruchomienie watchdoga na wypadek zawieszenia się programu;
- automatyczna reinicjalizacja karty po wyjęciu w trakcie działania urządzenia;
- ogólna optymalizacja kodu, np. menu

znane błędy:

- zawieszanie się rejestratora po wyjęciu (i włożeniu) karty SD przy próbie zapisu (wymagany reset)

UKŁAD:

Aktualna wersja: 1.1

Schemat wykonałem przede wszystkim w celu wygodnego stworzenia layoutu płytki e Eagle, więc jest trochę niedokładny ;-)

DODATKI:

- Przeglądarka (Win32; aktualna wersja: 1.0); program napisany w Delphi (7).
  Pobierz plik: templogger2/viewer/tl_viewer_1.0_bin.zip
  Rozmiar: 210.92 KB, pobrany 709 razy.

  Pobierz plik: templogger2/viewer/tl_viewer_1.0_src.zip
  Rozmiar: 10.91 KB, pobrany 594 razy.

- Przeglądarka online (aktualna wersja: 1.0); napisana w PHP – jeśli chcesz zobaczyć kod źródłowy, napisz do mnie.

WYNIKI POMIARÓW (offline):

Folder „dane” z plikami tekstowymi powinien znajdować się w jednym folderze razem z TLViewer.exe.
  Otwórz folder:
  TEMPLOGGER2/DANE/

mouse_icon1

Ostatnio w wolnym czasie dla zabawy zbudowałem prosty sterownik myszki szeregowej.
Po podłączeniu do portu COM i wystartowaniu komputera jest wykrywany jako zwykła myszka 2-przyciskowa.
Układ powstał z moich płytek testowych. Jest to najzwyklejsze połączenie mikrokontrolera ATMega8 z COMem przez układ MAX232. Dodatkowo do lini RTS portu podłączyłem tranzystor poprzez diodę prostowniczą i opornik, który uruchamia przerwanie w chwili pojawienia się stanu wysokiego.

Protokół jest bardzo prosty. Po pojawieniu sie +12V na linii RTS układ wysyła bajt 0x4D („M”) w celu inicjacji. Dalsza komunikacja polega na wysłaniu 3-bajtowych pakietów z aktualnym stanem zgodnie z tą tabelką:

Parametry transmisji to 1200 bodów/s, 7\8 bitów danych oraz brak kontroli parzystości. W przypadku 8 bitów danych, najstarszy bit zawsze ma wartość 1. Bit 6 w każdym bajcie jest stały. L i R mają wartość 1 w przypadku wciśniętego przycisku, a X\Y 0-7 to liczba w kodzie U2 (-128 do 127) określająca zmianę położenia kursora.

Krótki program w języku Bascom razem z HEXem skompilowanym dla ATMegi8@12MHz dostępny poniżej. Co 2 sekundy „robi kwadrat” kursorem po ekranie. Można go rozbudować, np. o obsługę klawiatury matrycowej.

  Pobierz plik: mouse_bas.zip
  Rozmiar: 1.02 KB, pobrany 213 razy.

[13-05-2010]: Nowa werja rejestratora

Oto mój pierwszy opublikowany tutaj projekt – rejestrator temperatury z obsługą kart Secure Digital (SD).
(temat przeniesiony z portalu elektorda.pl)
Projekt powstał oczywiście w celach naukowych. Podstawą układu jest moja płytka testowa z mikrokontrolerem ATMega32. Dołączyłem do niej termometr cyfrowy DS18B20, zegar RTC DS1307 oraz adapter wpinany w gniazdo ISP (Kanda; zamiast LED jest podłączony PB4 – slave select), który wykonałem metodą termotransferu. Przystawka posiada stabilizator napięcia 3,3V (LF33CV), dzielniki napięcia z rezystorów oraz oczywiście gniazdo SD/MMC. Schemat wziąłem [stąd] , a projekt w eagle jest dostępny w paczce z programem.

Program napisałem w C (środowisko AVR Studio 4) z wykorzystaniem biblioteki FAT32 z bloga CC Dharmani, dzięki czemu mogę w prosty sposób kopiować dane z rejestratora na PC. Do przeglądania logów napisałem w Delphi (7) prostą aplikację generującą wykresy z plików tekstowych. Zarówno program dla mikrokontrolera jak i przeglądarka logów są napisane na szybko (tak, wiem, że mogłoby być bardziej optymalnie ), ale poprawkami zajmę się po sesji. Mikrokontroler komunikuje się z komputerem poprzez interfejs szeregowy RS232. Jak kuż wspomniałem kod nie jest jeszcze w pełni ukończony, przez co tryb ustawień włącza się porpzez dopisanie 1 linijki w kodzie zamiast zworką na płytce. W normalnym trybie pracy układ zapisuje temperaturę co 5 minut oraz dodatkowo wysyła wynik po RS232. Układ pracuje już 2 tygodnie bez zarzutów.

Przykładowy wykres:

Skompilowane programy oraz źródła dostępne poniżej. Domyślne ustawienia to UART na 19200 bodów (8;1;N) i 1Wire na PD6.

  Pobierz plik: temp_logger/temp_logger_0.1.zip
  Rozmiar: 996.11 KB, pobrany 980 razy.

Aktualne pomiary:
  Otwórz folder:
  TEMP_LOGGER/DANE/

W folderze z przeglądarką należy utworzyć katalog DANE i w nim umieścić pliki tekstowe z pomiarami.
  Pobierz plik: temp_logger/tlviewer.exe
  Rozmiar: 416.5 KB, pobrany 745 razy.

© 2010 Silent's Homepage Administracja Suffusion WordPress theme by Sayontan Sinha