Dołączył(a): 03 mar 2014 Posty: 580 Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71
Witam,
Pierwszym projektem z serii urządzeń zbudowanych na mikrokontrolerach, który chciałbym wam zaprezentować, jest moja praca inżynierska, a mianowicie „Sterownik silników DC”. Było to pierwsze poważne urządzenie, które przyszło mi skonstruować od podstaw, w przeciwieństwie do wcześniejszych linijek świetlnych i tym podobnych gadżetów. Niestety, jako, że nie posiadałem zbyt dużego doświadczenia w budowaniu urządzeń, konstrukcja sterownika nie opierała się o tzw. dobre praktyki. Wystarczy spojrzeć na filtrację przy stabilizatorze napięcia LM7805, aby zauważyć, że było to czasem budowanie na tzw. „czuja”. Pomimo tego, produkt końcowy działał prawidłowo, a to było najważniejsze. Od strony programowej również szału nie ma, ale, jak już wspomniałem, był to mój pierwszy, większy projekt, tak więc doświadczenie zdobywałem w miarę budowy sterownika. Jak to często się mówi, nie ważne, jak coś jest zbudowane, ważne, że działa, jak powinno. Dzisiaj jednak podszedłbym do budowy takiego urządzenia nieco inaczej. Niewątpliwie było by ono jeszcze lepsze, a na pewno bardziej niezawodne. Od strony sprzętowej, sterownik został zbudowany na bazie mikrokontrolera firmy ATMEL – ATMega8, taktowanym wewnętrznym oscylatorem RC o częstotliwości 8 MHz. Do zasilania układu wykorzystano komputerowy zasilacz ATX, poprzez scalony stabilizator napięcia LM7805. Do komunikacji z użytkownikiem służą dwie diody, informujące o kierunku obrotów silnika, trzecia natomiast, sygnalizuje obecność zasilania układu. Drugim elementem komunikacyjnym jest pospolity wyświetlacz LCD 2x16, oparty na sterowniku HD44780. Użytkownik steruje urządzeniem przy pomocy impulsatora, oraz mikroswitcha, powodującego nagłe przerwanie pracy sterownika w sytuacji alarmowej. Na płycie PCB znajdują się również listwy kołkowe, do których opcjonalnie podłączany jest transoptor – pełniący funkcję obrotomierza, oraz wyjścia do sterowania mostka H. Wsad programowy do mikrokontrolera zajmuje 84% pamięci FLASH. W początkowych fazach jego pisania, pomimo, że nie posiadał on jeszcze nawet połowy funkcjonalności, to zajmował grubo ponad 50% pamięci FLASH układu. Jednak wychodząc z założenia dr Radosława Sokoła: „jeżeli w programie jest napisane dwa razy to samo, to kod jest źle napisany”, przeglądałem kod sukcesywnie i optymalizowałem. Z czasem również, niektóre zapisy stawały się dla mnie coraz bardziej intuicyjne, co powodowało skracanie zapisów. Niestety, program opierał się w dużej części o zmienne globalne, ponieważ nie radziłem sobie ze wskaźnikami. Przy konstruowaniu tego urządzenia, pierwszy raz zacząłem, choć nieśmiało, korzystać z not katalogowych układów, zamiast korzystać z wyszukiwarek czy forów internetowych w poszukiwaniu podstawowych informacji. Obecnie rozpoczynam każdą konfigurację, np. rejestrów w mikrokontrolerze, korzystając z noty katalogowej układu. Ostatecznie, projekt został ukończony z powodzeniem, a produkt finalny zawierał następujące funkcje:
Regulacja PWM 0 % – 100 % (w trybie 8 bitowego PWM), - Zmiana kierunku obrotu silnika w lewo/prawo lub zatrzymanie, - Zmiana preskalera częstotliwości PWM: 1, 8, 64, 256, 1024, - Włączenie/wyłączenie funkcji soft-start, - Konfiguracja maksymalnej temperatury pracy, - Konfiguracja rodzaju tarczki transoptora szczelinowego (w celu obliczania prędkości obrotowej), - Menu wyświetlające parametry pracy sterownika, - Przycisk bezpieczeństwa wyłączający silnik w sytuacji awaryjnej, - Wyświetlanie prędkości obrotowej silnika.
Poniżej zdjęcia stanowiska:
Film prezentujący działanie sterownika:
Praca miała posiadać charakter stanowiska dydaktycznego, tak więc oprócz modułów sterownika oraz mostków H w dwóch wykonaniach (jeden zbudowany w oparciu o układ scalony L293D, natomiast drugi w celach poglądowych dla studentów, na tranzystorach bipolarnych – w sposób w jaki, jest on przedstawiany na wykładach), znajdowały się jeszcze: - płytka bazowa dla mikrokontrolera Atmega, - płytka z interfejsem użytkownika do ćwiczeń (potencjometr, mikroswiche, złącze dla DS18B20, diody LED oraz LCD). Poniżej filmik przedstawiający stanowisko, w trakcie przeprowadzania jednego z ćwiczeń, które było opracowane dla studentów.
Poniżej zamieszczam schematy oraz zdjęcia poszczególnych modułów. Główny sterownik a) Płytka PCB b) Schemat ideowy.
Scalony mostek H – układ L293D a) Płytka PCB. b) Schemat ideowy.
Tranzystorowy mostek H. a) Płytka PCB. b) Schemat ideowy.
Interfejs do ćwiczeń. a) Płytka PCB. b) Schemat ideowy.
Płytka bazowa. a) Płytka PCB. b) Schemat ideowy.
PS. Liczę na obiektywne oceny/uwagi/sugestie, pomimo tego, że projekt nie będzie rozwijany - jako, że była to moja praca inżynierska i nie jestem już w jej posiadaniu.
Przy okazji chciałbym również zachęcić do odwiedzania mojego bloga, na którym będą wszystkie moje projekty (oczywiście jednocześnie publikowane na forum ), adres będzie w podpisie. Niestety z powodu tego, że na nadmiar czasu nie narzekam, opublikowanie kolejnego projektu może potrwać. Aczkolwiek będę się starał co jakiś czas coś wrzucić, tym bardziej, że wrzucałem filmik zapowiadający moją matrycę. Niestety czeka ona na przypływ wolnego czasu jak i gotówki
Jak by ktoś chciał w celach naukowch, to zamieszczam wsad. Atmega 8, wew. RC 8 Mhz.
Załącznik:
Praca_inzynierska.zip
z Niebieskim pozdRowieniem, Doman89
Załączniki:
Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.
Atx to po co 7805? Otworek na pcb pod to220? Przyciski prostopadle do potka/encodera? Nie widze tego w obudowie Tranzystory do sterowania diodami i podpiete pod xtal? Wybacz-txt przevzytam jak odespie nocke Ale tych plytek strasznie mnogo i nawet an-druinium dostrzegam.
Glowny sterownik fajnie wyglada nie bylo problemow z polaczeniami stykowymi?
Gratuluje inzynierki i kreatywnego projektu ! Mi sie podoba - a czepiam sie pierdol bo za bardzo nie ma czego raczej
Dołączył(a): 16 mar 2014 Posty: 745 Lokalizacja: Warszawa
Pomógł: 32
Gratuluję Koledze Widać mnóstwo włożonej pracy, płytki ładnie dopracowane, wszystko logicznie i bardzo estetycznie rozmieszczone w formie zestawu dydaktycznego. Na pewno wielu studentów skorzysta z Twojej pracy inżynierskiej
To co mi się pierwsze rzrzuca w oczy to T1 i T2 - nie umieszcza się obciążenia w emiterze. Tranzystor jest w takim układzie nieprawdłowo spolaryzowany i o ile przy ledach może ten numer przejdzie to przy większym obciążeniu będzie lipa i szukanie dlaczego układ nie pracuje poprawnie.
Poza tym to nie koniecznie musi byc kardynalny blad - na pewno nie w xmega tutaj raczej potrzebne?
Wiedza na studiach moze byc tak obszerna ze ciezko zapamietac Z reszta czuje w powuetrzu bardzo istotna w tym temacie dyskusje o braku poxiomu na studiach i o tym ze lepiej bylo zostac ninja
Twoj post urazil jedynie moja xmege Ale moze nieslusznie? I tak, jesli masz na zasilaczu kondki to nie widze sensu dawania ich ponownie przed stabilizatorek Ale na pewno nie zaszkodzi
Dołączył(a): 03 mar 2014 Posty: 580 Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71
Witam,
doman napisał(a):
Atx to po co 7805?
ATX, został wymyślony na koniec, bo przyszedł do głowy w celu ułatwienia. Zasilanie na każdy układ było z głowy.
doman napisał(a):
Otworek na pcb pod to220?
Jeżeli chodzi o ten koło 7805, to nie. Płytka ta była bodajże moją drugą robioną w życiu w Eagle więc szukanie bibliotek było na tzw. "czuja".
doman napisał(a):
Przyciski prostopadle do potka/encodera? Nie widze tego w obudowie
Wizja tej płytki była kolegi (on robił identyczną pracę tylko, że na Arduino dla porównania, lecz nie chwaląc się jego sterownik miał mocno ograniczone możliwości w porównaniu do mojego )
doman napisał(a):
Tranzystory do sterowania diodami i podpiete pod xtal?
Tak, tu przedobrzyłem. Pod xtal nie pamiętam czemu podłączyłem już. W sumie i tak z kwarca to nie korzystałem, więc raczej nie przeszkadzało.
doman napisał(a):
Ale tych plytek strasznie mnogo i nawet an-druinium dostrzegam.
Tak jak wyżej wspomniałem za Arduino odpowiedzialny był kolega. Dlatego też płytki się powtarzają.
doman napisał(a):
Glowny sterownik fajnie wyglada nie bylo problemow z polaczeniami stykowymi?
Żeby nie skłamać bodajże z dosłownie 2 połączeniami - źle przylutowany kabelek do goldpina. Tak to ruszyło bez zająknięcia.
doman napisał(a):
Przyczepie sie jeszcze do braku kodow
Kodów nie mam w planach udostępniać. Jeżeli by kogoś interesował jakiś fragment to oczywiście na PW mogę posłać. Oczywiście aktywnym użytkownikom, a nie takim którzy się zarejestrowali 5 minut temu, znajdują co potrzebują i znikają na zawsze. Choć moje pierwsze programy były równie potworkowate co te tranzystory z diodami
MikieMan napisał(a):
Gratuluję Koledze Widać mnóstwo włożonej pracy, płytki ładnie dopracowane, wszystko logicznie i bardzo estetycznie rozmieszczone w formie zestawu dydaktycznego.Na pewno wielu studentów skorzysta z Twojej pracy inżynierskiej
Dzięki za dobre słowo. Co do układu to wiadomo, żeby na obronie jak najładniej wyglądało Pracuje akurat w sieci handlowej, więc wiem, że człowiek najpierw kupuje oczami. Poza tym "Ordnung muss sein" : lol :
squeez napisał(a):
Na schemacie b) Schemat ideowy. nie ma rezystorów w bazach. I czy to tak zostało zrobione finalnie? uC czy też tranzystory to przeżyły?Szkoda że nie pokusiłeś się o zrobienie mostka na samych N-MOSFET-ach było by bardziej ambitnie.
Tak niestety zrobione było finalnie. Wszystko śmigało bez zająknięcia więc nie doszukiwałem się w tym uchybień. Aczkolwiek jak zaznaczyłem, był to nagle projekt do wykonania, a byłem wtedy dosłownie na etapie robienia linijek świetlnych na diodach. MOSFETów to do niedawna bałem się jak ognia, dopiero z nimi się zaprzyjaźniam od nie długiego czasu.
squeez napisał(a):
No i zamiast tych zwykłych złączy goldpinowych można by było zastosować WS/HS estetycznie by to wyglądało i nie było by problemu z pomyłką przy połączeniach.
To Ci przyznam rację w 100%, do tej pory w sumie jakoś dziwnie korzystam tylko z goldpinów albo złącz śrubowych.
SylwekK napisał(a):
To co mi się pierwsze rzrzuca w oczy to T1 i T2 - nie umieszcza się obciążenia w emiterze. Tranzystor jest w takim układzie nieprawdłowo spolaryzowany i o ile przy ledach może ten numer przejdzie to przy większym obciążeniu będzie lipa i szukanie dlaczego układ nie pracuje poprawnie.
Spokojnie już nie robię takich "kwiatków".
mg101 napisał(a):
squeez napisał(a):(studiów nie kończyłem ale takich kardynalnych błędów to się nie powinno popełniać na pierwszym roku).Cenne porady i chwała za to. Ale czy takie wstawki są potrzebne?
Spokojnie miała być subiektywna krytyka więc jest. Nie jesteśmy dziećmi, więc rozumiem, że kolega wyraził po prostu swoje zdanie. Przynajmniej pisze szczerze
doman napisał(a):
Wiedza na studiach moze byc tak obszerna ze ciezko zapamietac Z reszta czuje w powuetrzu bardzo istotna w tym temacie dyskusje o braku poxiomu na studiach i o tym ze lepiej bylo zostac ninja
Tu się zgodzę, dużo głupot nie potrzebnych, a to co istotne nierzadko na kiepskim poziomie było Taka prawda. Ale "papiór" trza mieć, dziś się już dam rozwijam w odpowiednim kierunku, na tyle na ile mi czas pozwala.
squeez napisał(a):
Myślałem że dyskusja ma być merytoryczna, kolega dał projekt pod ocenę więc napisałem co wg. mnie jest źle/niedopuszczalnie.
No i chwała koledze za to.
doman napisał(a):
Twoj post urazil jedynie moja xmege Ale moze nieslusznie? I tak, jesli masz na zasilaczu kondki to nie widze sensu dawania ich ponownie przed stabilizatorek Ale na pewno nie zaszkodzi
Jak już wspomniałem to zasilacz ATX "wyskoczył" w ostatniej chwili. Każdy moduł na etapie prototypu był zasilany inaczej. A na samym początku to w ogóle na stykówce więc tam napięcie było czasami z USB.
squeez napisał(a):
trzeba ścieżki przecinać drapać soldermaske i lutować na partyzanta rezystor.
Śmieszniejsze było to, że jak robiłem płytkę sterownika termotransferem to działała w 100%, jak oddałem już do firmy to mi zliczanie impulsów nie działało. Ile to ja się na szukałem, poźniej schemat i ja patrzę a tu mi się jakaś luźna przelotka między 2 ścieżkami przytrafiła - INT i 5V ( dolna i górna warstwa). W termotransferze był luzik, na wykonanej już nie bo metalizacja otworów. Trzeba było delikatnie rozwiertać. To był stresik
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