25 berichten aan het bekijken - 1 tot 25 (van in totaal 25)
  • Q:
    Bijdrager
    Huub Toussaint

    drukverschil meten met mac

    graag gebruik ik mijn macbook pro (Mavericks) voor het meten van een druk verschil
    ik heb een honeywell sensor die ik wil koppelen aan een brugversterker om vervolgens het signaal te digitaliseren met een digitaal-analoog converter (daq). Er zijn hele dure oplossingen (national instruments met labview voor 6-7000 euro) maar ik zoek een iets goedkopere oplossing.
    Eigenlijk is het maar één analoog signaal dat met 100 Hz bemonsterd moet worden dus heel geavanceerd hoeft het allemaal niet.
    Een output in de vorm van CSV is al mooi zat; die gaat Numbers in voor de grafische weergave.

    heeft iemand ervaring/suggesties voor hardware voor data-acquisitie en de bijbehorende software die onder Mac OS X draait?

    alvast hartelijk dank

    vriendelijke groet

    Huub Toussaint

    Bijdrager
    hansilan

    Als je een beetje kan programmeren kan zou ik een arduino gebruiken en deze aan je mac hangen, je kan deze eveneens als analoog digitaal omzetter gebruiken.

    Bijdrager
    Huub Toussaint

    Dank Hans
    programmeren kan ik wel een beetje (MatLab) en het is ook wel een leuke uitdaging..
    maar het is ook de tijd die het dreigt te gaan kosten die mij doet omkijken naar een oplossing die meer op plug-n-play lijkt op te leveren
    Zo is er in de App Store DAQ plot en zijn er goedkope kaartjes bij te krijgen (DLP-IO8-G 8-Channel Data Acquisition Board), maar ik hoor graag of zulk soort oplossingen ‘werken’. En anders dan toch maar de Arduino ?

    Bijdrager
    Huub Toussaint

    Dat is een idee wanneer je in de frequentie van het signaal geïnteresseerd bent denk ik
    maar ik wil een voltage uitlezen dat evenredig is met een drukverschil en ik vermoed dat dat niet met deze A2D converter gaat lukken
    Hoe lees ik het voltage/ de druk achteraf uit? of is het mogelijk de gesampelde voltages weer terug te converteren als ik een van de geluidsfiles terug-converteer?

    Bijdrager
    hansilan

    raspberry pi icm dac is misschien eenvoudiger (alles in een programma) en goedkoper.
    kijk dit eens na als je kan programmeren in mathlab is python maar een kleine stap.

    Analogue Sensors On The Raspberry Pi Using An MCP3008

    Bijdrager
    Huub Toussaint

    dank je wel Hans
    ben in mijn zoektocht bij labjack.com terecht gekomen die tegen een redelijke prijs hardware leveren. Nu nog een goede software oplossing. Misschien kan het toch rechtstreeks (via.dll) vanuit Matlab.
    (DAQplot (b)lijkt een hoax programma: als je echt data wil meten is de prijs niet 18€ maar wordt je gevraagd 220$ ex btw ex shipment ex handling neer te tellen….)

    Bijdrager
    Huub Toussaint

    Hmmm
    Als ik een Windows machine had dan misschien:

    Systeemeisen

    CD-station
    USB 2.0-interfaces
    Windows98SE/ME/2000/XP/Windows Vista/Windows 7.

    Wel veel computers gekocht maar nog nooit een Windows machine…. Dus ik zoek nog even verder

    Bijdrager
    TheBigZ

    Heb je die andere links ook bekeken? Je kunt zo’n scope ook via OS X bedienen. Zie de uitleg van Johan van Oostrum, eigenaar van Chaos Geordend.

    Bijdrager
    Huub Toussaint

    Oeps niet verder gekeken dan mijn neus lang is…
    Ga er verder induiken. Dank je wel
    ik rapporteer terug als ik de verschillende oplossingslijnen verder ontwikkeld heb en een keus ga maken; misschien heeft iemand er nog wat aan.

    Bijdrager
    bitsflew

    Een phidget 2:2:2 (2x 10 bit A/D max. 1k samples/s) is ook een mogelijke optie, en wordt ( gedeeltelijk) ondersteund door Matlab.

    O.a hier te koop.

    Ik heb voor diverse projecten Phidgets gebruikt, prima spul met uitmuntende OSX ondersteuning.

    Bijdrager
    Huub Toussaint

    dank je wel bitsflew
    er is zelfs een phidget waar ik direct mijn sensor op aan kan sluiten met een brugversterker ingebouwd waarna de A-D conversie plaats vindt:
    http://www.phidgets.com/docs/1046_User_Guide
    de phidget site ziet er wat betreft support voor Mac OS X goed uit.
    te koop in NL voor een goede prijs (€ 80,-)
    http://www.eztronics.nl/webshop2/catalog/Phidgets/PhidgetsInterfaceKits

    als ik maar gewoon druk kan digitaliseren met een sample frequentie van 100 Hz en kan saven ben ik helemaal tevreden en dat lijkt met deze hardware/software combo voor een lage prijs te kunnen

    ga nog even puzzelen, maar dit is voor mij kandidaat oplossing #1 (en enigszins frustrerend dat ik dat na 2 dagen zoeken op internet nog niet ontdekt had…)

    Bijdrager
    TheBigZ

    Misschien nog een alternatief: http://www.nanorivertech.com/usb-adapters.html

    Er is ook software voor OS X beschikbaar: http://www.nanorivertech.com/miniboard-software.html

    Software and documentation for the MiniBoard is available from the following link. Software applications can be tried prior to purchase of the MiniBoard to show what kinds of applications can be rapidly developed.

    http://www.nanorivertech.com/files/mac/MiniBoardMacOSInstallation_ver_Apr09.pdf

    Bijdrager
    Huub Toussaint

    dank voor deze update: het maakt het beeld meer compleet
    Beetje gedoken in de docs van nanorivertech: laatste update lijkt van rond april 2009 dus ik vraag mij af of er nog goed aan dit product getrokken wordt.

    Om het beeld nog meer compleet te maken hier nog een website met hardware en software voor de Mac als het gaat om meten van signalen:

    http://www.rau-deaver.org/Mac-Instruments.html

    Bijdrager
    Huub Toussaint

    Vandaag Phidget Bridge ontvangen. drivers geïnstalleerd (MBP2013 MacOSX Mavericks) en dan is de Phidget zichtbaar via de control panel. Prachtig.
    Matlab Phidget-voorbeeld down-geload en vervolgens de phidget21matlab_unix.h gekopieerd naar het matlab path.
    het programma loadphidget21.m gestart dat phidgets 21 library moet installeren zodat MatLab (2010a 64 bit) met de phidget iets kan doen

    hier gaat het nog even mis:
    ??? Error using ==> loadlibrary at 428
    Building phidget21_thunk_maci64 failed. Compiler output is:
    /sw/bin/init.csh: No such file or directory.
    phidget21_thunk_maci64.c:291:59: error: expected ‘;’ after top level declarator
    EXPORT_EXTERN_C int32 int32CPhidgetLog_levelcstringcstring…Thunk(void fcn(),const char *ca…
    ^
    ;1 error generated.
    Error in ==> loadphidget21 at 16
    [notfound,warnings]=loadlibrary(‘/Library/frameworks/Phidget21.framework/Versions/Current/Phidget21’,
    ‘phidget21matlab_unix.h’, ‘alias’, ‘phidget21’);
    iemand een idee wat ik hier anders moet doen?
    dank dank alvast

    Bijdrager
    bitsflew

    Controleer of .cshrc or .tcshrc (in je thuismap, let op die bestanden zijn niet zichtbaar in de finder) de volgende regel bevat:

    source /sw/bin/init.csh

    Indien ja, die regel verwijderen, saven en nogmaals proberen.

    Bijdrager
    Huub Toussaint

    uit de .cshrc file de eerste regel source /sw/bin/init.csh verwijderd
    computer opnieuw opgestart
    in matlab:
    >> loadlibrary phidget21 phidget21Matlab_unix.h;
    Warning: Warnings messages were produced while parsing. Check the functions you
    intend to use for correctness. Warning text can be viewed using:
    [notfound,warnings]=loadlibrary(…)
    > In loadlibrary at 399
    Error loading library intermediate output follows.
    The actual error is at the end of this output.
    *********

    Failed to parse type ‘…’ original input ‘ …’
    Found on line 617 of input from line 802 of file /Users/xxxxx/Documents/MATLAB/phidget21Matlab_unix.h
    Error parsing argument for function CPhidget_log function may be invalid.

    Type ‘GPSTimePtr’ was not found. Defaulting to type voidPtr.

    Found on line 1376 of input from line 1649 of file /Users/xxxxx/Documents/MATLAB/phidget21Matlab_unix.h

    Type ‘GPSDatePtr’ was not found. Defaulting to type voidPtr.

    Found on line 1382 of input from line 1655 of file /Users/xxxxx/Documents/MATLAB/phidget21Matlab_unix.h

    Type ‘NMEADataPtr’ was not found. Defaulting to type voidPtr.

    Found on line 1390 of input from line 1673 of file /Users/xxxxx/Documents/MATLAB/phidget21Matlab_unix.h
    *********
    ??? Error using ==> loadlibrary at 428
    Building phidget21_thunk_maci64 failed. Compiler output is:
    phidget21_thunk_maci64.c:291:59: error: expected ‘;’ after top level declarator
    EXPORT_EXTERN_C int32 int32CPhidgetLog_levelcstringcstring…Thunk(void fcn(),const char *ca…
    ^
    ;
    1 error generated.

    32 bit vs 64 bit?
    ??
    of is het zo dat de gcc specifiek 4.2 moet zijn? ik heb gcc geïnstalleerd met Xcode 5.0.2 en daarmee gcc geïnstalleerd die nu een versie verder is?

    Bijdrager
    Huub Toussaint

    OK, het MatLab pad is even niet begaanbaar dus nu even in applescript de zaak aan de praat gekregen gebruikmakend van de (ik moet zeggen bare bones) voorbeelden van phidgets en wat googlewerk en dat leidt tot het volgende script dat in ieder geval een csv maakt.
    is nog verre van af maar wel goed genoeg als proof of concept

    tell application “PhidgetsOSA”

    get library version
    set thisScript to path to me
    set filePath to (path to desktop as text) & “theString.csv”
    set listOfSamples to {}
    set AppleScript’s text item delimiters to “,”

    if first phidget bridge exists then
    set phid to the first phidget bridge
    else
    set phid to make the phidget bridge

    tell phid to make new attach handler with properties {script file:thisScript}
    tell phid to make new detach handler with properties {script file:thisScript}
    tell phid to make new bridge data handler with properties {script file:thisScript}

    open phid wait 1000 –allows application 1 second to attach to the Phidget
    end if

    if phid is attached then

    tell phid

    set bName to name
    log bName & ” is attached”

    set bSerialNumber to serial number
    log “Serial Number: ” & bSerialNumber

    set bVersion to version
    log “Version: ” & bVersion

    set bInputCount to (bridge input count)
    log ” # Bridges: ” & bInputCount

    set bridgeValueMin to bridge input 1’s minimum value
    log “Minimum bridge value: ” & bridgeValueMin

    set bridgeValueMax to bridge input 1’s maximum value
    log “Maximum bridge value: ” & bridgeValueMax

    set phid’s data rate to 8
    delay 1 –allow extra time for data rate to be set
    set bDataRate to phid’s data rate
    log “Bridge Data Rate: ” & bDataRate

    set every bridge input’s enabled to true
    set every bridge input’s gain to x64

    log “Outputting bridge values 1000 times at 8 ms intervals (125 Hz)”
    repeat with i from 1 to 5
    log “”
    repeat with bridgeIndex from 1 to 1
    set bridgeValue to (bridge input bridgeIndex’s value)

    if bridgeValue is not missing value then
    log “Bridge ” & bridgeIndex & “’s value is ” & bridgeValue
    else
    log “Bridge ” & bridgeIndex & “’s value is missing value”
    end if
    set bridgeValue to bridgeValue as string
    set end of listOfSamples to ” ” & (bridgeValue)
    end repeat

    delay 1
    end repeat
    log “the array is ” & listOfSamples
    log “Freeing lock on Phidget and exiting PhidgetsOSA”
    delete attach handlers of phid
    delete detach handlers of phid
    delete bridge data handlers of phid

    close phid
    delete phid
    quit

    end tell
    else
    log “Couldn’t attach to PhidgetBridge”
    display dialog “Couldn’t attach to PhidgetBridge”
    end if

    end tell

    using terms from application “PhidgetsOSA”

    on attach phid
    say “attach ” & (name of phid)
    end attach

    on detach phid
    say “detach ” & (name of phid)

    –uncomment the following code to free the Phidget object upon it’s detach event
    –delete attach handlers of phid
    –delete detach handlers of phid
    –delete bridge data handlers of phid

    –close phid
    –delete phid
    –quit
    end detach

    –runs whenever the bridge value changes at every specified data rate
    on bridge data ind to val on phid
    –log “Bridge ” & ind & “’s value is ” & val
    –insert code
    end bridge data

    end using terms from
    set filePath to (path to desktop as text) & “theString.csv”
    set theString to {listOfSamples} as text
    set apendData to false

    set theResult to writeTo(filePath, theString, text, false)
    if not theResult then display dialog “There was an error writing the data!”

    on writeTo(targetFile, theData, dataType, apendData)
    — targetFile is the path to the file you want to write
    — theData is the data you want in the file.
    — dataType is the data type of theData and it can be text, list, record etc.
    — apendData is true to append theData to the end of the current contents of the file or false to overwrite it
    try
    set targetFile to targetFile as text
    set openFile to open for access file targetFile with write permission
    if apendData is false then set eof of openFile to 0
    write theData to openFile starting at eof as dataType
    close access openFile
    return true
    on error
    try
    close access file targetFile
    end try
    return false
    end try
    end writeTo

    Bijdrager
    TheBigZ

    Nu zijn we natuurlijk nog wel benieuwd welke berg je gaat beklimmen, Huub!:D

    Bijdrager
    Huub Toussaint

    eigenlijk heb ik meerdere berrgen waar ik uiit kan kiezen en ik weet het dus nog niet:
    de phidget doet het half wel half niet: ik hoop dat de Matlab route toch geopend wordt want dan is het qua software-schrijverij een Appeltje-Eitje, wellicht zie ik morgen het licht met mijn eerste AppleScript en gaat dat zo maar lukken.
    inmiddels is er ook een raspberry pi binnen en daar kan ik eventueel ook iets mee met de ADS1115 16-Bit ADC – 4 Channel with Programmable Gain Amplifier die onderweg is
    en er is nog een 1 x USB-201 – 8-channel analog input device (MCC-USB-201) onderweg die rechtstreeks op de mac kan worden aangesloten

    Samengevat: als je simpel en met weinig gedoe met de mac aan data-acquisitie wil doen ben je snel +5000 euro kwijt (LabView + National Instruments of ADInstruments met PowerLab oplossingen)
    Daarnaast zijn er (na heeeel goed zoeken) veel goedkopere (rond de 100 euro) oplossingen die echter ook veel uitdagingen met zich meebrengen, bijvoorbeeld om de software zelf te schrijven, of omdat je de signal conditioning/bridge amplifier zelf in elkaar moet zetten.
    Maar misschien valt het met de boards die onderweg zijn mee, dus wordt vervolgd…..
    (programmeren vind ik best leuk, maar mijn hart ligt bij het meten en interpreteren/analyseren van de data …)

    Bijdrager
    Huub Toussaint

    een update na een week of 2 af en aan knutselen aan de data-acquisitie:

    de snelste (en goedkoopste) manier om data-acquisitie van een analoog signaal te doen is:
    koop een Measurement Computing USB-201 board, koop parallels desktop, installeer dat met een windows variant en gebruik DAQplot
    (tip koop het board bij http://www.acquidirect.fr/; 25% goedkoper dan in NL) voor 110 euro in huis!
    na een half uur had ik al deze file in numbers
    Header Size: 8
    Version: 2
    Sampling Interval: 0.01
    Sampling Rate: 100
    Sample Count: 6000
    Device Serial Number: 0
    Culture Info: en-US
    Sample Number Date/Time CHANNEL0 CHANNEL1 CHANNEL2 CHANNEL3 Events
    1 01/12/2014 01:22:14.743 PM 1.4139 1.746 1.7509 1.746 DAQ Start
    2 01/12/2014 01:22:14.753 PM 1.4188 1.746 1.7509 1.746
    3 01/12/2014 01:22:14.763 PM 1.4188 1.746 1.7509 1.746
    4 01/12/2014 01:22:14.773 PM 1.4139 1.746 1.7509 1.746
    dus helemaal goed

    de phidget oplossing bleef hangen op de matlab lib. Dat bleek een foute instelling naar de C-compiler te zijn.
    Ik dacht toen aan de slag te kunnen maar dan mag je van scratch een interface in matlab maken met als voorbeeld de C-routines. Daar zonk de moed mij toch even in de schoenen… (misschien komt het er toch nog van)

    de raspberry pi en de ADS1115 heb ik wél aan de praat gekregen met een python script. Adafruit (http://learn.adafruit.com) heeft prima tutorials (in tegenstelling tot phidget) en sample code waarmee het verder ontwikkelen van software om de data binnen te halen prima lukt.

    Nog een tidbit: voor meten van analoge signalen is het ook mogelijk om bij texas instruments een sensor te kiezen en dan ontwerpt de webapp “Webench” een board afgestemd op de sensor waarmee data-acquisitie kan worden gedaan. Je kan dan board en componenten bestellen en dan zelf solderen. Dat zijn wel SMD componenten dus voor de echt gevorderde knutselaars onder ons. Bijbehorende software is windows only

    dus de conclusie is dat simpele en goedkope oplossingen wel beschikbaar zijn voor windows maar niet voor de mac
    ik word graag gecorrigeerd als ik dat toch verkeerd zie…..

    Bijdrager
    bitsflew

    een update na een week of 2 af en aan knutselen aan de data-acquisitie:

    de snelste (en goedkoopste) manier om data-acquisitie van een analoog signaal te doen is:
    koop een Measurement Computing USB-201 board, koop parallels desktop, installeer dat met een windows variant en gebruik DAQplot
    (tip koop het board bij http://www.acquidirect.fr/; 25% goedkoper dan in NL) voor 110 euro in huis!
    na een half uur had ik al deze file in numbers
    Header Size: 8
    Version: 2
    Sampling Interval: 0.01
    Sampling Rate: 100
    Sample Count: 6000
    Device Serial Number: 0
    Culture Info: en-US
    Sample Number Date/Time CHANNEL0 CHANNEL1 CHANNEL2 CHANNEL3 Events
    1 01/12/2014 01:22:14.743 PM 1.4139 1.746 1.7509 1.746 DAQ Start
    2 01/12/2014 01:22:14.753 PM 1.4188 1.746 1.7509 1.746
    3 01/12/2014 01:22:14.763 PM 1.4188 1.746 1.7509 1.746
    4 01/12/2014 01:22:14.773 PM 1.4139 1.746 1.7509 1.746
    dus helemaal goed

    de phidget oplossing bleef hangen op de matlab lib. Dat bleek een foute instelling naar de C-compiler te zijn.
    Ik dacht toen aan de slag te kunnen maar dan mag je van scratch een interface in matlab maken met als voorbeeld de C-routines. Daar zonk de moed mij toch even in de schoenen… (misschien komt het er toch nog van)

    de raspberry pi en de ADS1115 heb ik wél aan de praat gekregen met een python script. Adafruit (http://learn.adafruit.com) heeft prima tutorials (in tegenstelling tot phidget) en sample code waarmee het verder ontwikkelen van software om de data binnen te halen prima lukt.

    De Phidgets zijn meer gericht op C/C++ en C# ontwikkeling.

    Nog een tidbit: voor meten van analoge signalen is het ook mogelijk om bij texas instruments een sensor te kiezen en dan ontwerpt de webapp “Webench” een board afgestemd op de sensor waarmee data-acquisitie kan worden gedaan. Je kan dan board en componenten bestellen en dan zelf solderen. Dat zijn wel SMD componenten dus voor de echt gevorderde knutselaars onder ons. Bijbehorende software is windows only

    Die boards worden aangestuurd middels SPI, voor de (National Semiconductor niet TI!) SPI-USB dongle die ze refereren is zover ik weet een OSX driver, echter met een Arduino UNO boardje en een paar regels code kun je die boards gewoon via de Mac uitlezen, de enige vereiste is dat je software omgeving een seriele poort kan benaderen.

    Prik er een Ethernet of Wifi shield op en je hebt een netwerk gekoppelde sensor:)

    dus de conclusie is dat simpele en goedkope oplossingen wel beschikbaar zijn voor windows maar niet voor de mac
    ik word graag gecorrigeerd als ik dat toch verkeerd zie…..

    Het is jammer de Phidget oplossing in jouw geval niet werkt, maar dat ligt dus niet aan de hardware! Het echte probleem is dat je niet de juiste ervaring met software ontwikkeling hebt.

    Ik ben het wel met je eens dat er voor de PC meer kant&klare oplossingen zijn!

    Bijdrager
    Huub Toussaint

    @bitsflew
    mijn punt is dat er een groot verschil in didactische benadering zit tussen adafruit en phidgets. Tot een week geleden had ik geen regel Python gescript en nu heb ik een werkend programma samengesteld uit de omgeving die door Adafruit wordt geboden en ook nog op een voor mij nieuw hardware platform (raspberry pi). Daarentegen stelt Phidgets dat ze support leveren voor Matlab en met mijn programmeer-ervaring in Matlab van zo’n jaar of wat zonk mij de moed in de schoenen toen ik ging kijken wat het aan te pakken probleem is. (de website suggereerde dat de matlab libraries start gereed klaar waren: helaas pindakaas). Dus om dat wel voor elkaar te krijgen in Matlab moet je eerst je in C gaan verdiepen. Pffff

    de WEBENCH Sensor Designer, Differential Sensor PCB, Diff-Input ADC (SP1202S01RB) is een product gevonden op de website van Texas Instruments (eigenaar van?)

    ik hoor graag hoe je die ‘paar regeltjes code’ meegeeft aan een Arduino UNO boardje om het aan de praat te krijgen… dank alvast

    en ja de startvraag van deze thread is natuurlijk het meten van drukverschil. Een beetje programmeren is soms nodig, ok! (maar het gaat om het meten en niet om software ontwikkeling want dat is een andere tak van sport)
    ik hoop dat andere macgebruikers toch wat hebben aan de zoektocht die hierboven staat beschreven

    Bijdrager
    iep

    Als je dan toch een Raspberry Pi gebruikt: daar zit ook Mathematica bij tegenwoordig die je ook voor dit soort dingen kunt inzetten. Er kleeft wel een nadeel aan: de licentie staat geen commercieel gebruik toe (niet zo raar want die Raspberry Pi is vooral bedoeld voor educatie en daarin gaan ze bij Wolfram Alpha mee).

25 berichten aan het bekijken - 1 tot 25 (van in totaal 25)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.