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



Teraz jest 26 sty 2021, o 05:40


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: 182
Lokalizacja: Warszawa
Pomógł: 5

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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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.

_________________
Michal Makowka's Technology



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: 26084
Lokalizacja: Szczecin
Pomógł: 991

Ł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: 64
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: 182
Lokalizacja: Warszawa
Pomógł: 5

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 :)

_________________
Michal Makowka's Technology



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

Dołączył(a): 17 mar 2020
Posty: 64
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: 182
Lokalizacja: Warszawa
Pomógł: 5

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 ;)

_________________
Michal Makowka's Technology



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

Dołączył(a): 27 lut 2013
Posty: 196
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: 64
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: 182
Lokalizacja: Warszawa
Pomógł: 5

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

_________________
Michal Makowka's Technology



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

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

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: 182
Lokalizacja: Warszawa
Pomógł: 5

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.

_________________
Michal Makowka's Technology



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 0 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO