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 a plein de choses 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 image 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 pour ce projet est un Photorésistance CdS .Voici une photo du circuit de la planche à pain.

la photo-résistance (ronde avec une ligne ondulée, centre arrière) et la résistance de 43K ohms (jaune-orange-orange-or) à côté forment un diviseur de tension entre le fil noir (masse) et le fil rouge (5 volts) 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 photo-résistance est sombre, sa résistance est très élevée (par rapport à la résistance de 43K ohms, et la tension du fil blanc sera proche de la masse (0 volt).Lorsqu'elle est fortement éclairée, la résistance de la photo-ré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.Ce pourrait être com3 ou com4 ou peut-être un autre choix.JMP écoutera sur cette même connexion série USB.C'est un câble USB bleu cool qui pourrait être fourni avec l'Arduino, selon le fournisseur.

La JSL
Créez un tableau de données à deux colonnes ; la colonne de temps sera remplie avec le nombre de secondes depuis le début de la capture.La colonne de sens 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
);
rappelez-vous 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 ce à quoi 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 plus 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 (ci-dessus) est conçue pour donner à JMP le temps de traiter les données et de mettre à jour l'affichage.
Arduino - YouTube

Merci Craig. 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 faciliter une connexion à distance par rapport à un Arduino.
Je fais quelque chose de très similaire pour mesurer la distance. J'utilise un capteur de 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 agréable de voir les données en temps réel.
Ce serait utile s'il y avait 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 vous n'aurez pas besoin de l'arduino.