Witam, chciałbym przedstawić projekt jaki miałem jakiś czas temu okazję wykonywać a mianowicie uniwersalny programowalny sterownik logiczny. Projekt składa się z trzech części - sterownika, układu odpowiedzialnego za programowanie sterownika/komunikację układu z komputerem. Ostatnim elementem jest aplikacja wspomagająca tworzenie programów dla sterownika.
Co do "układu komunikacyjno-programujacego" to zastosowałem tutaj programator USBasp oraz FT232RL, czyli standard więc pominę dokładniejszy opis tej części projektu.
Dane sterownika:
Posiada on osiem wejść i osiem wyjść cyfrowych (logika dodatnia, 24VDC). Połowa wyjść jest oparta na tranzystorach NTD20P06L natomiast reszta na przekaźnikach AZ6991. Obciążalność wyjść tranzystorowych 500mA (oczywiście można ciut więcej). W sterowniku istnieją dwa osobne tory zasilania - jeden dotyczy zasilania wyjść (24VDC) drugi całej reszty (24VDC).
Dodatkowo w sterowniku znajduje się RTC (DS1307), LCD 2x16 (w standardzie HD44780), buzzer. Całość jest zamknięta w obudowie z-109.
Głównym układem jest ATmega16, dla którego oprogramowanie wykonywane jest przy pomocy aplikacji, którą postaram się przedstawić poniżej.
Aplikacja została napisana przy pomocy Pythona z użyciem Qt, pozwala ona na tworzenie programów w języku FBD. Zaprogramowanie sterownika rozpoczyna się od konwersji FBD na ASM a następnie wywoływany jest kolejno gavrasm oraz avrdude i wsio
W programie zaimplementowałem wstępnie 32 instrukcje: logiczne, timery, liczniki, przerzutniki, porównania i parę innych (np. konfiguracja wyświetlacza). Program działa pod systemami z rodziny GNU/Linux oraz Windows.
Małe wyjaśnienie do zdjęć: te plamy na płytkach to pasta lutownicza, za długo czekałem z jej usunięciem i trochę kurzu się nałapało. Próbowałem je usunąć izopropanolem, jednak im "mocniej" tarłem tym więcej soldermaski zaczynało schodzić więc postanowiłem zostawić jak jest.
Uwaga - jakość filmów nie jest najlepsza, szczególnie trzeciego.
Obecnie pracuję nad drugą wersją sterownika i tak pokrótce:
Stabilizator 7805 zastąpiłem przetwornicą A8498, spowodowane jest to zbytnim nagrzewaniem się stabilizatora.
Zredukowałem ilość kabli łączących obie płytki sterownika.
Dodałem dwie pamięci, 24C256 - zapis/odczyt hasła oraz nazwy sterownika, AT45DB041B - zapis/odczyt programu (tutaj zastosuję dodatkowo ATmega32u2; w wersji pierwszej sterownika nie ma takiej możliwości).
Sterowanie wyjściami cyfrowymi chcę przerzucić na MCP23008 co wymusi zastosowanie cyklu odczyt wejść -> wykonanie programu -> ustawienie wyjść.
Do sterownika planuję dodać dwa wejścia oraz jedno wyjście analogowe.
I jeszcze parę innych pomysłów/poprawek zamierzam wprowadzić w życie w wersji drugiej. Poniżej zamieszczam zdjęcie wstępnej płytki drugiej wersji sterownika.
Koszt: około 200-250zł, chociaż z tego co widzę to część części znacznie staniała więc dałoby się taniej to wykonać.
I to chyba tyle
Fajne? Ranking DIY