Dołączył(a): 27 maja 2013 Posty: 562 Lokalizacja: Bydgoszcz
Pomógł: 23
I Opis ogólny urządzenia:
Chciałbym przedstawić mój projekt bazujący na mikrokontrolerze STM32 dokładnie na modelu STM32F11RET6http://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 HXD8357Dhttps://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 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 ATOLLIChttp://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:
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć 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 ATNELhttps://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 w wersji 6.00 czyli w języku „Basic for Android”. Możemy go nabyć w np. w firmie Atnel https://sklep.atnel.pl/pl/p/Basic4Android-Standard/120, która też oferuje bardzo dobre szkolenie z jego użytkowania. 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 GX287http://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:
Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.
Dołączył(a): 14 lut 2014 Posty: 279 Lokalizacja: Kraków
Pomógł: 4
To niesamowicie cieszy, że w Polsce powstają takie fantastyczne i profesjonalne produkty!!! Ogrom bajerów i estetyka dodają takiego lukru to tego urządzenia, że aż miło. Bo po co jeździć kombajnem, skoro można latać disco-plasma-turbo-art kombajnem! Łaaaaaał! Możesz być z siebie dumny jak mało kto!
Dołączył(a): 17 mar 2014 Posty: 334 Lokalizacja: Rybnik
Pomógł: 55
marcin_c napisał(a):
, a ta obudowa! i do tego ten wyświetlacz!
I jeszcze ten piękny switch power, normalnie miodzio Naprawdę kawał dobrej roboty, dopracowany każdy najmniejszy szczegół.
Jedynie odwołałbym się do zdania:
Intre napisał(a):
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.
Stopień ochrony IP dotyczy wody, tutaj mamy jednak do czynienia z wytrawiaczem, nie do końca wiadomo jak telefon na to zareaguje. Mam wytrawiarkę można by powiedzieć sporych rozmiarów, jednak gdy robiłem duże płytki, gdzie środek trawiący sięgał 4-5cm od góry, to dość mocno chlapało (taka mżawka), zostawiając po wyschnięciu nieciekawe plamki. Oczywiście dało się je zmyć, a rozwiązaniem było wykonanie pokrywy na górę.
Ale to tylko taka moja mała uwaga, bo szkoda byłoby takiego telefonu
Kolego Intre - Kurczę blade - Gratulacje! To jest chyba najlepszy projekty DIY jaki dotąd widziałem! Serio! Dość, że projekt w 100%'ach wykonany starannie i ten design! No po prostu nie mogę Oo Fajnie, że mamy takich ludzi w Polsce, którzy jak chcą, to potrafią i nie są "Januszami" Gratulacje raz jeszcze!
Intre jak zwykle wymiata. Ale żebyś chłopie w piórka za bardzo nie obrósł (i nie zaniechał dalszego rozwoju )to w wolnej chwili zagłębie się w Twój projekt i powyciągam jakieś brudy na światło dzienne. Dobrze, że grafika w dużej rozdzielczości A tak serio to jest czym się chwalić. Myślę, że należy Ci się jakiś medal czy coś!
Dołączył(a): 27 maja 2013 Posty: 562 Lokalizacja: Bydgoszcz
Pomógł: 23
Bardzo dziękuje wam za takie miłe słowa i cieszę się, iż projekt się podoba.
Urządzenie robiłem ok. 2 miesiące.
Natomiast obudowa tak jak pisałem w podsumowaniu, została wykonana fizycznie przez firmę EX-OR, dokładnie został spersonalizowany model Galaxy GX287http://www.modushop.pl/237,galaxy-gx287-panel-3mm-srebrny-1gx287-.html Firma ta specjalizuje się w sprzedaży i personalizowaniu włoskiego producenta obudów dla urządzeń audio. Polecam zapoznanie się z oferta na ich stronie.
Oczywiście ja ją wybrałem oraz zaprojektowałem w programie Corel Draw jak mają wyglądać panele i nawet zrobiłem sobie takie pudełko żeby to lepiej sobie to zwizualizować:
następnie przesłałem takie wzory:
I na tej podstawie firma EX-OR miej więcej w 2-3 tygodnie zrobiła mi takie spersonalizowane panele, z tego co wiem wykorzystano maszyny CNC oraz laser.
Natomiast obudowa tak jak pisałem w podsumowaniu, została wykonana fizycznie przez firmę EX-OR, dokładnie został spersonalizowany model Galaxy GX287 http://www.modushop.pl/237,galaxy-gx287 ... x287-.html Firma ta specjalizuje się w sprzedaży i personalizowaniu włoskiego producenta obudów dla urządzeń audio. Polecam zapoznanie się z oferta na ich stronie.
heh - rewelacyjny pomysł - TY to zawsze wpadniesz na ciekawe rozwiązania !
Szacunek! Piękny projekt wyszedł. Ze zwykłej wytrawiarki zrobiłeś dzieło! Mnóstwo włożonej pracy, czasu i na pewno pieniędzy! Ale widać wszystko przemyślane, estetyka wykonania powala na kolana!
Dołączył(a): 27 maja 2013 Posty: 562 Lokalizacja: Bydgoszcz
Pomógł: 23
To jest funkcjonalność Google w Android, chyba każdy telefon z Androidem podłączony do Internetu to ma. Myślę że Pan na tym filmie poniżej wyjaśni to lepiej co jak działa oraz zaprezentuje jak działa
------------------------ [ Dodano po: kilkunastu sekundach ]
haha dobre dwie takie same odpowiedzi praktycznie sklonowane w tym samym czasie
Projekt świetny, wykonanie rewelacyjne! Podpowie kolega jakiej biblioteki używa do obsługi ds18b20, kombinuję z różnymi znalezionymi w internecie ale za chiny ludowe nie mogę ich odpalić w projekcie opartym na HAL.
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników