Der Arduino
Der Arduino ist ein kleiner Computer.Und preiswert .Und ein Kind in Ihrer Nähe sollte einen für den nächsten Urlaub haben, aber Sie sollten ihn zuerst aus der Verpackung nehmen und damit spielen. Es gibt viel online Unterstützung für die Hardware und das Entwicklungssystem.
Dieses Projekt verbindet ein Arduino mit JMP und führt eine Datenprotokollierung in Echtzeit durch.Du wirst die brauchen Arduino IDE-Download ; Hier ist ein Bild der IDE, die das Programm enthält.

Dieses winzige Programm macht zwei Dinge: Initialisiert die serielle Kommunikation, wenn der Strom eingeschaltet wird, und verbringt dann den Rest seiner Lebensdauer damit, ein analoges Signal zu lesen und den Wert an den seriellen Anschluss zu drucken.
Die Rennbahn
Der Sensor für dieses Projekt ist a CdS-Fotowiderstand .Hier ist ein Bild der Steckbrettschaltung.

Der Fotowiderstand (rund mit Wellenlinie, Mitte hinten) und der 43K Ohm-Widerstand (gelb-orange-orange-gold) daneben bilden einen Spannungsteiler zwischen dem schwarzen Draht (Masse) und dem roten Draht (5 Volt) der Stromversorgung .Der weiße Draht am Mittelhahn des Teilers geht zu A0 auf der blauen Arduino UNO-Platine.A0 ist der analoge Eingang, den das obige Programm liest.Wenn der Fotowiderstand dunkel ist, ist sein Widerstand sehr hoch (im Vergleich zum 43-kOhm-Widerstand, und die Spannung des weißen Drahts liegt nahe bei Masse (0 Volt).Bei heller Beleuchtung ist der Widerstand des Fotowiderstands sehr niedrig und der weiße Draht liegt nahe bei 5 Volt.
Sie haben das USB-Kabel als serielle Schnittstelle verwendet, um das Programm in den Arduino zu laden.Es könnte com3 oder com4 oder vielleicht eine andere Wahl sein.JMP lauscht auf derselben seriellen USB-Verbindung.Das ist ein cooles blaues USB-Kabel, das je nach Hersteller mit dem Arduino geliefert werden kann.

Die JSL
Erstellen Sie eine Datentabelle mit zwei Spalten; Die Zeitspalte wird mit der Anzahl der Sekunden seit Beginn der Erfassung ausgefüllt.Die Sense-Spalte wird mit den Daten des Arduino ausgefüllt.
dt = New Table( "capture",
Add Rows( 0 ),
New Column( "time", Numeric, Continuous, Format( ":day:hr:m:s", 21, 3 ) ),
New Column( "sense", Numeric( 2 ) ) // the analog sensor is 0..1023
);
merken Sie sich die Startzeit
start = Tick Seconds();
Öffnen Sie den Datafeed von JMP, richten Sie die Parameter ein und geben Sie ein Skript an, um jede Datenzeile vom Arduino zu verarbeiten. COM3 ist wahrscheinlich nicht das, woran Ihr Arduino angeschlossen ist.
feed = Open Datafeed(
Connect( Port( "com3" ), Baud rate( 9600 ), Parity( even ), DataBits( 7 ) ),
Set Script(
x = feed << getLine;
dt << addrows( 1 );
dt:time = Tick Seconds() - start;
dt:sense = Num( x );
)
);
Führen Sie ein Regeldiagramm (oder ein Diagrammerstellungsskript) aus, um die Datenerfassung in Aktion zu sehen.
dt << Control Chart( Sample Size( 1 ), KSigma( 3 ), Chart Col( :sense, Run Chart() ) );
Aktion
In diesem 5-minütigen Clip sehen Sie, wie die Regelkarte aktualisiert wird, sobald die Daten eintreffen. die Datenwerte ändern sich abhängig vom Licht, das den Sensor erreicht.Sie werden auch sehen, dass die Achse gescrollt ist, um mehr Daten anzuzeigen, und eine Verzögerung in der Antwortzeit bemerken, während JMP die Daten einholt.Es gibt kein Händeschütteln; Datenverlust ist durchaus möglich.Die 200-ms-Pause im Arduino-Code (ganz oben) soll JMP Zeit geben, die Daten zu verarbeiten und die Anzeige zu aktualisieren.
Arduino - YouTube

Danke Craige. In JMP 15 erhalte ich eine Fehlermeldung. "Der Wert für die Spalte 'Zeit' kann nicht festgelegt werden, da die Zeilennummer (0) ungültig ist."Der Sensor ist in Arduino IDE betriebsbereit und sendet Werte an Com7.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Wer hätte gedacht, dass ein Lichtsensor so viel Spaß machen kann?
Danke.Es gibt viele Sensormöglichkeiten; Die Arduino-Digitaleingänge können auch mit physischen Schaltern verwendet werden.Ich mag den PI auch; JMP (Windows oder Mac) kann Sockets mit einem PI verwenden, was eine Remote-Verbindung möglicherweise einfacher macht als ein Arduino.
Ich mache etwas sehr ähnliches, um die Entfernung zu messen. Ich verwende einen Ultraschall-Ping-Sensor, der mit einem Arduino Uno verbunden ist. Funktioniert hervorragend, außer dass ein Computer mit JMP erforderlich ist. Für andere Projekte schreibe ich die Daten in eine Datei auf einem SD-Kartenschild, aber es ist schön, die Daten in Echtzeit zu sehen.
Es wäre nützlich, wenn es eine Möglichkeit gäbe, JMP auf einem Himbeer-Pi auszuführen und das Arduino mit dem Himbeer-Pi zu verbinden. Mit einem Himbeer-Pi könnten Sie sich direkt mit dem GPIO des Pi verbinden und würden das Arduino nicht benötigen.