L'Arduino
Le Arduino est un petit ordinateur.Et peu coûteux .Et un enfant près de chez vous devrait en avoir un pour les prochaines vacances, mais vous devriez d'abord le sortir de la boîte et jouer avec. Il y en a plein en ligne soutien pour le matériel et le système de développement.
Ce projet connectera un Arduino à JMP et effectuera un enregistrement de données en temps réel.Vous aurez besoin du Téléchargement de l'IDE Arduino ; voici une photo de l'IDE contenant le programme.

Ce petit programme fait deux choses : initialiser les communications série à la mise sous tension, puis passer le reste de sa vie à lire un signal analogique et à imprimer la valeur sur le port série.
Le circuit
Le capteur de ce projet est un Photorésistance CdS .Voici une photo du circuit de la planche à pain.

la photo-résistance (ronde avec ligne ondulée, centre arrière) et la résistance de 43 K ohms (jaune-orange-orange-or) à côté forment un diviseur de tension entre le fil noir (terre) et le fil rouge (5 volts) d'alimentation .Le fil blanc sur la prise centrale du diviseur va à A0 sur la carte bleue Arduino UNO.A0 est l’entrée analogique que le programme ci-dessus lit.Lorsque la photorésistance est sombre, sa résistance est très élevée (par rapport à la résistance de 43 K ohms, et la tension du fil blanc sera proche de la masse (0 volt).Lorsqu'elle est bien éclairée, la résistance de la photorésistance est très faible et le fil blanc sera proche de 5 volts.
Vous avez utilisé le câble USB comme port série pour charger le programme dans l'Arduino.Cela pourrait être com3 ou com4 ou peut-être un autre choix.JMP écoutera sur cette même connexion série USB.Il s'agit d'un câble USB bleu sympa qui peut être fourni avec l'Arduino, selon le fournisseur.

Le JSL
Créez un tableau de données avec deux colonnes ; la colonne de temps sera remplie avec le nombre de secondes écoulées depuis le début de la capture.La colonne de détection sera remplie avec les données de l'Arduino.
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
);
souviens-toi de l'heure de début
start = Tick Seconds();
Ouvrez le flux de données de JMP, configurez les paramètres et fournissez un script pour traiter chaque ligne de données de l'Arduino. COM3 n'est probablement pas celui auquel votre Arduino est connecté.
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 );
)
);
Exécutez une carte de contrôle (ou un script de création de graphique) pour voir la collecte de données en action.
dt << Control Chart( Sample Size( 1 ), KSigma( 3 ), Chart Col( :sense, Run Chart() ) );
Action
Dans ce clip de 5 minutes, vous verrez la carte de contrôle se mettre à jour au fur et à mesure que les données arrivent ; les valeurs des données changent en fonction de la lumière qui atteint le capteur.Vous verrez également l'axe défiler pour afficher davantage de données et remarquerez un décalage dans le temps de réponse pendant que JMP rattrape les données.Il n’y a pas de poignée de main ; il est tout à fait possible que des données soient perdues.La pause de 200 ms dans le code Arduino (bien ci-dessus) est conçue pour donner à JMP le temps de traiter les données et de mettre à jour l'affichage.
Arduino-YouTube

Merci Craige. Dans JMP 15, j'obtiens une erreur. "Impossible de définir la valeur de la colonne 'heure' car le numéro de ligne (0) n'est pas valide."Le capteur est opérationnel dans l'IDE Arduino en envoyant des valeurs à Com7.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Qui aurait cru qu’un capteur de lumière pouvait être si amusant ?
Merci.Il existe de nombreuses possibilités de capteurs ; les entrées numériques Arduino peuvent également être utilisées avec des commutateurs physiques.J'aime aussi le PI ; JMP (Windows ou Mac) peut utiliser des sockets avec un PI, ce qui peut rendre une connexion à distance plus facile qu'un Arduino.
Je fais quelque chose de très similaire pour mesurer la distance. J'utilise un capteur ping à ultrasons connecté à un Arduino Uno. Fonctionne très bien sauf qu'il nécessite un ordinateur avec JMP. Pour d'autres projets, j'écris les données dans un fichier sur un bouclier de carte SD, mais c'est bien de voir les données en temps réel.
Ce serait utile s'il existait un moyen d'exécuter JMP sur un Raspberry Pi et de connecter l'arduino au Raspberry Pi. Avec un Raspberry Pi, vous pouvez vous connecter directement au GPIO du Pi et n'auriez pas besoin de l'arduino.