Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 6 kwi 2025, o 22:04


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
    Autor Wiadomość
    PostNapisane: 26 gru 2020, o 16:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sie 2015
    Posty: 205
    Lokalizacja: UK
    Pomógł: 10

    Witam,

    Widzę, że chyba wszystkim udziela się ostatnio magia świąt, co widać po wzroście zainteresowań wszelkimi inteligentnymi diodami RGB. ;) Ja zatem nie pozostaję gorszy i prezentuję projekt zegarka-prezentu dla dziewczyny opartego o miktokontroler STM32 z nowej rodziny G0, nad którym pracuję od listopada. Działa on w 99% :) Pozostało mi do ukończenia dosłownie kilka funkcji narzędziowych, które nie są jakoś specjalnie istotne. Mam nadzieję, że wielu osobom, które tak jak ja przesiadają się na 32-bitowce, uda mi się przy okazji pokazać jak ja podchodzę do wykorzystania ich możliwości, a jak wiadomo wbudowanych peryferiów mają one masę! Dodam tylko na wstępie, że program napisany został bezpośrednio "na rejestrach", także zwolennicy CMSIS powinni być zadowoleni :D Do dzieła!

    Założenia sprzętowe:
    - Zasilanie za pomocą 12VDC (zastosowałem dwie przetwornice: A8498 oraz LDO1117 3.3V),
    - Wyświetlanie godziny, minuty, aktualnej daty za pomocą WS2812, wyświetlacza multiplexowanego LED,
    - Powitalne wiadomości na dolnym wyświetlaczu,
    - Możliwość konfiguracji za pomocą USART (w przyszłości umożliwiona rozbudowa o moduł WiFi - serwer NTP i takie bajery ;) ), oraz trzech przycisków tact-switch,
    - Dostosowanie kolorów do odpowiedniej pory dnia (rano żółty, po południu ciepła zieleń, wieczem pomarańcz i fiolet, a w nocy ciemny niebieski),
    - Płynna regulacja jasności w zależności od oświetlenia w pokoju,
    - Możliwość zapisywania danych do zewnętrznej pamięci EEPROM 2kB,
    - Wsparcie Battery Backup Domain za pomocą superkondensatora sterowanego mosfetem,
    - Buzzer (jako funkcja alarmu i nie tylko ;)),
    - Status LED.

    Założenia programowe:
    - Stworzenie pełnej biblioteki wspierającej WS2812 i ładującej wszystkie dane do jednego bufora (w ten sposób łatwo wzbogacić program o użycie DMA),
    - Stworzenie biblioteki do wyświetlania cyfr i znaków (wraz ze scrollowaniem) na alfanumerycznym wyświetlaczu 16-segmentowym,
    - Wykorzystanie wewnętrznego zegara RTC oraz możliwość jego ŁATWEJ kalibracji,
    - Uniwersalne funkcje do konfiguracji czasu i daty w rejestrach RTC,
    - Proste menu konfiguracyjne (wymaga jeszcze dopracowania)


    Schemat i model 3D płytki PCB:
    Znajduje się w pliku załączonym pod postem.

    Zdjęcia:


    ObrazekObrazekObrazekObrazekObrazekObrazekObrazekObrazek


    Pliki źródłowe (z komentarzami) i biblioteki:

    main.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Biblioteka WS2812
    ws_lib.h
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ws_lib.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Pliki konfiguracyjne (ustawienia rejestrów STM32)
    config.h
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    config.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Biblioteka do obsługi wyświetlacza 16-seg
    segment_dsp.h
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    segment_dsp.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Biblioteka do obsługi RTC/konfiguracji/aktualizacji danych czasu:
    clock.h
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    clock.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Biblioteka menu (zrobiona na szybko i wymaga jeszcze pracy, także proszę się nie przerażać :D )
    clk_menu.h
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    clk_menu.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Pozdrawiam :)


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    MMT Technologies



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 gru 2020, o 17:06 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    ŁAŁ ! bardzo ładny projekcik ! ... pomysłowo zrobiona płyta ... widać mnóstwo włożonej pracy ... jest na czym oko zawiesić ;) Naprawdę śliczne wykonanie ! Aż miło się patrzy i czyta.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 gru 2020, o 18:05 
    Offline
    Użytkownik

    Dołączył(a): 17 mar 2020
    Posty: 70
    Pomógł: 5

    super projekt!

    Masz może jakiegoś githuba z tym kodem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 gru 2020, o 19:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sie 2015
    Posty: 205
    Lokalizacja: UK
    Pomógł: 10

    mirekk36 napisał(a):
    ŁAŁ ! bardzo ładny projekcik ! ... pomysłowo zrobiona płyta ... widać mnóstwo włożonej pracy ... jest na czym oko zawiesić Naprawdę śliczne wykonanie ! Aż miło się patrzy i czyta.

    landrynek napisał(a):
    super projekt!


    Dzięki ;)

    landrynek napisał(a):
    Masz może jakiegoś githuba z tym kodem?

    Nie mam, nigdy nie korzystałem. Ale może najwyższy czas założyć konto :)

    _________________
    MMT Technologies



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 gru 2020, o 19:44 
    Offline
    Użytkownik

    Dołączył(a): 17 mar 2020
    Posty: 70
    Pomógł: 5

    To mógłbyś dodać też spakowane źródła/projekt? Bo przeglądanie tego na forum jest średnie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 gru 2020, o 22:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sie 2015
    Posty: 205
    Lokalizacja: UK
    Pomógł: 10

    landrynek napisał(a):
    Bo przeglądanie tego na forum jest średnie

    Faktycznie, jest tego trochę. Wrzucam zatem link do nowo założonego githuba:

    https://github.com/MichalMakowka/CelClock_2021.git

    Skompresowany projekt udostępnię gdy tylko wprowadzę wszystkie poprawki ;)

    _________________
    MMT Technologies



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 gru 2020, o 23:28 
    Offline
    Użytkownik

    Dołączył(a): 27 lut 2013
    Posty: 230
    Pomógł: 4

    Gratuluję projektu! Kawał dobrej roboty ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 gru 2020, o 00:02 
    Offline
    Użytkownik

    Dołączył(a): 17 mar 2020
    Posty: 70
    Pomógł: 5

    Widzę, że masz też bardzo fajną stronkę - programowaniem embeded zajmujesz się zawodowo w jakiejś firmie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 gru 2020, o 00:53 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sie 2015
    Posty: 205
    Lokalizacja: UK
    Pomógł: 10

    Cytuj:
    Widzę, że masz też bardzo fajną stronkę - programowaniem embeded zajmujesz się zawodowo w jakiejś firmie?


    A dzięki ;) W tej chwili studiuję elektronikę, a hobbystycznie to od 6-7 lat coś tam próbuję porobić w wolnym czasie. Sama strona ma raczej funkcję takiego portfolio :)

    michal1210 napisał(a):
    Gratuluję projektu! Kawał dobrej roboty

    Dzięki :D

    _________________
    MMT Technologies



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 gru 2020, o 13:43 
    Offline
    Użytkownik

    Dołączył(a): 13 paź 2015
    Posty: 303
    Lokalizacja: Rybnik
    Pomógł: 10

    Projekt bardzo fajny gratuluję, fajnie że pokazałeś tak rozbudowany kod bo jest sie z czego uczyć ;) dopiero zaczynam raczkować w stm32



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2020, o 15:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sie 2015
    Posty: 205
    Lokalizacja: UK
    Pomógł: 10

    Tom92 napisał(a):
    Projekt bardzo fajny gratuluję, fajnie że pokazałeś tak rozbudowany kod bo jest sie z czego uczyć


    Dzięki :) Sam również nie jestem doświadczony i na pewno wiele rzeczy możnaby zrobić dużo lepiej. Chociaż prawda jest taka, że po prawidłowym ustawieniu rejestrów i przewertowaniu noty wszystko staje się proste i pozostaje skupić się głównie na warstwie abstarkcyjnej programu :)

    I tak jak wyżej wspomniałem, najbardziej aktualną wesję kodu uploaduję na githuba (faktycznie łatwiej przeglądać, zklonować do własnego workspace'u). Ja działam w STM32CubeIDE, więc program powinien się w nim skompilować bez żadnych modyfikacji pod STM32G071CBxx.

    _________________
    MMT Technologies



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    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

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO