logo elektroda
logo elektroda
X
logo elektroda

Intre ARM PCB Digestion Controller LCD Touch WiFi

Intre  42 21228 Fajne? (+24)


I Opis ogólny urządzenia:

Chciałbym przedstawić mój projekt bazujący na mikrokontrolerze STM32 dokładnie na modelu STM32F11RET6 http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series/stm32f411/stm32f411re.html. Jest to sterownik dla urządzenia popularnie zwanego „wytrawiarką” przydatnego podczas prototypowania płytek PCB, czyli przyrządu podgrzewającego nadsiarczan sodu (B327) do temperatury 40 stopni i utrzymującym go na tym poziomie zapewniając przy tym ruch kąpieli trawiącej miedzianą płytkę PCB, w przedstawianym przeze mnie projekcie za pomocą napowietrzania.





Samo urządzenie nie jest innowacyjne i jego zasada działania jest ogólnie znana natomiast zastosowanie mikrokontrolera STM32 w roli układu wykonawczego wg. mnie już tak, korzystając z popularnej przeglądarki zasobów internetowych „Google” nie udało mi się znaleźć podobnego urządzenia wykorzysującego ten typ mikrokontroler`a np. jako projekt DIY, aczkolwiek nie twierdzę że takowe urządzenie oparte o ten mikrokontroler nie istnieje. Myślę również że sporą innowacją jest zastosowanie modułu Wi-Fi w sterowniku tego typu umożliwiającym komunikacje ze światem zewnętrznym. W przedstawianej przeze mnie aplikacji urządzenie łączy się z telefonem komórkowym opartym o system Android, pokazując na ekranie podstawowe informacje o stanie jego pracy, temperaturze B327, a także dając możliwość kontroli jego pracy. Dodatkowym urozmaiceniem są komunikaty głosowe podające np. osiągniętą zadaną temperaturę, potwierdzające wystąpienie zdarzenia, a największym rzekłbym jak dla mnie „bajerem” i chyba nie spotykaną innowacją w takim sterowniku jest wydawanie komend głosowych. Może to trochę dziwić, zastanawiać po co to w sumie jednakże dla mnie jest to dość praktyczne ponieważ ja mam swój hobbystyczny warsztat w przydomowym garażu i zamiast pilnować, chodzić sprawdzać czy czekać, aż zostanie osiągnięta pożądana temperatura nadsiarczanu (mimo zastosowania zmodyfikowanej akwariowej grzałki 300W w okresie zimowym zwykle to trochę twa) to wolę wykonywać inne czynności, będąc nawet w innym pomieszczeniu w domu i otrzymując komunikat na telefon.
Całe urządzenie zostało tak pomyślane nie jak to zwykle robione jest w projektach DIY różnych „wytrawiarek” jakie można znaleźć w sieci Internet, że układ sterowania, napowietrzania i akwarium stanowią jedność, ja zrobiłem specjalnie osobny sterownik i peryferia dołączane do niego by w razie jakiejkolwiek awarii wymienić tylko grzałkę, akwarium czy moduł termometru lub napowietrzacza jak również zastąpić je innymi modelami. W ogóle na potrzeby pokazania jak urządzenie pracuje na filmie i zdjęć stało ono przy akwarium z B327 docelowo jednak będzie ono znajdowało się z boku na biurku i sterowało tylko hermetycznym gniazdami prądowym dla napowietrzania i grzałki w takim jakby dygestorium z podświetleniem specjalnie do tego celu przeze mnie zrobionym. Głownie to ze względu na niekorzystne warunki panujące związane z wilgocią i unoszącymi się oparami nadsiarczanu wokół akwarium, jak i również pracy z wodą podczas płukania PCB po wyjęciu.
Tutaj właśnie też się przydaje proponowana przeze mnie innowacja związana z obsługą urządzenia przez telefon. Mianowicie użyty model Sony M4 Aqua jest hermetyczny zgodny z normami IP65 oraz IP68 więc podczas pracy z zakładaniem czy wyciąganiem płytki PCB z trawienia można go ze spokojem trzymać obok urządzenia i nim zarządzać nie przejmując się jego zalaniem czy zamoczeniem, a sam serownik stoi sobie bezpiecznie z boku.

II Opis części elektronicznej:

1. PCB sterownika:

Sercem całego urządzenia jak wspomniałem jest mikrokontroler STM32F11RET6 w obudowie LQFP64, który jest może trochę nadmiarowy jak na specyfikę tego urządzenia ja jednakże chciałem żeby był szybki (zwłaszcza dla magistrali SPI wyświetlacza) i miał sporą ilość pamięć FLASH, RAM dla użytych bitmap i czcionek, zmiennych oraz posiadał jeden z najnowszych rdzeni ARM jakie są obecnie dostępne, a także był przyszłościowy jak bym chciał rozwijać dalej obecne oprogramowanie w urządzeniu czy dodając jeszcze jakieś dodatkowe funkcjonalności. O jego wyborze miało również znaczenie dostępności platform sprzętowych do testów takich jak NUCLEO-F411RE czy STM32F411-DISCO.
Użyty model wyświetlacza to 3,5 calowy ekran dotykowy TFT 320x480 firmy ADAFRUIT model 2050 ze sterownikiem HXD8357D https://botland.com.pl/wyswietlacze-lcd-tft/2666-wyswietlacz-dotykowy-tft-lcd-35-320-x-480-z-czytnikiem-microsd.html. Można było oczywiście skorzystać z innego bardziej nowoczesnego, szybszego wykorzystującego potencjał mikrokontrolerów ST takich jak MIPI-DSI i Chrom-ART (wówczas nie było by tak długiego odświeżania) jednakże ja osobiście mam wielki sentyment do niego ponieważ otrzymałem go na walentynki od bliskiej mi osoby :D i w zasadzie to zdecydowało o jego wykorzystaniu, a także kształcie oraz wyglądzie obudowy czy elektroniki sterującej. Ten moduł wyświetlacza mimo posiadania slotu na karty SD (elektrycznie podłączonego do mikrokontrolera jednakże nie wykorzystywanego w tym projekcie) nie posiada jednak sprzętowego sterownika dotyku dlatego do tego celu wykorzystuje układ również firmy ST, a mianowicie STMPE811. Na PCB sterownika jest jeszcze jeden mały układ firmy ST mianowicie nieregulowany stabilizator LDO: LD1117AS33TR dający napięcie 3,3V dla części logicznej urządzenia.
Za pomiar temperatury odpowiada znany powszechnie i lubiany wśród hobbystów czujnik DS18b20, normlanie korzystam z innych zdecydowanie wg. mnie lepszych, szybszych, dokładniejszych jednakże w tym projekcie został użyty ten model ponieważ można go otrzymać jako moduł w specjalnej wodoodpornej obudowie ze stali nierdzewnej np. tu: https://botland.com.pl/czujniki-temperatury/1713-sonda-wodoodporna-z-czujnikiem-temperatury-ds18b20-1m.html?search_query=ds18b20&results=31, który wręcz idealnie nadaje się do użycia dla budowy „wytrawiarki” (ja jeszcze go dodatkowo zabezpieczyłem koszulka termokurczliwą z klejem). Dodatkowo w przypadku jakiejkolwiek jego awarii wg. mnie jest on nie drogi i nawet na szybko do ewentualnego zastąpienia własną „samoróbką”.
Za komunikacje z telefonem odpowiada moduł ATNEL-WIFI232-T firmy ATNEL https://sklep.atnel.pl/pl/p/ATNEL-WIFI232-T-ant/110 użyty w jego podstawowej aplikacji komunikujący się z mikrokontrolerem za pomocą UART. Zdecydowałem się na niego ponieważ dzięki wsparciu producenta, a zwłaszcza dedykowanemu oprogramowaniu jest łatwy w konfiguracji, zarządzaniu oraz obsłudze i tak naprawdę problematyka jego używania sprowadza się do uruchomienia obsługi UART. Dodatkowo na płycie sterownika znalazł się jeszcze BUZZER informujący o wciśnięciu danego klawisza jak i dioda informacyjna LED pierwotnie służąca do debugowania aplikacji, a finalnie informuje dodatkowo o pracy urządzenia przy otwartej obudowie.

Sposób połączenia omówionych wyżej peryferii i modułów można zobaczyć na schemacie oraz poglądowych zdjęciach:



2. PCB zasilania i triak`ów:

Płyta sterownika łączy się z drugą płytką, która stanowi moduł zasilania wraz z triakami sterującymi. Napięcie 230V idzie do transformatora 9V, a po wyprostowaniu trafia na moduł przetwornicy ATB-PWR-3 firmy ATNEL https://sklep.atnel.pl/pl/p/ATB-PWR3-przetwornica/20, która to daje 5V na wyjściu. Dzięki jej wykorzystaniu w obudowie nie podnosi się temperatura natomiast dodatkowa jej funkcjonalność wykorzystywana jest do załączania urządzenia przez przełącznik na przednim panelu. Do załączania grzałki i napowietrzacza służą triaki firmy ST BTA08-600C o wydajności prądowej 8A więc ze sporym zapasem mocy aniżeli podłączone urządzenia. Mikrokontroler komunikuje się z nimi przez optotriaki MOC3043 firmy Fairchild Semiconductor z wbudowanym układem przejścia przez zero. Zastanawiałem się pierwotnie czy nie zrobić własnego pomiaru tego przejścia oraz dać inne optotraki by sterować intensywnością napowietrzania jednakże mam takowe w budowane już w napowietrzacz ACO-9602 firmy HAILEA http://hailea.pl/pl/napowietrzacz-hailea-aco-9602.html, a z mojego doświadczenia wynika, że używam praktycznie jednej nastawy bliskiej pełnej mocy więc zrezygnowałem z tego pomysłu. Dodatkowo dodałem kondensator filtrujący na wejściu do transformatora oraz w ramach zabezpieczenia w urządzeniu występują dwa bezpieczniki osobny 6A znajdujący się w gnieździe wprowadzającym zasilanie 230V i osobny 1A dla części logicznej. W całej sekcji zasilania jak i na PCB sterownika występują kondensatory tantalowe i ceramiczne MLCC by zapewnić jak najlepszą filtracje zasilania dla mikrokontrolera. Warto też wspomnieć że przy triakach znajdują się 1W metalowe rezystory pracujące w roli gasików.
Płytki zaprojektowałem w programie Eagle w wersji 7.6 Maker firmy Autodesk Inc., a po przetestowaniu prototypów zleciłem ich wykonanie w firmie MERKAR z Katowic http://www.merkar.pl/.



3. Opis programu:

Program dla mikrokontrolera został napisany w języku „C” w środowisku TrueSTUDIO w wersji 5.5.2 Lite firmy ATOLLIC http://atollic.com/truestudio/z wykorzystaniem bibliotek HAL i uprzednio wygenerowanym kodem konfiguracyjnym w STM32CubeMX. Zegar STM32F11RET6 pochodzący z PLL rezonatora kwarcowego 8Mhz skonfigurowany jest na jego maksymalną moc 100Mhz, do odliczania czasu wykorzystywany jest również zewnętrzny rezonator dla RTC 32,768KHz. W CubeMx zostały skonfigurowane takie peryferia mikrokontrolera jak RTC, TIM2, TIM10, I2C1, SPI1 i USART2 oraz odpowiednie przerwania i porty GPIO dla poszczególnych wyjść wg. dołączonego schematu. Plik wynikowy konfiguracji z programu CubeMX dołączam jako załacznik do wglądu podobnie jak plik main.c który teraz skrótowo omówię tutaj:

Kod: C / C++
Zaloguj się, aby zobaczyć kod



Program działa w następujący sposób, iż po załadowaniu i skonfigurowaniu zegarów oraz poszczególnych peryferii mikrokontrolera inicjalizuje wyświetlacz po SPI oraz uruchamia kontroler dotyku STMPE811 na I2C1. Następnie po przywitaniu się krótkim „intro” i wydaniu komunikatu dźwiękowego załącza menu główne i w tym momencie mikrokontroler zaczyna oczekiwać na przerwanie EXTI9_5_IRQHandler zgłaszane przez dotkniecie ekranu. Następnie po przeanalizowaniu danych odebranych z STMPE811 wylicza miejsce dotknięcia i na tej podstawie załącza wybraną opcję. W tle na przerwaniach wykonuje się cały czas pomiar temperatury oraz odbieranie i wysyłanie danych przez WiFi za pomocą UART dla telefonu o ile jest od włączony, jego podłączenie sygnalizowane jest zmiana stanu ikony w menu głównym. Cała obsługa ekranu i tego co jest na nim wyświetlane zachodzi w pliku "interface.c" Sama obsługa klawiszy jest natomiast w pętli głównej programu. Za odliczanie czasu dla Timer`a po wciśnięciu klawisza „AIR” odpowiedzialny jest układ RTC i wykorzystanie z niego przerwania RTC_WKUP_IRQHandler, w nim również znajduje się obsługa animacji termometru wówczas gdy pracuje grzałka. SysTick_Handler używany jest dla wydawania komunikatów dźwiękowych po wciśnięciu klawisza przez BUZZER, a w momencie wybrania klawisza „HOT” czyli uruchomienia grzania dla dwu stopniowej histerezy. Po wybraniu menu „SETUP” dostajemy możliwość ustawienia temperatury w zakresie 20-60 stopni (domyślnie po włączeniu na 40 stopni) oraz wybrania funkcji pracy TIMER`a, jako zwykły zegar odmierzający czas, a także odmierzający czas w dół w ustawionym zakresie od 1 do 90 minut po którym to nastąpi wyłączenie zarówno grzania jak i napowietrzania. Osobną nastawą jest załączanie sekwencyjne napowietrzania w zakresie 2-9 sekund, przydatne podczas podgrzewania B327. Klawiszem „BACK” wracamy z powrotem do menu głównego. W zależności od wybranych ustawień w menu setup zmienia się na nim opis i sposób pracy TIMER`a. Po włączeniu klawiszy „HOT” czy „AIR” oprócz zmiany ich kolorów dodatkowo podawany jest stan pracy zmiennymi ON/OFF. Gdy temperatura osiągnie zadany próg, termometr zmienia kolor na zielony i wyświetlany jest napis OK.

Użyte biblioteki do obsługi poszczególnych peryferii zostały prze zemnie przeportowane bądź napisane od nowa jednakże wykorzystując znalezione fragmenty kodów w sieci Internet bądź książkach czy notach katalogowych. Niektóre jej fragmenty zwłaszcza do obsługi czcionek z systemu Windows i wyświetlania ich na urządzeniu są kodami komercyjnymi chronionymi prawami autorskimi, mianowicie do ich wygenerowania użyłem programu PixelFactory firmy ATNEL https://sklep.atnel.pl/pl/p/Pixel-Factory/35 oraz fragmentów kodów pochodzącego z książki „Język C. Pasja programowania mikrokontrolerów 8-bitowych" Mirosław Kardaś https://sklep.atnel.pl/pl/p/Jezyk-C-Pasja-programowania-mikrokontrolerow-8-bitowych-Ksiazka-PENDRIVE-/138 by ich używać w moim programie. W związku z tym nie chciałbym publikować i udostępniać pełnego kodu programu by nie zostać posądzonym o łamanie praw autorskich. Jednakże jak najbardziej gdyby ktoś chciał wykonać sobie taki sterownik jako DIY udostępnię plik wynikowy HEX w załączniku.

Wspomnieć należy także o programie napisanym na telefon z systemem Android współpracującym z programem sterownika. Jest on stworzony w programie B4A firmy Anywhere Software Link w wersji 6.00 czyli w języku „Basic for Android”.Oprogramowanie to stanowi swego rodzaju nakładkę na Java SDK i Android SDK umożliwiającym w dość szybki i prosty sposób napisanie działającej aplikacji na system Android. Pokazywaną aplikację z jakiś czas jak zakończę jej testy na innych telefonach udostępnię do pobrania w sklepie Android „Play”. Samo działanie aplikacji jest uproszczoną wersją tego co widzimy na sterowniku wykrawarki tematycznie, kolorystycznie i layoutem nawiązującym do menu głównego na niej. Jak wspomniałem wcześniej mikrokontroler nadaje paczkę danych w postaci tzw. „stringa” po UART przez moduł Atnel WiFi, która to jest odbierana przez telefon i odpowiednio obrabiana. Do sterowania głosem używany jest aplet firmy Google łączący się przez Internet i analizujący wypowiedziane słowo. Po uruchomieniu programu na telefonie łączymy się z urządzeniem co jest sygnalizowane na nim sygnałem dźwiękowym oraz zmianą ikony „VOICE”. Kiedy urządzenia są ze sobą połączone to to co dzieje się na jednym dzieje się również i na drugim. Program telefoniczny stanowi tylko uzupełnienie projektu więc nie posiada możliwości zmiany nastaw urządzenia, to zachodzi tylko w samym urządzeniu.

4. Podsumowanie:

Na koniec dodam jeszcze że sam sterownik mimo, iż tworzony na potrzeby sterowania „wytrawiarką” PCB nawet bez specjalnych modyfikacji programowych jest jak dla mnie dość ciekawą, innowacyjną i uniwersalną platformą do sterowania czymkolwiek załączanym na 230V np. może posłużyć do zdalnego bądź czasowego wyłączania oświetlania jakiś stojących lamp w pokoju, żaluzji elektrycznych czy światełek na świątecznej choince albo i nawet być sterownikiem dla bojlera grzejącego wodę. Mając do dyspozycji mikrokontroler STM32F11RET6 „na pokładzie” oraz moduł Atnel WiFi sprawia to, iż możliwości tego urządzenia są ogromne. Spersonalizowana obudowa w standardzie dla urządzeń audio przez firmę EX-OR model Galaxy GX287 http://www.modushop.pl/237,galaxy-gx287-panel-3mm-srebrny-1gx287-.html pozwala jak dla mnie postawić to urządzenie w dowolnym miejscu w domu czy pracy, więc modyfikując już trochę oprogramowanie urządzenia może ono np. stać się eleganckim zegarkiem z budzikiem i ramką do zdjęć oraz synchronizacją czasu przez Internet, podającym temperaturę pokojową czy nawet krótkie wiadomości z Internetu, np. kursy waluty, pogodę.

Zdjęcia urządzenia:
Załączniki:
  • intre_digestion_conntroller.zip (143.95 KB) Musisz być zalogowany, aby pobrać ten załącznik.

O autorze
Intre napisał 38 postów o ocenie 93 , pomógł 2 razy. Mieszka w mieście Bydgoszcz. Jest z nami od 2011 roku.

Komentarze

komatssu 07 Paź 2016 12:22

Daje się zauważyć lekki przerost formy nad treścią :) [Czytaj dalej]

__Maciek__ 07 Paź 2016 13:32

Bardzo ładnie wykonanie na 5+ ... nie doczytałem się czy algorytm kontroli temperatury to ON/OFF , PID, Fuzzylogic czy coś jeszcze bardziej wyrafinowanego. :-) Z barków wskazał bym na automat wyjmujący... [Czytaj dalej]

Gigantor 07 Paź 2016 17:42

Bardzo estetyczny projekt. Tak nieśmiało zapytam: ile to urządzenie kosztowało ? [Czytaj dalej]

398216 Usunięty 07 Paź 2016 18:22

A po co zdalne włączanie skoro i tak musisz włożyć płytkę ręcznie? To samo ze sterowaniem głosowym - najpierw trzeba uruchomić tryb głosowy ręczne a potem wydać komendę... Jako model urządzenia - piękne... [Czytaj dalej]

Intre 07 Paź 2016 18:23

Dziękuję za miłe komentarze. I cieszę się, iż projekt się podoba. Jeżeli chodzi o koszty to raczej tak szacunkowo, gdyż nie wszystko musiałem kupić na raz, część rzeczy miałem w przysłowiowej... [Czytaj dalej]

398216 Usunięty 07 Paź 2016 18:25

Kuweta tańsza... :) No i z tym akurat się zgodzę. [Czytaj dalej]

bvr 07 Paź 2016 18:31

Powinno być etching . Słowo digest odnosi się do procesu trawienia pokarmów. [Czytaj dalej]

Anonymous 07 Paź 2016 18:44

Rewelacja. To chyba najlepszy projekt w historii elektrody. Mogę postawić dolary przeciwko orzechom, że wytrawiarka to tylko pretekst i uwagi o przeroście formy itd. wynikają z niezrozumienia. [Czytaj dalej]

pheonix 07 Paź 2016 19:11

Obudowa ładna i wykonanie, tak jak przedmówcy ja też uważam że to jest przerost formy nad treścią. Nie lepiej by to wyglądało w formie kompaktowej ? [Czytaj dalej]

krzysssztof 07 Paź 2016 19:23

A czemu nie zastosowałeś sieci neuronowych do regulacji temperatury? Obawiam się, że bez tego może ona nie być dostatecznie dokładna. [Czytaj dalej]

MasMas 07 Paź 2016 20:45

Ludzie, którzy piszą, że przerost, próbują mówić o wadach itd... chyba nie przeczytali "Podsumowania" w 1 poście i nie zrozumieli idei - przecież oczywiste, że to chodziło o przyjemność robienia ;) Co... [Czytaj dalej]

Intre 07 Paź 2016 21:22

Tak dokładnie, frezowanie + zrobienie napisów laserem ok. 150 zł za każdą ze stron. Firma EX-OR też mi pomogła w rysunku technicznym i "spomiarowaniu" odpowiedniej wielkości otworów, zwłaszcza pod wyświetlacz. Kupuje... [Czytaj dalej]

aklosek 08 Paź 2016 00:51

Coś słabo ta personalizacja wyszła w tej firmie (i za taką kasę), widać , że krzywo został wyświetlacz zamocowany bo widać w prawym górnym rogu jego ramkę. A swoją drogą , według mnie cały efekt psują... [Czytaj dalej]

Elclipse 08 Paź 2016 08:37

Szczęka mi opadła jak zobaczyłem ten projekt. Gratulacje dla autora za jakość wizualną wykonania. Urządzenie spokojnie może stać w salonie. Projekt napawa optymizmem, że jednak da się wykonać urządzenie... [Czytaj dalej]

patrx 08 Paź 2016 08:46

Urządzenie wygląda świetnie jak z fabryki. Zastanawia mnie w jaki dokładnie sposób są robione te czarne opisy na froncie? Aluminium w miejscu tekstu jest wypalane laserem i robi się jednolite czarne? Czy... [Czytaj dalej]

michalko12 08 Paź 2016 10:01

Twoja sprawa, ale i tak ich wspierasz tych dalekowschodnich, tyle że przez pośredników Link Trzeba było zastosować np. coś takiego Link - też z polskiej firmy, pewnie wyszłoby taniej i możliwości... [Czytaj dalej]

Intre 08 Paź 2016 10:39

Po pierwsze w tym projekcie nie chodziło o żadne oszczędności, a jak ktoś już wcześniej zauważył o przyjemność i radość robienia ale też chęć sprawdzenia siebie umiejętności, ugruntowania wiedzy czy wręcz... [Czytaj dalej]

janek1815 08 Paź 2016 13:49

Boisz się że sterownik zawilgotnieje od oparów z wytrawiarki. Natomiast o telefon nie masz obaw. Jemu też będą szkodziły opary. Aż tak wodoodporny to on nie jest. Wielki plus za estetykę reszta to już... [Czytaj dalej]

aklosek 08 Paź 2016 15:35

Nie doczekałem się odpowiedzi, dlaczego ten wyświetlacz jest krzywo przymocowany, albo otwór źle wyfrezowany, że wystaje trochę ramka tego wyświetlacza ?? [Czytaj dalej]

%}