PiScope (Raspberry Pi baserat oscilloskop) (9 / 10 steg)

Steg 9: Datainsamling för PiScope



När ADC har anslutits och kärnmodulen har lästs, kan data läsas från ADC genom att ansluta till enhetsfilen associeras med kärnmodulen. För att ansluta till kernel-modulen, behövs ett annat program. Detta program kan skrivas i flera olika programspråk. Den här artikeln valdes C++. Skapa en ny fil som heter readout.cpp och Lägg till följande kod eller ladda upp readout.cpp bifogas nedan.

< code >
#include < iostream >
#include < cmath >
#include < fstream >
#include < bitset >

TypeDef unsigned int uint32_t;

CONST int DataPointsRPi = 10000;
struct DataStructRPi {
uint32_t buffert [DataPointsRPi];
uint32_t tid.
};

int main () {
struct DataStructRPi dataStruct;
unsigned char * ScopeBufferStart;
unsigned char * ScopeBufferStop;
unsigned char * buf_p;

buf_p = (unsigned char *) & dataStruct;
ScopeBufferStart = (unsigned char *) & dataStruct;
ScopeBufferStop = ScopeBufferStart + sizeof (struct DataStructRPi);

std::string linje;
std::ifstream MinFil ("/ dev/chardev");
IF(myfile.is_open()) {
samtidigt (std::getline(myfile,line)) {
för (int jag = 0; jag < line.size(); i ++) {
IF(buf_p>ScopeBufferStop)
std::cerr << "buf_p utanför intervallet!" << std::endl;
* (buf_p) = line [i];
buf_p ++;
}
}
myfile.Close();
}
annat std::cerr << "Kan inte öppna filen" << std::endl;

dubbel tid = dataStruct.time/ (dubbel) DataPointsRPi;

för (int jag = 0; jag < DataPointsRPi; i ++) {
int valueADC1 = 0;
int tmp = dataStruct.Buffer[i] & (0b11111 << (7));
valueADC1 = tmp >> (7);
tmp = dataStruct.Buffer[i] & (0b1 << (25));
valueADC1 += (tmp >> (20));

int valueADC2 = 0;
tmp = dataStruct.Buffer[i] & (0b11 << (17));
valueADC2 = tmp >> 17.
tmp = dataStruct.Buffer[i] & (0b111 << (22));
valueADC2 += (tmp >> 20);
tmp = dataStruct.Buffer[i] & (0b1 << (27));
valueADC2 += (tmp >> 22);

std::Cout << jag * tid << "\t" << valueADC1*(5./63.) << "\t" << valueADC2*(5./63.) << std::endl;
}
Return 0;
}

Detta program omfattar definitionen av data struct som matchar versionen i kärnmodulen. Funktionen Main () ansluter till /dev/chardev enheten, som orsakar kärnmodulen till avläsning i ADC och lagra värdena. Sedan data läses från minnesbufferten och kopieras till den lokala buffert inom funktionen Main (). Slutligen, data omvandlas till en tid i nano sekunder och spänningsvärden. Tiden och två spänningsvärden skrivs sedan ut i kolumner. Spänningsvärden läsa av ADCs kodas som sex bitar. Bitarna är avkodas med hjälp av bitars SKIFT och lite kloka och verksamhet.

För att kompilera programmet data förvärv, skriver du:

g ++ -o avläsning readout.cpp

Sedan köra programmet genom att skriva:

. / avläsning > data.txt

Datafilen kan visas med gnuplot. Installera gnuplot genom att skriva:

sudo lämplig-få installera -y gnuplot-x11 < br >

Skriv sedan gnuplot och ange makro anges nedan:

< code >
Ange nyckeln inne rätten topp
Ange titel "ADC avläsning"
ställa xlabel "Time [ns]"
ställa ylabel "Spänning [V]"
Plot "data. txt"använder 1: 2 titel"ADC1"med linjer, \
"data. txt"använder 1: 3 titel"ADC2"med linjer

Ytterligare information om gnuplot finns på: http://www.gnuplot.info/

Se Steg
Relaterade Ämnen

PiMSO - en Raspberry Pi baserat trådlöst oscilloskop

PiMSO, är en Raspberry Pi kontrollerad 200 Msa/S blandad signal oscilloskop. Beroende på programmet, kan man konfigurerar för användning Midori webbläsaren på Pi GUI eller tillgång distans via internet. Eftersom PiMSO GUI är webbaserade, kan du också...

Digilent ZYBO baserat oscilloskop med LabVIEW

Detta är enkel "oscilloskop" med Zynq - 7000 och NI LabVIEW program. Jag har använt inbyggda 12 - bitars analog till digital omvandlare 1MSPS för att få data från externa generator.För att generera signaler jag har använt DAC produktionen av STM...

Raspberry Pi baserat trådlös FM-mikrofon

En trådlös mikrofon är en mikrofon utan en fysisk kabel ansluts direkt till ljud inspelning eller komplettera utrustning som den hör samman. Kallas även en radiomikrofon, den har en liten, batteridriven radiosändare i mikrofonen förkroppsligar, som s...

3D tryckt PI-Scope Lab verktyg

Publicerad av Element14 det är en mycket intressant Ben Heck episod, modding dessa tre enheter för att skapa ett oscilloskop. Det är min uppfattning att denna föreslagna version har vissa begränsningar, så jag har sökt på hur man kan utveckla en enhe...

Oscilloskop klockan

en åtta stift Microchip PIC mikrokontroller är programmerad att fungera från en 32768 Hz klocka kristall och utdata vågformer som, när de visas i ett oscilloskop, Visa tiden i hh format. Skärmen ta till fånga visar winscope visar 12:46:...Steg 1: Des...

Raspberry Pi sällskapsdjur Monitor

Detta Instructable guidar dig genom installationen av en (oftast) headless Raspberry Pi baserat sällskapsdjur bildskärm. Denna sällskapsdjur monitor varnar dig när ditt husdjur blir högljudd genom att skicka ett meddelande om Pushbullet. Också, om du...

Raspberry Pi färgade Server fall Mod

Syftet med denna mod är att skapa ett ärende för Raspberry Pi, baserat på Adafruits fall skapad av Mike Doell. Det har en bättre luftflöde och vara lätta att identifiera genom färg.För detta projekt behöver du:KylflänsKylfläns föreningMike Doell fall...

Raspberry Pi baserade RFID Music Robot

Ett par veckor sedan, såg jag den här riktigt cool Raspberry Pi baserade RFID-baserade kassettbandspelare. Det sprang PiMusicbox och tillverkare skapade en modul till kontroll PiMusicbox via RFID. Detta skulle vara perfekt för min tre år gamla dotter...

RetroFamipie - Famicom baserat Retropie

Detta är ännu en annan falländring för en raspberry pi baserat RetroPie.I detta skede meddelanden jag endast bilder och hög nivå beskrivningar av stegen.Du välkommen att ställa frågor eller Detaljer om arbetetSteg 1: Rengöring och förbereda fallet 3...

Installera Bluetooth USB-Radio maskinvara i Linux System

IntroduktionDetta instructable är baserat på min erfarenhet du har installerat Bluetooth i en anteckningsbok och Raspberry Pi.Target läsareDetta instructable kommer mestadels fördel Linux förbrukaren, särskilt Debian och dess deriviatives som Raspber...

En billig fotometer och kolorimeter

Version 08-maj-2016Vad är detta instructable om?Syftet med detta projekt var att bygga en enkel och billig enhet som tillåter mätning av färg sammansättningen av en lösning, dvs en kolorimeter och/eller dess optiska densitet, dvs en fotometer.Det är...

Att införa Climaduino - Arduino-baserad termostaten du styr från din telefon!

Uppdatering:Det finns en ny version av Climaduino och Climaduino Controller med några mycket väsentliga ändringar.Stöder flera zonerAnvänder Arduino YúnFungerar med Central luftkonditioneringKommunicerar med MQTT protokoll (kan integrera med andra sy...

OSMC och TV kontrolleras av Flic smarta knappen

Detta projekt utgår från ett specifikt behov, simplfy några upprepade åtgärder.Jag har fått OSMC mediacenter Raspberry Pi baserat som jag använder varje kväll när jag vill titta på en dokumentär på min gamla plasma-TV (utan HDMI) innan sömn.De åtgärd...

HACCSY - Hackerspace åtkomstkontroll och checka in System

HACCSY abreviation står för Hackerspace Access Control och checka in System och det är ganska mycket vad den gör.HACCSY app är tänkt att köra på en RaspberryPi som är ansluten till internet och elektriska strike låsa ytterdörren. Det gör jobbet enkel...

DIY billiga handske controller och propeller bil

Hej duI detta instructable jag ska visa dig hur man gör de billigaste handsken för att styra din robotar eller andra Arduino eller raspberry pi baserat projekt och till demonstration exempel jag ska även hur en liten tutorial hur jag gjorde bilen kon...

Modulära Multiport USB förmåga tillförsel

Detta modulära nätaggregat kan leverera från 9 till 54 USB portar 5VDC makt. Varje modul innehåller 9 portar och totalt upp till 10 ampere.Det började som en tillgång för en Raspberry Pi baserat nätverk utbildning Lab för Hurricane Electric. (Kontakt...

Aquarium LED Light Controller baserat på Raspberry Pi

Att ha ett akvarium är bra för en hobby och för ett yrke.En av de viktigaste komponenterna i ett akvarium är ordentlig belysningssystemet (bland andra).Det finns mycket litteratur på internet om detta tema, från de mycket grundläggande på timer switc...

Hem (rum) Temprature och luftfuktighet Monitor med webb-baserat diagram - Raspberry Pi

Enkelt sätt att övervaka din, hem, rum, garage liten fabrik eller någon annan förlägger temperatur och luftfuktighet från var som helst i världen via internet.Det mycket roligt och mycket enkel.Steg 1: Konceptet Raspberry Pi får den Home(Room) temper...

PWM baserat LED kontroll med hjälp av tryckknappar, Raspberry Pi 2 och Scratch

Jag försökte hitta ett sätt att förklara hur PWM arbetat för mina studenter så jag satte mig i uppgift att försöka kontrollera ljusstyrkan i en LED använder 2 tryckknappar - en knapp öka ljusstyrkan i en LED och den andra ljusreglering det. För att p...