[PROJEKT] Sejf otwierany odciskiem palca oparty o Arduino

Usuwanie zapamiętanych odcisków

Oprócz dodawania przyda się również możliwość usuwania wzorców odcisków. Należy więc dodać do programu funkcję Delete, która będzie odpowiedzialna za usuwanie wzorców linii papilarnych z bazy.

Na początku inicjalizowana jest zmienna ret, a diody ustawiane są w tryb „oddychający” na czerwono. Następnie, podobnie jak w pętli loop, pobierany i sprawdzany jest odcisk palca. Jeżeli weryfikacja przebiegła pomyślnie, czyli zmienna ret ma wartość różną od zera, to wzorzec pasujący do ostatnio zeskanowanego odcisku jest usuwany, a dioda zapala się na zielono. Jeżeli nie udało się dopasować odcisku, dioda zapala się na czerwono.

Funkcję trzeba jeszcze wywołać. W tym celu można dodać kolejny przycisk albo skorzystać z przycisku już podłączonego. Ponieważ do usunięcia wzorca i tak trzeba najpierw zeskanować odcisk i odnaleźć go wśród zapisanych, można przyjąć warunek wywołania funkcji jako zeskanowanie błędnego odcisku palca z jednocześnie włączonym przyciskiem.

Efekt działania programu przedstawia się następująco

Rys. 20. Usuwanie wzorców z bazy

Sterowanie serwomechanizmem

Ostatnim krokiem będzie dodanie do programu obsługi serwa. Serwomechanizm będzie służył do zamykania i otwierania sejfu. W tym momencie konieczne będzie zrezygnowanie z biblioteki SoftwareSerial, ponieważ będzie ona kolidować z biblioteką Servo.h.

Pierwszym krokiem będzie zakomentowanie linii importującej bibliotekę SoftwareSerial.h. Można w tym celu skorzystać z skrótu klawiszowego CTRL + /. Następnie należy zaimportować bibliotekę Servo.h.

Następnie trzeba do FPSerial przypisać Serial zamiast Serial1.

Teraz należy zdefiniować potrzebne wartości. Do Servo_port należy przypisać numer portu, do którego podłączony jest serwomechanizm, czyli 9. Do SafeOpen, a także SafeClose trzeba przypisać wartość kąta serwomechanizmu, przy którym sejf będzie otwarty oraz zamknięty. Jest to odpowiednio 90 i 0.

Następnie należy utworzyć obiekt servo oraz zainicjalizować zmienną IsSafeClosed typu bool, a także ustawić jej wartość na true. Zmienna IsSafeClosed będzie przechowywać informację czy sejf jest zamknięty czy otwarty.

W funkcji setup() należy zainicjować serwo za pomocą funkcji attach() przyjmującej jako argument numer portu, do którego podłączony jest serwomechanizm, czyli Servo_port. Następnie za pomocą funkcji write() należy ustawić kąt SafeClose, czyli pozycję, w której sejf jest zamknięty.

W funkcji loop() w warunku (digitalRead(Button) == 0) w else po funkcji ctrlLED należy dodać obsługę zamykania, a także otwierania skarbonki. Trzeba utworzyć warunek sprawdzający czy sejf jest zamknięty, czyli czy wartość zmiennej IsSafeClosed jest równa true. Jeżeli sejf jest zamknięty, to należy go otworzyć, a gdy jest otwarty – zamknąć. Na koniec zmiennej IsSafeClosed należy przypisać wartość przeciwną niż obecnie.

Ostateczny kod programu

Końcowa wersja programu powinna wyglądać następująco:

Podłączenie serwomechanizmu i czujnika do fizycznego portu UART

Po wgraniu programu należy podłączyć serwomechanizm zgodnie z tabelą poniżej

Serwo Arduino/Zasilanie
Przewód żółty 9
Przewód czerwony VCC
Przewód czarny GND

Oraz podłączyć czujnik do fizycznego portu UART

Czujnik linii papilarnych SEN0348 Arduino Pro Mini
GND (przewód czerwony) GND
RX (przewód czarny) TX
TX (przewód żółty) RX
VIN (przewód zielony) VCC
IRQ (przewód niebieski) Nie podłączone
3.3V (przewód biały) VCC

Rys. 21. Zestaw z dołączonym serwomechanizmem i przełącznikiem dźwigienkowym

Elementy drukowane na drukarce 3D

Do złożenia skarbonki potrzebne są elementy wydrukowane na drukarce 3D. Największy, będący zarazem korpusem sejfu, drukuje się niestety aż 12-13 godzin.

Rys. 22. Korpus sejfu do druku na drukarce 3D

Domyślnie korpus jest drukowany wraz z drzwiczkami, przytwierdzonymi na stałe za pomocą sworznia. Dzięki temu nie można „włamać się” do sejfu poprzez wypchnięcie sworznia. Takie rozwiązanie powoduje jednak, że poprawne wydrukowanie całości jest znacznie trudniejsze. Podczas przygotowywania pliku .gcode należy się upewnić, że sworzeń nie sklei się z korpusem podczas drukowania z powodu zbyt małych luzów. Tą sytuację przedstawiono na wizualizacjach poniżej.

Rys. 23. Sworzeń sklejony z korpusem oraz luźno chodzący w sejfie

Możliwe jest również wydrukowanie sworznia i drzwiczek oddzielnie, co znacznie ułatwi proces oraz umożliwi wydrukowanie elementów na drukarce z małym polem roboczym.

Korpus należy wydrukować z podporami. Aby zmniejszyć ich liczbę warto ustawić minimalny kąt podpieranych powierzchni na 75º.

Pozostałe elementy są proste do wydrukowania, jedynie niektóre wymagają zastosowania podpór.

Montaż

Na początku należy umieścić orczyk serwomechanizmu w wydrukowanym elemencie i połączyć oba elementy za pomocą cienkiego drutu, przekładając go przez otwory tak jak na zdjęciach poniżej.

Rys. 24. Montaż orczyka z wydrukowanym elementem

Następnie należy włączyć zasilanie układu, aby ustawić serwomechanizm w pozycji zamkniętej i założyć na niego orczyk tak, by z obudową tworzył kąt 90º. Po zamontowaniu należy przykręcić orczyk za pomocą śruby.

Rys. 25. Zakładanie orczyka na serwomechanizm

Jeżeli korpus i drzwiczki były drukowane oddzielnie, należy je teraz połączyć za pomocą sworznia.

Kolejnym krokiem jest montaż serwa w korpusie. Serwomechanizm należy zamontować w taki sposób, aby orczyk był blisko spodu sejfu.

Rys. 26. Montowanie serwa w korpusie sejfu

Następnie należy zamontować przełącznik i czytnik w górnej ściance skarbonki.

Rys. 27. Montaż przełącznika i czytnika linii papilarnych

W następnym kroku należy włożyć baterie/akumulatorki do koszyczka

Rys. 28. Wkładanie baterii do koszyczka

Montaż układu elektronicznego w korpusie

A następnie umieścić koszyczek w specjalnej przegródce w korpusie, przełożyć przewody i zamontować uchwyt na elektronikę, który jest jednocześnie górną ścianką przegródki na koszyczek.

Rys. 29. Montaż baterii oraz przegródki w korpusie

Po zamontowaniu koszyczka należy go zabezpieczyć od dołu za pomocą klapki przykręcanej śrubą M3.

Rys. 30. Zabezpieczanie koszyczka na baterie

W kolejnym etapie należy umieścić elektronikę w odpowiedniej przegródce, a także podłączyć serwomechanizm.

Rys. 31. Umieszczanie układu elektronicznego w środku skarbonki

Na koniec trzeba jeszcze podłączyć czytnik oraz zasilanie i przełącznik. Luźne przewody warto schować w przegródce z elektroniką. Po tym można już zamontować górną ściankę w korpusie sejfu.

Rys. 32. Przykręcenie górnej ścianki i zakończenie montażu sejfu

Teraz można przetestować działanie skarbonki. Po włączeniu zasilania za pomocą przełącznika, diody w czytniku powinny świecić na niebiesko, natomiast serwomechanizm powinien ustawić blokadę w pozycji poziomej, równolegle do dolnej ścianki sejfu. Jeżeli tak się nie stało, to należy poprawić ustawienie serwomechanizmu. Można to zrobić na dwa sposoby. Przy niewielkim błędzie ustawienia można je skorygować za pomocą zmiany wartości w programie.

Można również zdemontować serwomechanizm, odkręcić orczyk, odpowiednio go ustawić i przykręcić z powrotem.

Jeżeli serwomechanizm jest już odpowiednio ustawiony, to można zeskanować palec, co sprawi, że serwo ustawi blokadę w pozycji otwartej. Orczyk powinien teraz być w pozycji pionowej, równolegle do ścianek bocznych skarbonki. Jeżeli tak się stało, to sejf jest już gotowy. Można jeszcze dodatkowo go zabezpieczyć przyklejając górną ściankę i uchwyt na elektronikę do korpusu. Warto również zabezpieczyć przewody przed przypadkowym rozłączeniem. Zewnętrzne ścianki wtyczek można pokryć niewielka ilością kleju na gorąco, jednak najlepszym rozwiązaniem będzie zrezygnowanie z wtyczek i przylutowanie wszystkich przewodów.

Do pobrania

O autorze