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

Dieses winzige Programm macht zwei Dinge: Es 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 Port zu drucken.
Die Rennbahn
Der Sensor für dieses Projekt ist ein CdS-Fotowiderstand .Hier ist ein Bild der Steckbrettschaltung.

Der Fotowiderstand (rund mit gewellter Linie, hinten in der Mitte) und der daneben liegende 43K-Ohm-Widerstand (Gelb-Orange-Orange-Gold) bilden einen Spannungsteiler zwischen dem schwarzen Kabel (Masse) und dem roten Kabel (5 Volt) der Stromversorgung .Der weiße Draht am Mittelabgriff des Teilers geht an 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 Kabels liegt nahe an Masse (0 Volt).Bei hellem Licht ist der Widerstand des Fotowiderstands sehr niedrig und die Spannung am weißen Kabel liegt bei etwa 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 überwacht dieselbe serielle USB-Verbindung.Das ist ein cooles blaues USB-Kabel, das je nach Hersteller möglicherweise mit dem Arduino geliefert wird.

Die JSL
Erstellen Sie eine Datentabelle mit zwei Spalten. Die Zeitspalte wird mit der Anzahl der Sekunden seit Beginn der Aufnahme gefüllt.Die Sense-Spalte wird mit den Daten vom Arduino gefü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
);
Denken Sie an die Startzeit
start = Tick Seconds();
Öffnen Sie den Datafeed von JMP, richten Sie die Parameter ein und stellen Sie ein Skript bereit, 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 Kontrolldiagramm (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 Kontrollkarte aktualisiert wird, sobald die Daten eintreffen. Die Datenwerte ändern sich abhängig vom Licht, das den Sensor erreicht.Außerdem werden Sie sehen, wie die Achse gescrollt wird, um mehr Daten anzuzeigen, und Sie bemerken eine Verzögerung in der Reaktionszeit, während JMP mit den Daten aufholt.Es gibt kein Händeschütteln; Es ist durchaus möglich, dass Daten verloren gehen.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 der 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 Entfernungen zu messen. Ich verwende einen Ultraschall-Ping-Sensor, der an einen Arduino Uno angeschlossen ist. Funktioniert hervorragend, außer dass ein Computer mit JMP erforderlich ist. Bei anderen Projekten schreibe ich die Daten in eine Datei auf einer SD-Karte, 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 Raspberry Pi auszuführen und das Arduino mit dem Raspberry Pi zu verbinden. Mit einem Raspberry Pi könnte man eine direkte Verbindung zum GPIO des Pi herstellen und bräuchte kein Arduino benötigen.