Elektroda.pl
Elektroda.pl
X
Filament
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów

KonradIC13 02 Lut 2016 03:57 6810 5
  • Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów
    Witam.

    Chciałbym zaprezentować Państwu moją konstrukcję DIY. Jest do panel kontrolny do komputera PC, który aktualnie spełnia funkcję 6-kanałowego nastawnika obrotów wentylatorów typu 12V 3pin.

    1. Wstęp
    Jako, że jakiś czas temu zacząłem się interesować moddingiem i tuningiem PC, napotkałem na problem, z którym na pewno boryka się wiele osób. Otóż standardowo tanie płyty główne posiadają od 3 do 4 złącz do wentylatorów (w tym jedno rezerwowane na chłodzenie CPU), gdzie obudowy komputerowe mogą mieć nawet 8 lub więcej miejsc na wentylatory.

    Jeżeli chcemy wykorzystać w pełni możliwości chłodzenia naszego komputera, mamy do wyboru kupowanie rozdzielaczy sygnałów lub przejściówek MOLEX -> 3 pin. Wadą tych rozwiązań jest to, że tracimy niezależną kontrolę nad prędkością wentylatorów lub ją tracimy całkowicie.

    Nie godząc się na takie rozwiązanie, postanowiłem wykonać własny nastawnik prędkości obrotowej wentylatorów na wzór podobnych produktów znajdujących się na rynku. Pytanie - dlaczego nie kupiłem gotowego produktu? Wykonując go sam, mogę sprawić, aby wyglądał tak jak chcę, działał tak jak chcę i nie jestem ograniczony co do funkcji urządzenia. No i ostatnie, ale nie najmniej ważne, każdy projekt to nowe doświadczenie, które pozwala nauczyć się nowych rzeczy.

    2. Założenia i wymagania
    Głównie wynikały z mojego wyobrażenia, jak powinno wyglądać takie urządzenie i jak sprawić, żeby było dla mnie wygodne w obsłudze. I tak powstała lista:
    - wyświetlacz LCD z menu użytkownika do zmiany parametrów
    - przyciski do nawigowania (jak najmniej)
    - ilość sterowanych wentylatorów 6szt. (jest to i tak więcej niż większość dostępnych rozwiązań na rynku)
    - nastawianie prędkości za pomocą potencjometrów (pozwala na intuicyjną zmianę nastaw bez potrzeby wchodzenia w menu lub spoglądania na panel)
    - czarny kolor pasujący do popularnych obudów PC i kolor dodatkowy czerwony (popularny kolor w akcesoriach gamingowych)
    - uniwersalny, dedykowany do obudów PC, standardowe wymiary mieszczące się w slotach 2x 5.25"
    - możliwość dalszych modyfikacji i rozwoju urządzenia

    3. Projekt i wykonanie
    Projektowanie i wykonanie urządzenia można podzielić na kilka etapów. Pierwszym był projekt mocowania, kolejnym, był projekt panelu frontowego i ostatnim etapem był projekt elektroniki. Wszystkie trzy etapy projektowania przeplatały się ze sobą, zmiany w sposobie mocowania wpływały na projekt panelu frontowego i vice versa.





    4. Projekt mocowania oraz panelu frontowego
    Na początku musiałem wymyślić, w jaki sposób urządzenie zostanie zamontowane do komputera, jak zostanie do niego zamontowany panel czołowy oraz z czego i w jaki sposób zostanie wykonane mocowanie i sam panel czołowy. Panel czołowy musiał być wykonany dokładnie i estetycznie z uwagi, iż był prezentacyjną częścią urządzenia. Mocowanie musiało być wykonane również dokładnie, gdyż dopasowywałem się do standardu, w jakim wykonywane są obudowy PC. Wśród rozważanych koncepcji był druk 3D, wykonanie elementów mocujących z laminatu PCB i panelu frontowego, również i pokryciu go czarną soldermaską.

    Nie zdecydowałem się na to rozwiązanie ponieważ na horyzoncie pojawiła się alternatywa. Przeszukując internet różnymi hasłami napotkałem grupy firm, które wykonują panele frontowe urządzeń z laminatów grawerskich. Czym jest laminat grawerski? Płyta z tworzywa sztucznego o pewnym kolorze oraz o wierzchniej warstwie o innym kolorze. W trakcie obróbki warstwa wierzchnia jest usuwana i z pod niej wychodzi naturalny kolor laminatu. Obróbka laminatu odbywa się na urządzeniach laserowych CNC, firmy akceptują projekty w formatach dxf i ceny okazały się przystępne.

    Skoro już wybrałem profesjonalną formę wykonania frontu to postanowiłem, że mocowanie również powinno nie odbiegać jakości i zdecydowałem, że zostanie ono wykonane z giętej blachy aluminiowej i zlecony do wygięcia/cięcia na urządzeniach numerycznych.

    Projekt zarówno frontu urządzenia, jak i mocowania wykonany został w programie Autodesk Inventor.

    W miarę bycia pewniejszym, gdzie i w jaki sposób elementy zostaną wykonane, projekt mocowania uległ zmianie od prostego kawałka blachy po kompletną część dopasowaną pod każdym względem. Porównanie widać poniżej.

    Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów

    (po lewej pierwotny projekt mocowania, po prawej ostateczny; blacha we wnętrzu uchwytu to mocowanie elektroniki wstawione w otwór w celu oszczędzenia materiału)

    Projektując panel frontowy chciałem mu nadać wygląd przypominający obwody drukowane (ścieżki, pady w koło otworów etc.)
    Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów
    (projekt panelu frontowego)

    Pytanie najważniejsze, skąd wymiary i mocowania, i panelu frontowego? Głównym źródłem wymiarów była norma/standard SFF-8551, która opisuje wymiary obudów CD/DVD 5.25". Dodatkowo wybierając szerokość i wysokość panelu frontowego posiłkowałem się wymiarami gotowych urządzeń.

    I tak rezultat przedstawia się następująco:

    Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów

    (po lewej stronie gotowy panel z laminatu grawerskiego, kolor laminatu czarny, kolor graweru biały, grubość laminatu 3mm, gdyż cieńszy 1.6mm jest zbyt giętki; po prawej stronie wykonane mocowanie urządzenia)

    5. Projekt części elektronicznej
    Sama koncepcja części elektronicznej i sposobu, w jaki będzie następowała zmiana prędkości obrotowej wentylatorów uległa zmianie. Z początku chciałem stawiać na prostotę i regulować napięcie wentylatorów, co wiązałoby się z sześcioma regulatorami napięcia i dużymi stratami. Kolejnym pomysłem było użycie układów scalonych NE555 w celu generowania sygnału PWM. Ta koncepcja rozwijana była dość długo, jednak ostatecznie ustąpiła układowi mikroprocesorowemu z uwagi na wymagania dotyczące funkcji urządzenia.

    I tak oto po przeszukaniu sklepów internetowych i allegro zdecydowałem się na użycie ATmega128A jako "serce" układu. 6 sprzętowych wyjść PWM sterowałoby tranzystorami MOSFET i tak zmieniało prędkość obrotową wentylatorów.

    Schemat i projekt PCB powstał w środowisku Multisim Ultiboard. PCB dwustronne zaprojektowane w stylu Devboard, gdzie każdy pin mikroprocesora posiada goldpin w celu bezpośredniego dostępu i dodawania peryferiów.

    I tak poza podstawowymi elementami wymaganymi do uruchomienia mikroprocesora na laminacie znalazły się tranzystory MOSFET i ich osprzęt, wyprowadzenia diod sygnalizacyjnych, zasilanie wraz z bezpiecznikami oraz elektroniczny przełącznik MOSFET odcinający zasilanie od całego układu.

    Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów

    (po lewej projekt PCB; po prawej wykonana płytka przed montażem elementów)

    6. Pisanie programu
    Program sterujący został napisany w środowisku Atmel Studio 7 w języku C. Program wykorzystuje sprzętowy Fast PWM o częstotliwości 43kHz, przetworniki ADC do odczytywania położenia potencjometrów. Program działa w trybie "pseudo rzeczywistym", jak ja to sobie potocznie nazywam, wykorzystuje ono "trik" na prawie nielimitowaną ilość programowych przerwań.

    Tj. jedno sprzętowe przerwanie o częstotliwości 100Hz dekrementuje zmienne odpowiadające za programowe przerwania. Kiedy taka zmienna osiągnie 0, wywołana zostanie odpowiednia procedura w pętli głównej, która wykona się raz i z powrotem zwiększy odpowiednią zmienną programowych przerwań.
    Im więcej takich zmiennych, tym więcej uzyskamy przerwań o okresie, który jest wielokrotnością głównego przerwania sprzętowego (10ms, 20ms, ...).
    Dodatkowo wyświetlacz LCD posiada programowy bufor znaków, który w cyklu działania zbiera to, co ma zostać wyświetlone i w regularnych odstępach czasu (programowe przerwanie) przesyła je do wyświetlacza. Dzięki temu wyświetlacz zawsze jest odświeżany z taką samą częstotliwością, co w dużym stopniu niweluje miganie znaków, a wywołanie procedur w przerwaniach zapewnia sprawne działanie kodu bez zbędnych opóźnień i blokowania procesora.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Kod: c
    Zaloguj się, aby zobaczyć kod

    (fragment kodu przerwania, flaga Tick oraz funkcja SysTick(), która wywołana na początku pętli głównej będzie dekrementować zmienne przerwań programowych w regularnych odstępach czasu)

    Struktura menu użytkownika opisana została dwoma parametrami, poziom menu oraz głębokość menu. W pętli głównej programu, w zależności na jakim poziomie menu i głębokości znajduje się aktualnie użytkownik, odpowiednie części menu zostają zapisywane do buforu wyświetlacza LCD.
    Osobna część kodu powiązana z obsługą klawiszy odpowiada za inkrementację i dekrementację zmiennych opisujących poziom i głębokość menu, sprawdzenie, czy zmienne nie wyszły poza dopuszczalny zakres oraz zmianę funkcji klawiszy w zależności od głębokości menu.

    I tak też udało mi się ograniczyć ilość przycisków do 3 sztuk. Naciśnięcie przycisku Następny i Poprzedni przenosi na większą i mniejszą głębokość menu. Przycisk Dół pozwala na zmianę Poziomu menu. Gdy przejdzie się do submenu zmieniającego parametr, klawisze Następny i Poprzedni zwiększają i zmniejszają zmienną, zaś klawisz Dół zatwierdza ją i wraca do poprzedniego submenu.

    Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów

    (schemat poruszania się po menu)

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Kod: c
    Zaloguj się, aby zobaczyć kod


    (fragmenty kodu przedstawiające śledzie zmiennych głębokość i poziom menu, zapisywanie odpowiednich elementów menu do bufora LCD oraz kontrola nad tym czy zmienne menu są w odpowiednim zakresie oraz jakie funkcje ma pełnić klawisz w zależności od pozycji w menu)

    W kodzie zaimplementowana zostało również zapisywanie nowych parametrów do pamięci EEPROM mikrokontrolera (zachowanie po zaniku zasilania) oraz przygasanie wyświetlacza LCD po czasie nieaktywności. Użytkownik ma możliwość zmiany minimalnego podświetlenia LCD, maksymalnego podświetlenia oraz czasu, po jakim wyświetlacz przejdzie ze stanu max do min. To, co może wybudzić wyświetlacz ze stanu min do max to zmiana nastawy potencjometru lub naciśnięcie któregoś z przycisków.

    Ważną częścią kodu jest możliwość dostosowania przez użytkownika poziomu, powyżej którego uruchomiony zostanie wentylator. Wentylatory różnych producentów mogą startować już przy podaniu napięcia 3V, zaś inne potrzebują 6V aby wystartowały. Parametr bias, który jest nastawiany przez użytkownika pozwala na podwyższenie tego progu lub jego zmniejszenie, dzięki czemu uzyskuje się maksymalnie możliwy zakres nastaw prędkości obrotowej (wykluczając sytuację, gdy napięcie jest zbyt niskie i wentylator stoi w miejscu) z zachowaniem pełnego zakresu pozycji obrotowej potencjometru (nie ma sytuacji, że przekręcając potencjometr od 0 do 50% nic się nie dzieje i dopiero wentylator rusza; nieważne, jaki zostanie nastawiony bias, każdy wentylator załączy się po małym wychyleniu potencjometru z odpowiednią dla niego prędkością minimalną)

    7. Efekt końcowy
    Co tu mówić, zdjęcie wyraża więcej niż 1000 słów:

    Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów Panel kontrolny do PC - 6-kanałowy nastawnik obrotów wentylatorów

    Dodatkowo filmik pokazujący działanie i wygląd przy zgaszonym świetle:


    Parametry techniczne urządzenia:
    - zasilanie standard 4PIN MOLEX 12V wentylatory 5V elektronika
    - wyświetlacz LCD czerwony blacklight
    - pobór prądu z linii 5V <100mA pełnym obciążeniu
    - pobór prądu z linii 12V 5A (co daje 800mA na kanał)
    - maksymalny pobór prądu z linii 12V 12A (2A na kanał dostępne po "odblokowaniu" urządzenia, tj. wymianie bezpiecznika na większy)
    - wymiary 149mm x 85mm x 65mm

    8. Podsumowanie i wnioski
    Urządzenie jest wykonane na zapas. Maksymalny pobór prądu na kanał to ponad 1A, 5 razy więcej niż pobiera standardowy wentylator. Dlatego też wyjścia PWM mogą sterować nie tylko wentylatorami, ale również np. pompą chłodzenia cieczą czy jakimiś instalacjami świetlnymi w komputerze. Wykonanie PCB w stylu Dev board pozwala na ciągłe dodawanie funkcji urządzenia. Kiedy tylko czas pozwoli, planuję dodać czujniki temperatury, zaimplementować komunikację RS232 i napisać jakąś dedykowaną aplikację kontrolną na PC. Oglądając projekt płytki, można zauważyć wyprowadzenia z czujników tachometrycznych wentylatorów. To również będę planował wykorzystać, aby prędzej czy później w większym lub mniejszym stopniu przedstawiać prędkość wentylatorów w rzeczywistych RPM, a nie jak teraz w %.

    Szacowana suma poniesionych kosztów to około 300zł. Czy coś bym zmienił, coś dodał? Na pewno, z każdym projektem czy wykonaniem prototypu pojawiały się rzeczy, których wcześniej nie uwzględniłem. Np. skracając do maksimum mocowanie urządzenia nie pomyślałem, że jakoś muszę wsadzić łapę do obudowy, żeby wszystko przykręcić i w efekcie trzeba się nagimnastykować troszkę.

    Ale ostatecznie jestem bardzo zadowolony ze swojej pracy. Udało mi się uzyskać większość rzeczy, które zaplanowałem i moje oczekiwania zostały spełnione.


    Fajne!
  • Filament
  • #2 02 Lut 2016 12:38
    blade13
    Poziom 14  

    Wszystko ładnie pięknie, profesjonalne wykonanie całości!

    Plus za czerwony wyswietlacz, ładnie wyglada, ale niestety jak dla mnie to otwor na niego jest za duzy, mogloby być bez ramki wyswietlacza i moze za cienka 1-2mm pleksa... Do tego przyciski moglyby byc lekko podswietlane i gałki albo skrocone albo chociaz wpuszczone w panel przedni (w laminat)

  • Filament
  • #3 02 Lut 2016 16:11
    dr.hannibal
    Poziom 22  

    Wygląda naprawdę dobrze i za to duży plus, również wykonanie jest bardzo skrupulatne i praktycznie profesjonalne.

    blade13 napisał:
    gałki albo skrocone albo chociaz wpuszczone w panel przedni (w laminat)

    Mi na przykład to pasuje, od razu widać kluczowe elementy którymi steruję się poszczególne wentylatory - łatwo i szybko dostępne.

    Mamy pytanie co do wykonania PCB, kolega sam robił czy zlecał gdzieś?

  • #4 02 Lut 2016 16:32
    KonradIC13
    Poziom 10  

    Z tymi gałkami delikatnie też mnie trochę kuje w oczy że tak odstają (aktualnie ok. 19mm). Dużo gorzej się to prezentowało z wąskimi gałkami d=14mm h=17mm niż teraz z szerokimi gałkami d= 20mm h = 17mm.
    Próbowałem znaleźć jakiś model bardziej płaski ale czynnikiem ograniczającym jest głównie rozmiar osi potencjometrów.
    Wpuszczenie ich w panel wiązało by się z dodatkowym wycinanym elementem mocującym.

    Z doraźnych rozwiązań, będę wycinać kawałek plastikowego materiału z wnętrza aktualnych gałek, bo teraz odstają od panelu jakiś 1.5mm i patrząc z góry widać metalowe nakrętki. Po usunięciu materiału powinny zbliżyć się jeszcze bardziej do panelu.

    PCB zlecane firmie z Katowic. Wykonują płytki jedno i dwustronne metodą fotochemiczną (co wiąże się z opłatą za dokumentację) ale za to oferują pełen service: cięcie dowolnych kształtów, frezowanie, soldermaski, powłoki, opisy, wiercenie i metalizację otworów.

    Sam również potrafię wykonywać obwody termotransferem ale nie ufam moim umiejętnością na tyle żeby zrobić ścieżki pod TQFP64. A i porównując pracę z PCB, które wykonywałem to komfort lutowania na profesjonalnie zrobionym laminacie jest zupełnie inny, dlatego wolałem zapłacić za pracę (i nie bać się, że gdzieś mi odpadnie ścieżka czy wyrwę pad w trakcie zwykłego wlutowywania elementu).

    Co do podświetlania przycisków to ciekawa sugestia, możliwe że dało by się to zrealizować umieszczając jakąś małą diodę SMD tuż nad przyciskiem tak aby światło było skierowane w stronę otworu pomiędzy przyciskiem a panelem i sterowanie nimi w ten sam sposób jak przyciemnianiem LCD.

  • #5 02 Lut 2016 18:49
    blade13
    Poziom 14  

    dr.hannibal napisał:

    Mi na przykład to pasuje, od razu widać kluczowe elementy którymi steruję się poszczególne wentylatory - łatwo i szybko dostępne.


    Nie mowie, ze jest zle ale jakby galki dolegaly lub nawet byly te 2mm wpuszczone w panel przedni bylo by wedlug mnie lepiej :)

    Szerokie galki sa ok. Tylko moglyby miec tak z 15mm. Spróbuj wyciac ten srodek i pewnie bedzie ok :)