Riadenie DrDAQ z počítača pod systémom Linux, Raspbian a Windows

USB záznamník DrDAQ v malom zariadení ponúka osciloskop, generátor, meranie hluku, teploty, PH, DIO a iné. Na jeho ovládanie sa dodáva program Picolog alebo Picoscope. Je často používaný aj ako zariadenie na zber údajov v zákazníckej aplikácii kde je potrebné spracovávať namerané hodnoty vo vlastnom programe.

Tu je na stiahnutie wrapper usbDrDaqApi.h pre Free pascal, Lazarus a možno aj Delphi (poriadne nevyskúšané).

Na riadenie z jazyka Pascal potrebujete splniť nasledujúce podmienky:

  • Windows
  • Linux / Raspbian
    • nainštalulte program Picoscope alebo driver pre Linux zo stránky www.picotech.com/downloads/linux
    • ak je to nutné, podľa inštrukcií na stránke vyššie nastavte práva
    • stiahnite súbory usbDrDaqApi.pas a PicoStatus.pas a nastavte ich použitie vo vašom zdrojovom kóde
    • ak sa objavia problémy skúste spustiť programy ale inštaláciu ako root (sudo)

Na vyskúšanie komunikácie a či je knižnica a driver správne nainštalovaný môžte použiť môj program DrDAQ_cnt - na stiahnutie dolu.

Ďalej budete potrebovať návod na programovanie Pico-DrDAQ-pmen.pdf a jeden kus čerstvého mozgu.

Vzorový priklad aj s komentármi ukazuje otvorenie zariadenia a základné operácie:

program example_drdaq;

uses sysutils, usbDrDaqApi, PicoStatus;

var
DrDAQhandle : int16;
ivalue : int16;
overflow : word;
InfoStr : array[0..63] of char;
Status : PICO_STATUS;
fValue : single;

begin
Status := UsbDrDaqOpenUnit(DrDAQhandle);//pokus sa otvorit USB zariadenie DrDAQ
if Status = 0 then
//uspesne otvorene
begin
UsbDrDaqEnableRGBLED(DrDAQhandle,1); //povol pouzitie RGB LED
UsbDrDaqSetRGBLED(DrDAQhandle, 0, 40, 0); //nastav zelenu na 40, cervena a modra na 0

UsbDrDaqSetSigGenBuiltIn(DrDAQhandle, 0, 1000000, 56, USB_DRDAQ_SINE); //nastav vystup z generatora 1 Vpp, 56 Hz, Sinus

UsbDrDaqGetSingle(DrDAQhandle, USB_DRDAQ_CHANNEL_LIGHT, ivalue, overflow); //precitaj surove data zo senzoru osvetlenia
Writeln('Light sensor raw output: ', ivalue);

UsbDrDaqSetScalings(DrDAQhandle, USB_DRDAQ_CHANNEL_TEMP, 0); //nastav citanie na stupne Celzia
UsbDrDaqGetSingleF(DrDAQhandle, USB_DRDAQ_CHANNEL_TEMP, fvalue, overflow); //precitaj jednu floating hodnotu
Writeln('Temperature sensor output: ', format('%4f '#$00b0'C',[fvalue*0.1]));

Status := UsbDrDaqGetUnitInfo(DrDAQhandle, InfoStr, 64, ivalue, PICO_BATCH_AND_SERIAL); //precitaj informacie ako text
Writeln('DrDAQ batch and serial: ',InfoStr);

UsbDrDaqCloseUnit(DrDAQhandle);
end
else
Writeln('Error during open: ',Status);
end.

Ak sa vyskytnú problémy skontrolujte nasledovné:

  • Windows
    • skontrolujte či je knižnica USBDrDAQ.dll rovnako 32/64 bit ako vaša aplikácia (nieje možné volať 32 bit knižnicu z 64 bit aplikácie a naopak)
  • Linux
    • pri problémoch s libusbdrdaq.so.2 vyskúšajte niektorú z nasledujúcich možností:
    • v nastavení projektu v Lazarus-e: "Compiler Options -> Paths -> Libraries" pridajte /opt/picoscope/lib/libusbdrdaq.so.2.0.0
    • vytvorte symlink v adresár kde váš program kompilujete ktorý smeruje na /opt/picoscope/lib/libusbdrdaq.so.2.0.0
      v adresári kde kompilujete spustite príkaz: ln -s /opt/picoscope/lib/libusbdrdaq.so.2.0.0 libusbdrdaq.so.2
      a v nastavení projektu v Lazarus-e: "Compiler Options -> Compilation and Linking" zapnite voľbu: "Pass options to linker with "-k", delimiter is space" pridajte parameter: -R ./ 
    • skúste spustiť vašu aplikáciu ako root

Verzia súboru usbDrDaqApi.h pre Pascal usbDrDaqApi.pas a tiež PicoStatus.h PicoStatus.pas. Ukážkový projekt pre Lazarus: picoDrDaq-Lazarus.zip.


Program na vyskúšanie či je správne nainštalovaný driver a knižnica a skúška USB spojenia. Zdrojový kód DrDAQ_cnt.lpr (stiahnite a skompilujte príkazom: fpc DrDAQ_cnt.lpr). Celý projekt ako archív: DrDAQ_cnt.zip. Vyskúšané pod Linux x64, Raspbian na Raspi 3B+, Win32 a Win64.

Skompilované binárne verzie, nezabudnite po stiahnutí nastaviť Execute flag.

Tento produkt bol pridaný do porovnávacej tabuľky.

Webové stránky spoločnosti Elso Philips Service používajú súbory cookies na svoju správnu funkciu a pre zabezpečenie lepších služieb pre Vás.