Urządzenie tego typu mogłoby znajdować się w urzędach, sądach lub w innych instytucjach, z których korzystają między innymi osoby niewidome. Z uwagi na niski koszt eksploatacji nawet dystrybuowane w niewielkiej ilości ogłoszenia, klepsydry, reklamy czy ulotki mogłyby docierać do osób niepełnosprawnych. Rozpowszechnienie takiego urządzenia mogłoby chociaż odrobinę zmniejszyć różnicę dzielącą standardy życia osoby zdrowej od osoby niewidomej. Nie jest to problem marginalny, ponieważ według statystyk w Polsce żyje blisko dwa miliony osób słabowidzących i niewidomych.
Urządzenia podobne do opisywane zwykle są bardzo drogie i raczej pełnią funkcję przemysłową, to znaczy, są przystosowane do wydruków masowych. Ceny takich maszyn rozpoczynają się od około 2000 USD. Koszt materiałów użytych w budowie opisywanej drukarki wyniósł ok. 800 złotych.
Budowa maszyny przypomina niewielką frezarkę CNC. Jeden silnik krokowy porusza uchwytem, do którego przymocowany jest drugi z zamontowaną igłą. Trzeci odpowiada za poruszanie stolikiem, do którego jest przymocowana kartka. Stelaż wykonano z metalu, z części dostępnych w przysłowiowej szufladzie. Dodatkowo usztywniono go, aby zapewnić powtarzalność wykonywanych wydruków. Stolik jest wyłożony sztywną pianką poliuretanową, dzięki czemu nakłucie może być głębokie, wyraźne, a przez to czytelne. Dzięki temu uzyskuje się też podwyższoną trwałość produktu końcowego.
Ręcznie wykonana obudowa ze szkła akrylowego pełniąca rolę osłony mechanizmu jest przymocowana do stelażu 8 śrubami.
Część elektroniczna
W budowie wykorzystano silniki krokowe, bipolarne typu PL15 S. Za ich sterowanie i zasilanie odpowiadają trzy moduły Pololu A4988 kontrolowane przez płytkę mikrokomputera Arduino Mega ADK. Poziom napięcia na wejściu Dir (Direction) steruje kierunkiem, w którym obraca się silnik. Po ustawieniu tego wejścia, kierunek obrotów jest zgodny ze kierunkiem ruchu wskazówek zegara. Po wyzerowaniu wejścia Dir, kierunek obrotów silnika zmienia się na przeciwny. Po podaniu dodatniego impulsu na wejście Step jest wykonywany pojedynczy krok w wybranym kierunku.
Mikrokomputer Arduino odbiera informacje z komputera za pomocą interfejsu szeregowego RS232. Prototyp wykonano z użyciem płytki stykowej oraz połączeń krótkimi odcinkami przewodów. Schemat montażowy pokazano na rysunku 1.
Płytka Arduino jest zasilane napięciem stabilizowanym +5 V. To samo napięcie zasila układy logiczne na płytkach sterowników silników. Uzwojenia silników są zasilane z zasilacza napięcia stabilizowanego 7,5 V o obciążalności 1 A.
Oprogramowanie do obsługi drukarki napisano za pomocą środowiska Arduino IDE. Gotowy kod źródłowy zawiera ok. 800 linii tekstu.
Mikrokontroler odbiera znaki za pomocą interfejsu RS232, a następnie dokonuje konwersji na kod Braille’a i odpowiednio steruje wejściami Step i Dir poszczególnych modułów kontrolujących pracę silników. Po nakłuciu danego znaku mikrokontroler interpretuje kolejny.
Znaki są interpretowane głównie za pomocą funkcji „if”. Program liczy litery i kiedy zapełnią one linię, zacznie pisać od nowej. Kiedy zostanie osiągnięta maksymalna liczba linii, program kończy drukowanie. Ważniejsze fragmenty oprogramowania pokazano na listingu 1. Warto tutaj zaznaczyć, że Internet nie służy pomocą w kwestii oprogramowania i sprzętu do takiego urządzenia, więc całość została opracowana i zrealizowana przez autora.
Program wysyłający pliki tekstowe do mikrokontrolera
Oprogramowanie drukarki, składa się z dwóch części. Pierwsza, to program sterujący nakłuwaniem znaków. Druga, to program przesyłający dane za pomocą interfejsu RS232 komputera PC. Napisano go za pomocą środowiska Processing 3.
Program jest nieskomplikowany. Po uruchomieniu odczytuje wybrany plik tekstowy i wysyła kolejne znaki przez interfejs szeregowy do drukarki. Pokazano go na listingu 2.
Urządzenie wykonano z użyciem popularnych, niedrogich podzespołów. Najdroższymi komponentami użytymi w jego budowie są silniki krokowe. Koszt zakupu takiego silnika, mimo iż nie są tu wymagane takie o dużym momencie obrotowym, to kilkadziesiąt złotych.
Oprogramowanie drukarki nie jest szczególnie skomplikowane. Na pewno można by było wykonać bufor odbieranych znaków, aby oprogramowanie drukarki odbierało dane blokami, które następnie byłyby interpretowane. Z jednej strony usprawniłoby to nakłuwanie znaków, a z drugiej zwolniło komputer PC. Pamięć RAM mikrokontrolera ATmega 2560 jest w stanie pomieścić aż 8 kB danych. To znacznie więcej, aniżeli jedna, całkowicie zadrukowana kartka formatu A4.
Oprogramowanie drukarki odbiera dane w formacie tekstowym. Oznacza to, że do wysyłania danych można użyć dowolnego programu obsługującego transmisję za pomocą interfejsu RS232, w tym również programu typu terminal znakowy. Idealne byłoby napisanie drivera drukarki dla systemów Windows i Linux, co umożliwiłoby drukowanie z popularnych programów, jak edytory tekstowe. Zachęcam do wykonywania modyfikacji oraz wprowadzania usprawnień.
Adam Dera
adam.dera98@gmail.com