Jako że w dzisiejszych czasach w niepamięć powoli odchodzą napędy optyczne, często jest tak że nawet jak trzeba z niego skorzystać okazuje się że już nie czyta płyt
Jeśli mamy komputer stacjonarny możemy oczywiście się pozbyć napędu z obudowy ale często zaślepka zatoki w obudowie zaginęła bez wieści więc albo trzeba coś dopasować, albo kupić nowy napęd albo ... dać cd-romowi drugie życie w nieco odmiennej roli.
Inspiracją do tej konstrukcji był obejrzany film na youtube.
Pomysł nieco zmodyfikowałem dodając mikrokontroler attiny13 + scalony mostek H L293D, 2 rezystory i kondensator ceramiczny - aż tyle albo tylko tyle elementów
Układ działa tak, że po naciśnięci przycisku tacka się nie wysuwa, ale zaczyna migać dioda. Gdy po odliczeniu odpowiedniej liczby mrugnięć (odpowiadającej pierwszej cyfrze kodu) naciskamy guzik ponownie. Dioda znów zaczyna migać ... itd aż wprowadzimy 4 cyfry kodu. Jeśli będą właściwe tacka się wysunie, jeśli napęd pozostanie zamknięty dioda zgaśnie i układ pozostanie w czuwaniu do następnego naciśnięcia.
Po naciśnięciu przycisku dioda miga 10 razy, jeśli podczas migania nie zostanie naciśnięty przycisk, procedura jest natychmiast kończona.
Układ oczywiście posiada możliwość zmiany kodu (fabryczny kod po zaprogramowaniu procka jest zawsze "0000" przy czym migania diody zaczynamy od cyfry 0 czyli pierwsze mignięcie to 0, drugie to 1, trzecie to 2 - aby zatwierdzić daną cyfrę trzeba nacisnąć przycisk zaraz po zgaśnięciu diody - choć jest pewna tolerancja i jeśli naciśniemy przed zgaśnięciem diody to jest to zaliczane).
Lista elementów to tak jak wyżej pisałem:
- procesorek "attiny13" (wersja 13, 13V czy 13A - bez znaczenia)
- scalony mostek H "L293D" (wskazane wersja z literą D na końcu, w przeciwnym wypadku trzeba dodatkowo zastosować diody zabezpieczające układ przed szpilkami generowanymi przez silnik, układ z literką D ma mniejszą wydajność prądową ale ma owe diody wbudowane, a wydajność prądowa jest w zupełności wystarczająca dla tego układu)
- kawałek laminatu (ja wykorzystałem płytkę uniwersalną)
- rezystory 10K i 270 ohm - od tego ostatniego zależy jasność świecenia diody.
- kondensator ceramiczny 100nF.
- programator do zaprogramowania uC UWAGA: dokładnie przeczytaj opis jak zaprogramować procesor - w układzie wykorzystano pin RESET jako zwykły pin I/O więc po zaprogramowaniu ponowna komunikacja z uC zwykłym programatorem szeregowym będzie niemożliwa.
Schemat:
Przygotowanie napędu
Samego opisu jak rozebrać napęd nie będę tu przetaczał - sprawa jest stosunkowo prosta.
Z wnętrza usuwamy wózek z laserem - silniki i diodę laserową można wykorzystać do innych konstrukcji
Na głównej płycie na której znajdują się gniazda zasilania i interfejsu komunikacyjnego najlepiej odciąć ścieżki od zasilania przy samym gnieździe tak by stara elektronika nie była niepotrzebnie zasilana.
Do tacki można przykręcić kawałek wyciętej blaszki z puszki po napojach - będzie przytrzymywać zawartość naszego "sejfu" (np pieniądze) tak że podczas wysuwania wszystko będzie na miejscu i nie będzie kolidować przy wysuwaniu.
(Audycja zawierała lokowanie produktu
Kolejna sprawa to układ awaryjnego wysuwania tacki przy pomocy szpikulca. Aby sejf był bezpieczny najlepiej go unieszkodliwić - tu różnie bywa, w moim prototypowym napędzie wystarczyło zdemontować dźwigienkę, ale w drugim napędzie jaki rozebrałem okazało się że dźwigienka była odpowiedzialna za przełączanie wyłączników krańcowych tacki więc niemożna jej zdemontować bo całe sterowanie szufladką nie będzie działać prawidłowo. W takim wypadku trzeba indywidualnie obmyślić jak unieszkodliwić układ awaryjnego otwierania - może np da się częściowo odciąć dźwigienkę. W ostateczności można zakleić otwór na szpikulec od środka i/lub podłożyć kawałek grubszej blaszki by uniemożliwić włożenie szpikulca.
1 - dźwigienka którą u mnie wystarczyło zdemontować
2 - wyłączniki krańcowe
3 - kawałek gumy który przydał się jako odbojnik w miejscu 4 gdyż brak dźwigienki powodował że element sterujący krańcówkami wsuwał się za głęboko i zakłócał pracę układu.
5 - dźwigienki umożliwiające zupełne wyjęcie tacki.
Następnie należy zlokalizować wyłączniki krańcowe (2szt na wspólnej masie) silnik, diodę świecącą oraz przycisk. Tu mała uwaga: pomimo że dioda, przycisk i krańcówki są na masie to w moim przypadku krańcówki były na osobnej masie więc musiałem dodatkowo je zmostkować.
Dioda świecąca nie może być na masie więc ścieżkę od jej katody trzeba odciąć. W moim egzemplarzu napędu dioda była dwukolorowa - wykorzystałem jeden kolor - zielony.
Tu pojawił się mały problem zagrażający prostocie powielania powyższego układu, ponieważ okazało się że poszczególne egzemplarze napędów mają różny sposób działania krańcówek (np w jednym z moich napędów przy zamkniętej tacce obie krańcówki zwarte do masy, a w drugim tylko jedna). Mając to na uwadze program dla uC napisałem tak, by przy pierwszym uruchomieniu układ sprawdzi sobie sam krańcówki (opis w dalszej części).
Zmontowany układ wygląda tak:
Po przylutowaniu kabelków płytkę wkleiłem klejem na gorąco w miejscu w którym nie przeszkadza w wysuwaniu szufladki.
Biegun dodatni dałem oddzielnie do zasilania części logicznej i oddzielny do zasilania silnika.
Programowanie attiny13:
Procesorek można zaprogramować na stykówce. Najpierw należy wgrać hex-a i upewnić się że na pewno się wgrał.
Należy też upewnić się, że pamięć eeprom jest czysta (generalnie jest ona czyszczona przy każdym wgrywaniu wsadu pod warunkiem że nie zostało to zablokowane w fusebitach).
Następnie ustawić fusbity LOW: 0x6A; HIGH: 0xFA. Po ustawieniu fusów dalsze programowanie procka zwykłym programatorem będzie niemożliwe ponieważ zostaje wyłączony reset, dla tego trzeba się upewnić czy hex się wgrał.
Procek oczywiście da się odblokować ale to już wymaga nieco zachodu, albo posiadania programatora HV czyli z możliwością programowania szeregowego wysokonapięciowego, albo np. atmega fusbit doctora.
Wsad:
Procedura uruchamiania (początkowa procedura odczytu układu krańcówek):
Przed podłączeniem zasilania należy zamontować tackę i ustawić ją w pozycji full open.
Podłączyć zasilanie - dioda zaświeci się.
Należy pchnąć tackę do zamknięcia - tacka powinna ruszyć do całkowitego zamknięcia (jeśli tacka zamiast zamknąć się otworzy należy natychmiast wyłączyć zasilanie i odwrócić bieguny silnika; następnie rozpocząć procedurę od początku)
Po całkowitym zamknięciu tacki dioda nadal będzie świecić a przycisk nie będzie reagował. Należy wyłączyć zasilanie. Od tego momentu sejf jest gotowy do użytku z kodem 0000.
Jeśli w czasie procedury tacka się zamknie ale dioda zamiast świecić będzie szybko mrugać należy odłączyć zasilanie i dokładnie sprawdzić układ krańcówek.
Krańcówki są 2 więc możliwych kombinacji ich stanu jest 4. Jedna z tych kombinacji jest nieważna/niewystępująca. pozostałe układy to pełne otwarcie, pełne zamknięcie, częściowe otwarcie. Mrugająca dioda oznacza że jedne z kombinacji podczas wykrywania została zdublowana.
U mnie taka sytuacja właśnie miała miejsce, ponieważ po zdemontowaniu dźwigni od awaryjnego otwierania element który naciska krańcówki za mocno się przesuwał powodując niewłaściwy stan.
Otwieranie "sejfu":
Krótko nacisnąć przycisk
Po chwili dioda zacznie mrugać
Należy odliczyć odpowiednią liczbę mrugnięć i zaraz po zgaśnięciu diody nacisnąć przycisk - pierwsze mrugnięcie to 0, drugie to 1 itd. Generalnie można przyjąć że dziesiąte mrugnięcie to zero a pierwsze to 1, bo to kwestia umowna, ale wówczas fabryczny kod to 1111.
Wprowadzić pozostałe 3 cyfry w sposób analogiczny
Jeśli kod będzie właściwy tacka zostanie wysunięta, jeśli nie układ będzie oczekiwał na rozpoczęcie kolejnej próby.
Jeśli po zainicjowani procedury nie zatwierdzimy żadnej cyfry po 10 mrugnięciu procedura zostanie przerwana niezależnie od tego która cyfra była aktualnie wprowadzana.
Zamykanie "sejfu"
Zamknąć można poprzez krótkie naciśnięcie przycisku lub poprzez pchnięcie tacki w kierunku do zamknięcia.
Zmiana kodu
Procedura możliwa do zainicjowana w momencie gdy tacka jest całkowicie otwarta.
Należy nacisnąć przycisk i trzymać do całkowitego zamknięcia
Po zamknięciu puścić przycisk. rozpoczęta zostanie procedura wprowadzania kodu analogiczna do procedury otwierania podczas której należy podać nowy kod.
Po wprowadzeniu czwartej cyfry dioda 3 razy szybko mrugnie po czym procedura wprowadzania zostanie powtórzona. Należy wprowadzić ponownie identyczny kod. Jeśli kody będą identyczne dioda znów zamruga potwierdzając zmianę kodu.
Ponowne uruchamianie początkowej procedury odczytu układu krańcówek
Na wszelki wypadek dodałem tę procedurę jeśli coś by poszło nie tak za pierwszym razem.
Przed rozpoczęciem trzeba wybadać jaki obecnie układ krańcówek odpowiada pozycji otwarte, zamknięte, częściowe.
Nie jest to trudne:
w układzie częściowe silnik będzie działał (nawet jak silnik będzie źle podłączony to układ krańcówek który bez naciskania powoduje aktywację silnika to układ częściowe. Jeśli silnik obraca w kierunku otwarcia to trzeba zmienić polaryzację.
W układzie zamknięty silnik stoi a krótkie naciśnięcie przycisku powoduje rozpoczęcie migania diody czyli procedury wprowadzania kodu.
Mając tę wiedzę można przystąpić do procedury
Wyłączyć zasilanie
Ustawić krańcówki w układzie częściowy jednocześnie trzymając przycisk
załączyć zasilanie - silnik uruchomi się na zamykanie, ciągle trzymać przycisk
ustawić krańcówki w pozycji zamknięty - silnik stanie.
puścić przycisk - uruchomi się procedura zmiany kodu - należy ustawić kod fabryczny 0000. Po drugim potwierdzającym wprowadzeniu 4 zer dioda szybko zamruga 10 razy, należy wcisnąć i przytrzymać przycisk zanim dioda mrugnie 10 razy. Jeśli wszystko zostało wykonane poprawnie to należy wyłączyć zasilanie.
Po ponownym podłączeniu zasilania dioda będzie świecić cały czas co potwierdza stan "fabryczny". Należy postępować tak jak w procedurze pierwszego uruchomienia.
To chyba wszystko.
Nadmienię tylko, że zarówno układy krańcówek jak i kod przechowywane są w nieulotnej pamięci eeprom procesora, więc wyłączenie zasilania nie powoduje utraty tych informacji.
Na koniec krótki filmik z działania układu:
Fajne? Ranking DIY
