logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zbudować prosty inwentaryzator z czytnikiem kodów i pamięcią 80KB?

Mad Bekon 14 Sty 2004 20:20 10828 54
Najlepsze odpowiedzi

Jak zbudować prosty inwentaryzator z czytnikiem kodów kreskowych, klawiaturą i pamięcią około 80 KB, a potem zrzucać dane do PC?

Najprościej zrób to na małym AVR, np. AT90S8515 albo AT90S2313, z LCD 2x20 i zewnętrzną pamięcią 24C1024 lub 24C512; obsługa I2C jest prosta, a 24C1024 daje już duży zapas na dane [#476114] [#490456] [#487805] Jeśli obawiasz się wielokrotnych zapisów do EEPROM-u, rozważ RAM z podtrzymaniem albo zapis rekordami tak, by nie mielić ciągle tych samych komórek; EEPROM ma trwałość rzędu 200 000 cykli zapisu na komórkę [#483395] [#487805] Jako wygodną alternatywę kilku osób wskazało SD/MMC: duża pojemność, mały pobór prądu, prosty SPI i łatwe przeniesienie danych do PC po zakończeniu inwentaryzacji [#486569] [#487148] Wersja z pamięcią na karcie jest bardziej uniwersalna, ale droższa i bardziej skomplikowana niż proste 24C1024 [#487148] [#487771] Do samej komunikacji z komputerem w projekcie przewidywano także RS-232, a całość można zamknąć w prostym menu na mikrokontrolerze [#490456] [#491374]
REKLAMA
  • #1 475474
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Więc tak... Patrząc jak mój staruszek się męczy z wożeniem komputera po całym sklepie wpadłem na pomysł, Prostego inwentaryzatora...

    Mam czytnik kodów kreskowych, z którego dane wychodzą jak z klawiatury...

    Urządzenie miałoby wyświetlacz, np 2X20, podpięty czytnik a do czytnika klawiatura numeryczna (przerobiona ze zwyklej)

    Pojawia się pytanie: Kod?
    Klikamy czytnikiem. Jakby z klawiatury wpisuje się 593234234242342<enter>
    Pojawia się pytanie: Ile? wpisujemy z numerycznej i naciskamy enter.
    Zapisuje się to do pamięci... itd... jak się skończy to musi się to zapisać do pliku na kompie w postaci:
    KOD, ILOSC
    KOD, ILOSC
    itd...

    Problemem wydaje mi się pamięć bo wyliczylem że ok 20 bajtów * 4000 towarów = ok 80kb

    Co możnabybyło zastosować jako pamięć?
    Czy jest ktoś chętny z pomocą przy tym projekcie? Bo ja conajwyżej mogę do wykonać, fizycznie, ale o pisaniu pod uC nie mam zielonego pojęcia...

    Uważam że projekt jest dość ciekawy...
  • REKLAMA
  • #2 475766
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    a ja mam inny pomysl.
    ten czytnik kodow podpinasz tylko pod mikrokontroler z jakas zewnetrzna pamiecia flash, lub NVRAM(nieulotna). Potem jak zrobisz jakis dzial albo polke podchodzisz do kompa i powiedzmy przez RS(bo latwo podlaczyc do PC) ladujesz to do kompa. Ale napewno nie jest to jedyny pomysl. Mowisz 80 KB - wystarczy zastosowac dwie kostki pamieci i sterujesz z ktoregos dodatkowego portu. Albo jeszcze inaczej. Dajesz pamieci 24c256(32KB) lub 24c512(64KB) Tylko ze cena takich pamieci nie jest najmniejsza. Trzeba sie zastanowic co jest latwiej wykonac.
  • #3 476114
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Wiesz co? myślę że obsługa 24c512 byłaby dość prosta...
    Tak mi się przynajmniej wydaje... no bo I2C.
    I myślę że mogłaby starczyć bo w założeniu 80KB przyjąłem że 20 znaków, ale przecież najdłuższy kod kreskowy ma 13, ale niekoniecznie, a ilość przjąłem max 4 cyfry ale zwykle to sa 2 albo 3...
    np dla papierosów jest chyba 7 cyfr kodu i powiedzmy ze jest ich w sklepie 35, co w sumie daje zajęte 11 bajtów pamięci... Więc myślę żę 64kb starczy spokojnie...
    Problemem jest jak to napisać...

    PS. A czy nie można byłoby zastosować np 24c1024, choć myślę że 512 w zupelnosci wystarczy?

    W skurcie napisze działanie urządzenia jeszcze raz:
    -Na wyswietlacz pytanie: Co?
    -Robimy pyk czytnikiem i jakby z klawiatury kompa wpisuje się kod kilkucyfrowy (a po kodzie czytnik wysyla kod klawisza enter)
    -Na wyświetlacz poytanie: Ile?
    -Klawiaturą wpisujemy ilość towaru na stanie (potwierdzamy enterem)

    -Jest mi obojętne jak to się w pamięci zapisze, ale ja proponiję: "kod,ilosc;";
    -Po skończeniu całego procesu idziemy do kompa i np przez RS232 przesylamy to tak aby w pliku bylo zapisane w postaci:
    KOD,ILOSC
    KOD,ILOSC
    KOD,ILOSC
    itd az do konca
  • REKLAMA
  • #4 476459
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    napisz jeszcze jaki masz czytnik. Jak sie go podlacza, do czego, czy jest jakas konfiguracja w urzadzeniu?
  • #5 476506
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    No jest tak jak pisałem wcześniej... bo to jest czytnik podlaczany tesh do PC... Podlacza sie do niego klawiaturę, a wychodzi wtyczka do PC... działa jak zdykła klawiatura...
  • #6 476561
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    no to tez fajnie bo zwykle klawiatury da sie w prosty sposob obslugiwac w bascomie. Teraz proponuje wybrac sobie jakas obudowe do tego. Jezeli mowisz ze dasz rade zaprojektowac i wykonac plytke no to jeszcze fajniej - moze po skonczeniu zechcesz sprzedac projekt. Obudowe najlepiej plastikowa z otworem na wyswietlacz - cos z seri KM lub Z
  • #7 476752
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Wiesz bo złożenie w całość, to jush w zasadzie jest końcówka roboty...

    Myśle że może 8515 + 24c512 + LCD 2x20 ...
    Powinno starczyć prawda?
  • #11 480403
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    A może zrobić to na małym komputerze typu palmtop, już za 300zł można kupić urzywany, w większości z nich jest port szeregowy, port IRDA a czasem nawet USB do synchronizacji.
  • #12 481263
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Wiesz, to by nie bylo glupie, ale musialoby posiadać wejscie klawiaturowe do podlaczenia czytnika... nawet byloby fajniejsze, ale skąd coś takiego wziąść?
    --
    30min pozniej...
    --
    Przegladalem palmtopy na allegro i raczej nie maja one podlaczanego klawiatu przez PS/2. Czytnik mozna tesh podlaczyc przez RS232 ale niewiem czy by sie udalo.... Jestem zmieszany :roll:
  • #13 481332
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Nie doczytałem że czytnik ma wyjście 'klawiaturowe', w najgorszym przypadku będzie trzeba zrobić jakiś konwerter na małym procku, myśle że to nie byłby duży problem. Klawiatura 'nadaje' dane synchronicznie do zegara który też sama generuje.
  • REKLAMA
  • #14 482008
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    moznaby tez zrobic nadajnik 433MHz (taki jak od pilata alarmow) i miec skaner bezprzewodowy :) takie moduly ma AVT, nazywaja sie Telecontrolli, ale jeszcze sie nimi nie bawilem.
  • #15 482214
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Tak sobie myśle że problem byłby też z zasilaniem tego czytnika, palmtop będzie chodzi kilka godzin na "paluszkach" bądz akumulatorkach, ale czytnik może wymagać zasilania z jakiegoś sporego akumulatora.
  • #16 483395
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    Powróce do tematu pamięci.. radze zastosować pamięć Ram ponieważ gdyby zastosować eeprom mugł by sie szybko zepsuć przez nadmierną ilość reprogramowania..

    co do zapisu kodu: kod paskowy przeważnie jest typu EAN-13 co daje 13 cyfr.. można je zapisywać w niblah (BCD) co da do zapisu samego kodu 7 bajtów, a do ilości można zastosować jeden wyraz (2 bajty) co daje 9 bajtów..

    program: najlepiej po przeskanowaniu jakiegoś kodu procesor powinien w pamięci szukać wpisu z takim samym kodem i teraz tak:
    jak znajdzie taki wpis to zmieni jego wartość oznaczającą liczbe..
    a jeśli nieznajdzie takiego wpisu to na końcu doda wpis o przeskanowanym kodzie a jako ilość da '1'..

    na kości 62256 (32KB) szło by pomieścić około 3500 wpisów o różnyh towarah
  • #17 483753
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Ram? Hmm, no tak ale co przy braku zasilania?klops?

    Czytnik chyba wiele nie potrzebuje, coś jak zwykły klawiat...

    Eeprom może się wyśmietnikować? Hmm, to niewesoło...
  • #18 483772
    ACULA
    Poziom 34  
    Posty: 3005
    Pomógł: 105
    Ocena: 114
    czemu kombinujecie jak koń pod górkę,
    o ile zrozumiałem czytnik ma wyjście klawiaturowe i sygnały są takie same
    Więc czemu nie zrobić podsłuchu klawiatury, takie projekty już są.
    Zbierając dane wpisywane przez klawiaturę a potem można podłączyć do innego kompa i odczytać ;)
  • REKLAMA
  • #19 484397
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    Acula:
    Z tego co ja przeczytałem wyżej Mad Bekon hce jeszcze podłączyć LCD,
    komu sie będzie hciało biegać przez połowe pomieszczenia do komputera?
    Z kąd będzie wiadomo że pamięć w podsłuho sie niezapełniła?

    Ram+bateryjka do podtrzymywania, akumulatorek do zasilania całości, najlepiej na at90s8515, transmisja do kompa RS-232, jakaś klawiaturka z 3 przycisków 'góra,dół,wybierz' i jakieś menu typu przegląd listy, wysłanie przez rs,czyszczenie pamięci i inne ;D
    32KB to śmignie przez rs'a w 4 sekundy na prędkości 9600 bodów (transmisja może być jednokierunkowa)
    I to cała filozofia
  • #20 484420
    ACULA
    Poziom 34  
    Posty: 3005
    Pomógł: 105
    Ocena: 114
    nie napisał że hipermarket albo starszy to cyborg
    a)nie wiem jak można za jednym zamachem bez przerwy poskanować ponad 1000kodów, więc skąd przepełnienie pamięci??
    b)przeciez do układu pluskwy wystarczy podpiąć lcd, i klawiaturkę, napisać kilka linijek kodu i wyświetlać zawartość pamięci
    lcd 6 pinów, klawiatura 7 pinów, 51 w zupełności wystarczy
    wtedy procek czeka na dane z czytnika po odebraniu zdanych wyświetla na lcd numer kodu, żąda potwierdzenia zapisu do pamięci, pyta o liczbę sztuk, pyta o zatwierdzenie zapisu do pamięci i czeka na kolejne dane z czytnika lub wciśnięcie przycisku odbioru danych i po problemie
  • #21 484624
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Powiem tak! Aktualnie to wygląda tak że się bierze taki wóżek na niego 2 skrzynki jaboli, na to deche i sie kompa uklada... i z calym wozkiem sie jedzie przez sklep. Ja przy kompie, a 2 panie licza i przybiegaja do mnie z towarem, a ja wbijam jego kod i ilość do programiku....

    Chodziąc ostatnio po markecie wydzilem ze taka pani miala takie wlasnie fajne urzadzenie, ale pewno kosztuje ze 1000zl :(

    Wiec rozwarzam dalej...BoskiDialer ma w sumie racje... tylko że do tego musi być jeszcze jakaś klawiaturka do wbijania ilości...
  • #22 484866
    ACULA
    Poziom 34  
    Posty: 3005
    Pomógł: 105
    Ocena: 114
    wpisujesz do programu, czyli musisz mieć albo nowy program w kompie albo i tak ręcznie wbijać liczbę sztuk do oryginalnego, co całkowicie zmienie całą koncepcję, bo przy transmisji do kompa musisz robić przerwy na wbicie sztuk.
    Proponuję poszukać schematu transmisji bezprzewodowej, ktoś będzie skanował i krzyczał liczbę sztuk a Ty wklepujesz
    --------
    napisałem przecież, że będzie potrzebny drugi program, więc raczej zrozumiałem ;)
  • #23 484972
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Nie bo dane z urządzenia się zapisywalyby do pliku, a z pliku import do programu... Proszę przeczytaj wczesniejsze posty bo chyba niewiesz, co mam na mysli...
  • #24 486569
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Dlaczego nikt nie wpadł na pomysł, żeby jako pamięć zastosować moduł pamięci SD/MMC ?. Toto ma prosty protokół SPI, są gotowe biblioteki w C do jej obsługi, pobiera mało prądu, ma ogromną pojemność, procesory AVR maja wbudowany szybki SPI w sobie. Czego więcej trzeba ?. Ponadto wystarczy po inwentaryzacji wsunąć go do czytnika za 45 zł (na USB) i przetransferowac dane do PC. A w dodatku dane nie giną po wyłączeniu zasilania.
  • #25 486651
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    :arrow: mzielin
    wydaje mi sie, ze trafiles w samo sedno tematu. jakby jeszcze znac strukture pliku, w ktorym przechowywane sa dane moznaby od razu przegrywac cale pliki na komputer. bez pisania kolejnego programu konwertującego.
  • #26 487023
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Wiecie co? Ja tesh sobie tak myślę że to chyba najlepsze rozwiązanie... I raczej na nie się zdecyduję, ale teraz mam pytanie... Jak je podpiąć i jak obsłużyć? Którą z nich łatwiej podpiąć? Która jest tańsza?
  • #27 487148
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Protokół komunikacyjny SPI do nich jest dostępny darmo, natomiast system plików FAT12/16 jest niestety już płatny 139$. Opis jest na www.avrfreaks.com. Może istnieją inne rozwiązania, lecz obecnie ich nie znam.
  • #28 487771
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    No.. MMC jest dość szybkie.. pojemne.. małe.. ma interfejs SPI.. ma dóżo zalet, ale jest drogie.. MMC niepasuje do "Prostego inwentaryzatora"... ale jak kto woli.. zależy jak wysoko ktoś ustawi poprzeczke prostyh urządzeń :lol:
  • #29 487805
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Trwałość EEPROM'ów to 200.000 cykli zapisu każdej komórki (zanim się zepsuje, minie trochę czasu) :D
    Najlepiej użyć mikrosterownika, który pobiera niewiele energii i zasilać z akumulatora. Częstotliwość taktowania nie musi powalać na kolana, wystarczy 1MHz, albo i mniej. Wyświetlacz LCD pobiera około 2mA, ale nie musi być aktywny cały czas, tylko podczas zapisu. Klawiatura podobnie. Chyba, że zastosujesz zwykłe przełączniki numeryczne do wpisywania ilości. Zapis najlepiej w 24C1024, wystarczy na długo. Informacje o zakupie są na Elektrodzie - wpisz do Szukaj AT24C1024. Ścieżka niejako przetarta. Jakby co, mogę pomóc.
    Pozdrawiam.
  • #30 487825
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    Nemo ma racje.
    najlepiej zastosować at90s8515, LCD jak kto woli, 32KB Ram'u,
    EEPROM tesz 32KB do zapisywania wszystkich danyh,
    klawiatura może być wbudowana składająca sie np z 16 przycisków (4x4),
    dwie bateryjki 9V albo 6 paluszków R6 hyba wystyknie.

    Poco MMC? one mają hoćby 16MB.. kto będzie tyle wykożystywał.. spoko milion wpisów by weszło.. ale to nie firma transportowa :lol:

    Trohe sie zaangażowałem w trasowanie płytki ;D program moge napisać w asm... płytek (plików) jak narazie nieudostępniam..

Podsumowanie tematu

✨ Dyskusja dotyczy projektu prostego inwentaryzatora z czytnikiem kodów kreskowych, wyświetlaczem LCD 2x20 oraz pamięcią około 80KB do zapisu par kod-ilość. Proponowane rozwiązania pamięci obejmują zastosowanie pamięci EEPROM (np. 24C512, 24C1024), pamięci RAM z podtrzymaniem bateryjnym, a także modułów SD/MMC z interfejsem SPI. Wskazano zalety i wady EEPROM (trwałość zapisu do 200 tys. cykli), RAM (utrata danych przy braku zasilania) oraz kart SD/MMC (duża pojemność, ale wyższa cena i komplikacje napięciowe). Jako mikrokontrolery rozważano AVR, w szczególności modele AT90S8515, AT89C2051, AT2313, z programowaniem w Bascom AVR lub asemblerze. Komunikacja z komputerem miała odbywać się przez interfejs RS-232. Czytnik kodów ma wyjście symulujące klawiaturę PS/2, co ułatwia odbiór danych. Proponowano także prostą klawiaturę numeryczną do wprowadzania ilości. Dyskutowano o algorytmie zapisu danych, wyszukiwaniu istniejących wpisów i aktualizacji ilości. Wspomniano o gotowych urządzeniach komercyjnych (kolektory danych) oraz oprogramowaniu do integracji z systemami magazynowymi, np. Symplex Small Business. Projekt wymaga opracowania schematu, płytki PCB oraz oprogramowania mikrokontrolera i ewentualnie PC. Pomysły na zasilanie obejmowały baterie 9V lub akumulatory. Wątpliwości dotyczyły obsługi protokołu PS/2, trwałości pamięci oraz wygody użytkowania urządzenia w sklepie.
REKLAMA