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

[Rozwiązano] Włączanie i wyłączanie portów USB w Raspberry pi

chuddinii 13 Mar 2018 13:33 534 13
  • #1 13 Mar 2018 13:33
    chuddinii
    Poziom 3  

    Cześć,

    Chciałbym porównywać barkody z 2 czytników (quick scan qd2430) w trybie ciągłym ale w ten sposób, że odczytuję kod z pierwszego czytnika a następnie z drugiego. Jeśli są takie same świeci zielone światło, jeśli różne to czerwone. Zdarza się sytuacja że 1 czytnik odczytuje dwukrotnie kod i zapala zielone światło mimo że na 2 czytniku jest produkt z innym kodem i powinno zapalić się czerwone.
    Chciałbym więc zapytać czy da się odczytać nr ID portu, z którego odczytano kod i czekać na odczytanie z drugiego czytnika.

    Ewentualnie czy istnieje sposób sterowania zasilaniem konkretnego portu USB w RPI?
    W ten sposób mógłbym uruchomić 1 czytnik jeśli zeskanuje kod wyłączyć go i włączyć drugi, znów pobrać kod i wtedy sprawdzać czy są takie same.

    Dodam że czytniki chciałbym powiesić na konstrukcji i pod każdym ułożyć 10 sztuk produktów.Chciałbym pobierać po 1 produkcie i sprawdzać czy na 1 stosie i na 2 są odpowiednie elementy o tym samym kodzie.

    Z góry dziękuję za odpowiedź.

    0 13
  • Pomocny post
    #2 13 Mar 2018 14:29
    3029369
    Użytkownik usunął konto  
  • Pomocny post
    #3 13 Mar 2018 15:36
    JacekCz
    Poziom 36  

    Pong.Chu napisał:
    chuddinii napisał:
    Cześć,
    Chciałbym więc zapytać czy da się odczytać nr ID portu, z którego odczytano kod i czekać na odczytanie z drugiego czytnika.


    Ale gdzie i co (jaki program, sprzet) od odczytywac to ID?


    To jest właściwe pytanie.

    Wygląda na używanie skanera w emulacji klawiatury???
    Nie umiem się dogrzebać poważnych specyfikacji tego urządzenia, ale w trybach "innych niż klawiatura" powinien mieć możliwość kontrolowania aktywnością, a ten skaner wydaje się je posiadać.

    Pomysł wyłączania USB o ile by się dał w ogóle zrealizować, na pewno byłby wolny - a kolega pisze o wysokiej dynamice.

    0
  • #4 13 Mar 2018 15:39
    chuddinii
    Poziom 3  

    Model czytnika podałem wyżej.
    Pisze w pythonie na RPI.
    Chodzi mi o rozróżnienie czytników wpiętych pod USB. Jak dojść do tego, aby po sprawdzeniu kodu przez 1 czytnik ignorować lub nadpisywać jedynie tą zmienną, czekając na odczyt z drugiego czytnika.
    Co do prędkości wystarczy 1 odczyt na 10s(w tym czasie maszyna będzie łączyć oba produkty)

    0
  • #5 13 Mar 2018 15:41
    JacekCz
    Poziom 36  

    chuddinii napisał:
    Model czytnika podałem wyżej.
    Pisze w pythonie na RPI.
    Chodzi mi o rozróżnienie czytników wpiętych pod USB. Jak dojść do tego, aby po sprawdzeniu kodu przez 1 czytnik ignorować lub nadpisywać jedynie tą zmienną, czekając na odczyt z drugiego czytnika.


    Rozumiem projekt jest dla CIA / KGB / mafii i nie możesz dać kodu?

    0
  • #6 13 Mar 2018 16:05
    3029369
    Użytkownik usunął konto  
  • #7 14 Mar 2018 08:28
    chuddinii
    Poziom 3  

    Przepraszam za brak konkretów.
    Poniżej podsyłam kod, który testuję.

    import sys
    import time
    from time import sleep, strftime
    import RPi.GPIO as GPIO

    GPIO.setmode(GPIO.BOARD)
    GPIO.setwarnings(False)

    GPIO.setup(37, GPIO.OUT) #buzzer
    GPIO.setup(38, GPIO.OUT) #czerwony led
    GPIO.setup(40, GPIO.OUT) #zielony led
    GPIO.output(37, GPIO.LOW)
    GPIO.output(38, GPIO.HIGH)
    GPIO.output(40, GPIO.HIGH)
    time.sleep(2)
    GPIO.output(37, GPIO.HIGH)
    GPIO.output(38, GPIO.LOW)
    GPIO.output(40, GPIO.LOW)
    while True:

    time.sleep(3)

    nr_karty1 = "1"
    nr_karty2 = "2"


    nr_karty1 = raw_input()
    print "Nr kodu 1: " + nr_karty1

    nr_karty2 = raw_input()
    print "Nr kodu 2: " + nr_karty2


    if nr_karty1 == nr_karty2:
    print "Zgodne numery kodow"
    GPIO.output(37, GPIO.LOW)
    GPIO.output(38, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(37, GPIO.HIGH)
    GPIO.output(38, GPIO.LOW)
    time.sleep(0.5)

    else:
    print "Podano dwa rozne numery!"
    GPIO.output(37, GPIO.LOW)
    GPIO.output(40, GPIO.HIGH)
    time.sleep(2)
    GPIO.output(37, GPIO.HIGH)
    GPIO.output(40, GPIO.LOW)

    Jak już pisałem zależy mi na tym, aby odczytać wartość z pierwszego czytnika na następnie z drugiego. Oba wpięte w USB Raspberry pi.
    Szukałem sporo i nie znalazłem rozwiązania. Bardzo bym prosił o jakieś sugestie.

    0
  • #8 14 Mar 2018 08:41
    3029369
    Użytkownik usunął konto  
  • #10 14 Mar 2018 09:14
    3029369
    Użytkownik usunął konto  
  • #11 14 Mar 2018 12:30
    mpier
    Poziom 16  

    Próbowałeś czytać z poszczególnych klawiatur osobno, zamiast ze wszystkich jednocześnie? W linuksie działają one niezależnie. Szukaj "evdev". Według google jest biblioteka do pythona o takiej samej nazwie.

    0
  • #13 16 Mar 2018 18:15
    JacekCz
    Poziom 36  

    chuddinii napisał:
    Sposób rozwiązałem używając przekaźników. Jeśli pobiore dana z 1 czujnika rozwieram mu sygnał tx i czekam na pobranie odczytu z 2 czujnika i tak na zmianę. Następnie porównuje kody.
    Dzięki za odpowiedzi i propozycję.


    Szczerze? To takie rozwiazanie młotkiem, albo nawet siekierą.
    Gwałci chyba wszystkie zasady jak by to profesjonalnie zrobić.

    0