UNI-T UT71: oprogramowanie (Linux)

Jedną z funkcji, dla których kupiłem ten miernik, jest możliwość wysyłania pomiarów do komputera. UNI-T ut71c wyposażono w  opto-izolowany (dosłownie) kabel USB podłączany do specjalnego gniazda znajdującego się na jego tylnej ścianie.

IMG_0518Dostarczone z miernikiem oprogramowanie pod Windows  (i jego trochę nowszą wersję pobraną ze strony producenta) użyłem tylko kilka razy.  Udało mi się za jego pomocą uzyskać odczyty, trochę walczyłem ze skalowaniem wykresów, udało się też  zapisać serię pomiarową…  Więcej testów nie było – przesiadłem się na Linuxa. I tego właśnie będzie dotyczyć ten wpis:)

Linux?

Poniższe instrukcje ćwiczyłem na Linux MINT 17.2 – ale sądzę, że większość z nich będzie taka sama dla innych dystrybucji.

UNI-T ut71c

Poniższe instrukcje odnoszą się do miernika ut71c. Jestem jednak przekonany, że większość z nich przyda się dla innych urządzeń podłączanych przez USB – włączając w to oscyloskopy i analizatory logiczne.

Do podłączenia miernika służy kabel oznaczony UT-D04. Znajdował się w komplecie razem z urządzeniem. Kabel mocujemy z tyłu miernika wsuwając jego końcówkę w gniazdo:

IMG_0519Z tego co doczytałem w Sieci, komunikacja odbywa się za pomocą… podczerwieni. W korpusie miernika znajduje się dioda nadająca a w akcesorium – odbierająca (druga – przypuszczalnie nadająca – jest zaślepiona). System może wydawać się archaiczny, ale doskonale separuje miernik od komputera.

Miernik wysyła dane po przytrzymaniu klawisza MINMAX, gdy na wyświetlaczu pojawi się napis SEND:

IMG_0517

Sigrok i Pulseview

sigrok to otwarty projekt mający na celu dostarczenie wsparcia dla różnego sprzętu pomiarowego – jak multimetry, oscyloskopy czy analizatory logiczne.

Pulseview to interfejs graficzny dla sigrok’a – zajmę się nim w kolejnym poście.

Instalacja

sigrok można zainstalować na Mint poprzez wbudowanego menadżera pakietów. Ja jednak polecam Wam kompilację ze źródeł. Po zainstalowaniu z menadżera okazało się, że mój miernik nie znajduje się na liście wspieranego sprzętu (polecenie: sigrok-cli --version) – pomimo zamieszczenia takiej informacji na stronie projektu.

Gdy pobrałem i przekompilowałem aplikację ze źródła okazało się, że biblioteki są dużo świeższe i wspierają ut71c.

Wszystkie instrukcje dotyczące budowania aplikacji znajdziecie na: http://sigrok.org/wiki/Linux. Sa bardzo dokładne i zadziałały bez żadnych problemów. Pamiętajcie o uprzednim zainstalownaiu zależności (sudo apt-get update oraz sudo apt-get install ...).

Pierwsze wywołania

Przy próbie pierwszego wywołania:

$ sigrok-cli --version

Dostałem:

error while loading shared libraries: libsigrok.so.0: cannot open shared object file: No such file or directory

Zgodnie z opisem, problem rozwiązałem z pomocą polecenia:

$ sudo ldconfig /usr/local/lib

Wtedy:

$ sigrok-cli -L | grep ut71c
uni-t-ut71c          UNI-T UT71C
...
uni-t-ut71c-ser      UNI-T UT71C (UT-D02 cable)

Nie ten kabel, ale co mi tam:)
Dalej podłączyłem miernik do USB, włączyłem go na pomiar napięcia stałego i przytrzymałem klawisz MAXMIN uruchamiając funkcję wysyłania danych:
IMG_0517
Czas na terminal:

$ lsusb
...
Bus 002 Device 010: ID 1a86:e008 QinHeng Electronics HID-based serial adapater
...

Miernik pojawił się na liście urządzeń USB jako Human Interface Device (HID). Postanowiłem pobrać z niego pomiary:

$ sigrok-cli --driver=uni-t-ut71c:conn=1a86.e008 --samples 10

Zauważcie, że parametr

conn=1a86.e008

…odnosi się do identyfikatora z polecenia lsusb. Odpowiedź była znowu negatywna:

sr: usb: Failed to open device: LIBUSB_ERROR_ACCESS.
Failed to open device.

Wskazówki do obejścia tego problemu znalazłem tutaj i tutaj. Gdy tylko spróbowałem powtórzyć to samo polecenie z poziomu roota – zadziałało:

$ sigrok-cli --driver=uni-t-ut71c:conn=1a86.e008 --continuous
sr: usb: Failed to open device: LIBUSB_ERROR_ACCESS.
Failed to open device.
$ su
Password: 
$ sigrok-cli --driver=uni-t-ut71c:conn=1a86.e008 --continuous
P1: 0.000000 V AUTO
P1: 0.000000 V AUTO
P1: 0.000000 V AUTO
P1: 0.000000 V AUTO

Praca na koncie root’a niezbyt mi odpowiadała. Konieczne okazało się dodanie reguł dla udev. W tym celu w katalogu /etc/udev/rules.d stworzyłem plik 60-ut71.rules i (posługując się przykładem) dodałem do niego reguły dla tego konkretnego urządzenia usb:

$ sudo nano /etc/udev/rules.d/60-ut71.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", ATTR{idProduct}=="e008", MODE="0666", GROUP="plugdev"

Zwróćcie uwagę, że idVendor i idProduct (czyli VID i PID) muszą odpowiadać temu, co wyświetli lsusb. W tym momencie wyświetlanie odczytów z miernika nie było już żadnym problemem. Przykładowe polecenia:

  • Skanowanie w poszukiwaniu urządzenia:
    $ sigrok-cli --driver=uni-t-ut71c:conn=1a86.e008 --scan
    The following devices were found:
    uni-t-ut71c - UNI-T UT71C with 1 channel: P1
  • 3 próbki (po uruchomieniu wysyłania na mierniku – przytrzymaj MAXMIN):
    $ sigrok-cli --driver=uni-t-ut71c:conn=1a86.e008 --samples 3
    P1: 0.000000 V AUTO
    P1: 0.000000 V AUTO
    P1: 0.000000 V AUTO
  • Wyświetlanie ciągłe:
    $ sigrok-cli --driver=uni-t-ut71c:conn=1a86.e008 --continuous

Pulseview

…będzie w kolejnym poście.

Z ostatniej chwili

W katalogu pojawiło się akcesorium do tego miernika oznaczone UT-D07A. Jest to adapter Bluetooth pozwalający na bezprzowodową transmisję danych. Pasuje do tego samego gniazda co kabel USB. Producent dostarcza też oprogramowanie iDMM do pobrania dla iOS i Android. Na ali znalazłem cenę – od $28 – czyli jakieś PLN120.

IMG_0523Czyżby prezent po choinkę?

Źródła

Jeden komentarz do “UNI-T UT71: oprogramowanie (Linux)”

Dodaj komentarz