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

Drukarka Braille. Jak taką wykonać? Od czego zacząć?

24 Lut 2006 23:01 4819 21
  • Poziom 10  
    Witam chciałem przeprośic za to co napisze :)
    wiec nie mam zielonego pojecia na temat elektroniki a postawiłme sobie za zadanie zrobienie drukarki Braille jesli ktoś moze mna "pokierowac" od czego zaczac itp bede wdzieczny i wiem ze porywam sie z motyka na słońce [/b]
  • Poziom 18  
    najpierw postaw sobie za zadanie nauczyć się elektroniki i truchę autamoatyki jeśli chcesz sobie zrobić wlasnoręcznie drukarkę. Wyskoczyleś z tą drukarką jak martino z komputero-komórką. Ile masz lat?
  • Poziom 10  
    za duzo duzo za duzo zajmuje sie troche informatyka wiec odpowiem 0x17 bo głupio sie przyznać do 23 lat
  • Poziom 17  
    Po pierwsze czy takie urządzenia istnieją? Jeśli tak to dowiedz się na jakiej zasadzie działają. Jakie są ich ceny bo może się okazać że wprawdzie cel szczytny ale oszczędność nie będzie miarodajna. No i kolejna sprawa czeka cie przyspieszony kurs elektroniki i automatyki czyli... Biorąc pod uwagę że albo pracujesz albo się uczysz będziesz mógł przeznaczyć na budowę pewnie 2h dziennie i raczej ograniczone zasoby finansowe to rok przed tobą optymistycznie mówiąc rok... Pesymistycznie znacznie więcej. Zacznij więc od prostych projektów a potem możesz pokusić się na coś takiego.
  • Poziom 15  
    Pomysł nietypowy ale porównanie paw789 do martina i kompótera z lego jest raczej nietrafione. Jak dla mnie to warto zrobić coś dla społeczeństwa. Cey tkiego cuda to kilka k euro więc wykonać to samemu nawet kosztem 1 k zł to nie było by źle.
    No dobra może z tymi cenami to przeginam ale pomysł fajny.
  • Pomocny post
    Poziom 16  
    witam
    myślę, że elektronika i oprogramowanie nie będą problemem
    co innego mechanika...
    na czym ma się odbywać wydruk?
    jeżeli na kartce "papieru", to można myśleć o zaadoptowaniu starej główki -
    zamiast standardowej głowicy drukującej "trzyigłowa",
    wałek zmodyfikowany na "miękki" (igła musi wbić się na określoną głębokość)

    sterowanie trzema igłami, obrotem wałka i przesunięciami głowicy można robić bezpośrednio z LPT - rozwiązanie łatwiejsze (ale trzeba napisać specjalny sterownik do drukarki, lub program drukujący z pliku tekstowego)
    lub trudniejsze rozwiązanie - elektronika będzie odbierała znaki z drukarki
    i sama sterowała głowicą i wałkiem (ale driver do drukarki może być standardowy - do jakiejś txt)

    podsumowując trudne - ale wykonalne
    z pozdrowieniami
    rezi
  • Poziom 10  
    witam
    mechanikiem jestem tzn mechanik precyzyjny z wykształecenia wiec to tak sobie, "druk" na papierze a co do adoprowaia starej drukarki to pomysł niezły ale czy igły nie bede za cienkie ?? i za słabe ??
  • Poziom 16  
    witam
    cała głowica musi być zrobiona od nowa
    z tego co wiem w brailu bardzo precyzyjnie określone są wszystkie wymiary znaku - wysokość, szerokość, wypukłość, odstępy międzyznakowe
    normalna głowica jest nie do zastosowania
    z pozdrowieniami
    rezi
  • Poziom 10  
    http://www.braille.pl/index.php?body=system
    a tak od poczatku to lpt rs232 usb (znam rs232troche)
    czyli głowica musze robi, (3 lub 6 igłowa ktora łatwie sie wkomponuje ?? ) przesówy tez :)
    :arrow: czyli zaczynajac zabawe od głowicy potrzebuje coś co bedzie przerabiac ascii na 6 impulsów elektrycznych (gdzie tego szukać ??) i co szukać w sumie ?? :D
  • Poziom 16  
    lpt jest łatwy - tylko wpis pod odpowiedni adres żeby wysłać i odczyt żeby odebrać daną
    tłumacz ascii na braila też jest prosty - wystarczy tablica przekształcająca 7 bitów ascii na 6 bitów brajla (programowo lub za pomocą jakiegoś uP)
  • Poziom 10  
    biegam po stronach i jedyne do czego doszedłem ze to ciezkie bedzie dla mnie ;) wiec mam pomysł znalazłem coś o Mikrokontroler ATMega8 wiec tak myśle:idea: (moze źle) ze dało by rade na nich tzn zadnego podajnika kontroli pozycji kartki itp ale głowica 6 igieł chyba; przesów głowicy silnik krokowy;
    przesów wałka tez krokowy i sterowane tymi µkontrolerami Waszym zdaniem warto na tych zaczynać czy na czymś innym ??
    skonam ale sie nie poddam !!!! chyba :)
  • Poziom 16  
    mikrokontroler musi mieć min 10-12 linii do komunikacji przez LPT
    3-6 (w zależności od głowicy) do kontroli igieł
    2 linie do napędu głowicy (krokowy musi mieć wtedy własny sterownik)
    2 linie do wałka (lub 1 bo kręci się tylko w jedną stronę)
    1-3 linie na przyciski sterujące (wysunięcie papieru, reset, itp)
    czyli od 17 do 25 linii - ATmega8 jest za mały

    poza tym przyszło mi wieczorem do głowy, że zmodyfikowany wałek od drukarki nie bardzo się nadaje - środkowe wytłoczenia zawsze będą miały inną głębokość od górnych i dolnych
    rozwiązaniem byłby wałek tylko do napędu papieru, a wydruk na "matrycy" - pasku metalu z wyfrezowanymi/nawierconymi wgłębieniami w kształcie znaku braila (6 wgłębień na literę)
    w pasku było by tyle "liter" ile mieści się w wierszu
    głowica wtłaczała by papier w te wgłębienia - dzięki temu dobrze zachowana była by głębokość liter.
  • Poziom 15  
    Czy ten 'papier' na którym będzie drukowany tekst wytrzyma wyginanie w mechaniźmie drukarki? Zwykle papier w drukarce nie idzie pod kątem prostym, w drukarkach igłowych chyba papier wychodzi pod kątem około 90° do tego jak wchodzi pewnie są też tekie gdzie jest to inaczej ale może nepiej zostawić papier nie zaginany bo pewnie musi być dość sztywny i może przy takim zabiegu się trochę zdefasonować.

    Dodano po 8 [minuty]:

    I poprawka ktoś mądry mi kiedyś powiedział najpierw myśl później pisz i faktycznie wyginanie nie przeszkadza jak widać na fotce http://www.braille.pl/images/maszyna_2.gif
  • Poziom 10  
    dodaje linki do dystr. i producentów takich urzadzeń
    http://www.altix.pl/katalog.php?k=7 dystybutor
    http://www.braille.se/ producent
    http://www.viewplus.com/ producent

    atmega8 chciałem bo nie potrzeba programatora tylko kawałek przewodu (pare kawałków) a jaka sprawa z programowaniem sie ma co do atmega32 podobnie ?? i czy da rade i co polecacie do tego?? jutro bym zakupił aby zaczac nauke
    :arrow: powoli do celu !!

    Linki są już nie aktywne!
    [_P_]
  • Poziom 10  
    ja tak tylko napisać ze praca w toku tzn ucze sie µC i ich programowania własnie siedze nad obsługa lpt :) i jak to zorganizować :) a i jak stworzyć zmienne jedno bitowe :) :?::?: pozdrawiam wszystkich sledzacych i innych ktorzy zagladaja :)
  • Poziom 11  
    A ja chciałbym przystosować maszynę brajlowską do pracy z komputerem. Maszyna brajlowska to jest konstrukcja posiadająca siedem klawiszy, wobec tego pisząca w systemie brajla sześciopunktowego, siódmy klawisz jest od spacji. Każdy klawisz odpowiada za konkretny punkt. Naciskać trzeba dość mocno aby w specjalnym papierze brajlowskim powstał wypukły punkt. Myślę że można to wszystko załatwić elektromagnesami podłączonymi do klawiszy jakoś tam... Problem tylko w sterowaniu. Trzeba by było łowić koniec strony i ręcznie przewijać linijki tekstu, bo wątpię aby udało się sterowanie wałkiem i detekcja końca kartki...
    Anyway, pewnie to do niczego, trzeba inwestować w profesjonalne urządzenia.
    W każdym razie jak tak śledzę ten wątek to muszę przyznać że autor raczej nie osiągnie celu. Drukarka igłowa po przystosowaniu musi umieć wygenerować sześciopunkt o ustalonej według normy wielkości czcionki. Głębokość penetracji igieł jest o tyle bez znaczenia że powinny one być w stanie wykonać punkt w specjalnym papierze brajlowskim. Zwykłe kartki zazwyczaj nie są w stanie utrzymać punktów i po dodatkowym złym przechowywaniu punkty potrafią się zapaść co oczywiście wiąże się z niezrozumieniem tekstu przez czytającego.
    Nie rozumiem kodu ascii ale ważne jest aby konstruowany brajler drukował litery według alfabetu brajla. Nie wystarczy potem tylko drukowanie tesktu, druk brailla wymaga znaczników np. specjalnego określającego że następująca po nim litera jest cyfrą (litery a do j ze znaczenikiem stanowią 1,2,3... 0).
    Ciężka robota :) dlatego te machiny są drogie.
    Wiem, że ktoś w stanach przystosowywuje maszyny brajlowskie Perkins, do pracy z komputerem, mechanizuje... Jednak nie sądze żeby to się opłacało, sama Perkins kosztuje ok. 4000zł, a przystosowanie jej jest na pewno za utratą gwarancji...

    Pozdrawiam
  • Poziom 18  
    Proponuje zrobić ploter, a zamiast pisaka wsadzić igłe i silnik żeby dosisnął igłe, albo silny elektromagnes, który pchnąłby igłą w kartkę, ploter zrobisz z jednej drukarki i skanera, sterowniki i cała reszta jest na www.cnc.info.pl, pozd

    Link nie aktywny!
    [_P_]
  • Poziom 10  
    Witam faktycznie maszyny nie zrobiłem (jeszcze bo mam spalony lpt jakoś z tym nie walcze) co do maszyny to wiem ze szkoła w Owińskach chyba ma i jakaś szkołła w Śremie tam sa chyba nawet dwie sztuki
    a co do zamiany Braila na postać elektroniczna skromny pomysł jest taki
    pod karzdym przyciskiem zamontować czujnik (cel jasny:) ) nastepnie coś co odnotuje obrotu wałka

    miałem pomysła z mikrokontrolerem ale ;)
    mamy 8 czujników czy jakoś tak ;) ( 6znak Braila +1spacja + 1wałek) LPT moze czytać dane z 8 pin ( strobe(1),ack(10), busy(11),PE(12),select(13), auto(14),err(15),(16),(17) ) podpinasz czujniki z portami lpt piszesz program który czyta dane z lpt i przerabia je na kody ascii i wywala do pliku txt lub na monit
    niby bnał:)
    jak pomysł Ci sie podoba daj znać
    pozdr
    ps NIE SPAL LPT
  • Poziom 10  
    dzieńdobry wszystkim zaczynam od nowa mam nowy lpt ( a nawet cała płyte główna) w poniedziłek jade zakupić nowy układ (atmelik) i bardzo chetnie przyjme jaka kolwiek pomoc (np. optymalizacja kodu, i urzadzeń)
    załozenia:
    - sterowanie programem który wysyła kody ascii na lpt(docelowo sterownik jak sie naucze pisać a poza tym na poczatek moze być)
    - uC który przerabia kody ascii na 6 sygnałów braila + przesów papieru i głowicy
    - przesów głowicy o znak (stała wartość, silnik krokowy+ sterownik uC)
    - przesów papieru o linie ( kolejna stała, silnik krokowy+ sterownik uC)
    - głowica 6 elektromagnesów + mostki H (niewiem co to jeszcze ale sie dowiem:D )
    z podajnika i automatyzacji narazie rezygnuje opcja w wersji kolejnej
    za porady z góry dziekuje
    ps jak nie wspomniałem to mowie teraz jak sie uda wykonać za projekt nie biore złotówki i oddaje społeczeństwu pozdrawiam
  • Poziom 19  
    zrób to na atmega32, można programować przez isp, jako programu użyj bascom avr demo (do 4 kb kodu) tak na początek wystarczy, w nim szybko nauczysz się programować.
    silniki krokowe można znaleźć w starych drukarkach (np. HP)
    Życzę udanej pracy!
  • Poziom 10  
    witam ponownie to znowu ja widzę po minach ze sie juz boicie :) a ja mam prośbę jak ktoś widzi na pierwszy rzut oka jakieś błędy to niech da znać a jak ktoś ma ATmega32 i chciał by to przetestować będę wdzięczny ponieważ ja jeszcze nie posiadam
    Code:
    #include <avr/io.h>
    
    #define F_CPU        1000000                    /* 1MHz zegar procesora */
    #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond */
    #define STROBE bit_is_clear(PIND,5)
    //A-dane
    //C-kontrola(ack,strobe,busy)
    //B-tłoczenie
    //D-silniki
    //kod funkcji delay nie jest mój pobrany z turiala na stronie //http://www.patron.net.pl/artykuly/AVR_tutorial.htm
    void delay(unsigned int us)
    {
        unsigned int delay_loops;

        register unsigned int  i;

        delay_loops = (us+3)/5*CYCLES_PER_US; // +3 for rounding up (dirty)

        for (i=0; i < delay_loops; i++) {};
    }
    void delayms(unsigned int ms)
    {
      unsigned int i;
        for (i=0;i<ms;i++)
           {
              delay(999);
              asm volatile (
              "WDR"::);
           }
    }
    unsigned char symbole_w_brailu[57]={
             /*usa*/32,48,36,38,34,52,54,50,20,22,40,56,44,46,42,60,62,
                    58,28,30,41,57,23,45,47,43,
             /*pl*/33,37,35,49,39,13,21,61,28,
             /*symbole*/16,24,18,19,17,26,27,25,11,10,8,59,31,51,9,
             /*formatowanie*/5,7,15,14
             };
    //te cyfry to odpowiedniki logiczne braila tzn a(ascii)- 100000(bin/brail) 32(dec)
    unsigned char ascii_litery_male[8]={
             /*usa97,98,99,100,101,102,103,104,105,106,107,108,109,110,
             111,112,113,114,115,116,117,118,119,120,121,122,*/
             /*pl*/165,134,169,228,162,152,190,171
             };
    unsigned char ascii_litery_duze[8]={
             /*usa/65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
             82,83,84,85,86,87,88,89,90,*
             /*pl*/164,143,168,157,227,224,151,189
             };
    void przesun_glowice_drukujaca(bool kierunek=1)
    {
      //DDRC0=out przesów o znak
      //DDRC1=in podtwierdzene przesówu o znak
      //DDRC1=out powrót głowicy
      //DDRC0=in podtwierdzenie powrotu głowicy
      //domyślnie przesów o znak
      if(kierunek){
                   DDRD|=1<<0;
                   PORTD|=1<<0;
                   //ustawienie kierunku wyjście + stan wysoki
                   DDRD&=~1<<1;
                   PORTD&=~1<<1;
                   //ustawienie wejścia do podtwierdzenia
                   while(bit_is_set(PORTD,1));
                   //zatrzymuje na czas pracy przesuw
                   };
      if(!kierunek){
                   DDRD|=1<<1;
                   PORTD|=1<<1;
                   //ustawienie kierunku wyjście + stan wysoki
                   DDRD&=~1<<0;
                   PORTD&=~1<<0;
                   //ustawienie wejścia do podtwierdzenia
                   while(bit_is_set(PORTD,0));
                   //zatrzymuje na czas pracy przesuw
                   };
    };//void przesun_glowice_drukujaca(bool kierunek=1)
    void print(unsigned char x)
    {
      /*    DDRB=0x00;
          PORTB=0x00;
          //zerujemy piny odpowiedzialne za "tłoczenie"
          tak do mnie dotarło ze w igłówkach jest brak zasilania drukuj
          i musze nad tym pomyśleć ;)
          czytj ta funkcja moze działać źle
          */
          DDRB=symbole_w_brailu[x];
          PORTB=symbole_w_brailu[x];
          //ustawiamy piny do wytłoczenai
          przesun_glowice_drukujaca();
          //procedura przesuniecia głowicy drukujacej
         }
    };
    void sprawdz_co_drukujes_i_wydrukuj(unsigned char znak)
    {     
          if(97=>znak=>122) print(znak-97);
          if(65=>znak=>95) {
                            print(51);
                            print(znak-65);
                            }
                                                 //czy nie *usa*
          if(49=>znak=>57){
                           print(53);
                           print(znak-49);
                           }
          if(znak==48){
                       print(53);
                       print(9);
                      }
          for(int x=27;x<=34;x++)
              {
                if(asci_litery_duze[x]==znak){
                                             print(51);
                                             print(x);
                                             break;
                                            }
                if(asci_litery_male[x]==znak){
                                             print(x);
                                             break;
                                            }
              };
                                                 //czy nie *pl*
          for(int x=0;x<=15;x++)
              {
                 if(ascii_symbole[x]==znak){
                                            print(x+36);
                                            }
              };
                                                 //czy nie symbol;
    };//void sprawdz_co_drukujes_i_wydrukuj(unsigned char znak)
    int main()
    {
          DDRB=0x00;
          PORTB=0x00;
          //zerujemy piny odpowiedzialne za "tłoczenie"
          DDRC=8;//strobe in, ack busy out //strobe-PB0,ack-PB1,busy-PB2
          PORTC=6//strobe 1 ack 1 busy 0
    unsigned char znak;
          while(bit_is_clear(PORTC,0))
          {
               znak=PINC;//mozna tak ??
               PORTC|=1<<0;//busy do góry
               sprawdz_co_drukujes_i_wydrukuj(znak)
               PORTC&=~1<<2;
               PORTC&=~1<<1;
               delayms(5);
               PORTC|=1<<1;
               delay(1);
          }
    };
    /*
    podsumowanie:
    -wiem ze sa błady ale nie wiem gdzie??
    -kotś kto powiedział ze elektronika bedzie najprostrza chyba napewno miał racje
      (ale nie zeby była banalna (w moim mniemaniu))
    - układ jeszcze NIE TESTOWANY jak by ktoś miał ochote jestem wdzięczny
    copyleft - all rights reversed z wyjatkiem funkcji delay() i delayms() bo nie moje!!
    ps http://drukarkabrailla.bloog.pl/
    pozdrawiam i dziękuje z góry za pomoc
    konio tu dziesz Łukasz Kończak
    */

    narazie tylko tyle zrobiłem ale sie poprawie obiecuje
    na wszystkie pytania odpowiem chętnie i za uwagi i propozycje innych rozwiązań z góry po raz drugi dziękuje