Offline
Newbie
Karma: 0
Posts: 13
|
 |
« on: March 05, 2013, 11:48:17 am » |
Bonjour, Je suis étudiant en science et j'ai fait récemment l'acquisition d'un arduino uno pour mon travail  J'aimerais calculer à partir d'un fichier text l'intensité d'une LED. ce fichier contient des un pourcentage d'intensité lumineuse du temps 0 au temps final. Existe t-il une commande capable d'assigner à une variable les valeurs de ce fichier text ??? Merci beaucoup pour votre aide 
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #1 on: March 05, 2013, 12:32:15 pm » |
Il viendrai de où le fichier texte ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 13
|
 |
« Reply #2 on: March 05, 2013, 12:36:19 pm » |
Salut B@tto, Le fichier text est un fichier que j'ai crée à partir de Matlab par exemple. Il contient un vecteur de % d'intensité : [0 100 40 20 40 50 100 ... ]
il est localisé dans le même dossier que le code arduino dans l'ordinateur
|
|
|
|
« Last Edit: March 05, 2013, 12:38:00 pm by bobijack »
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #3 on: March 05, 2013, 01:23:43 pm » |
Oula oui c'est large comme idée, il va falloir préciser parce que la on peut imaginer plusieurs solutions : texte envoyé par un soft sur pc puis envoyé à l'arduino, lecture par l'arduino d'une carte sd ...
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 13
|
 |
« Reply #4 on: March 06, 2013, 03:11:55 am » |
En gros l'idée est de générer un vecteur d'intensité lumineuse (en pourcentage d'intensité) avec un soft tel que matlab. J'enregistre donc ce vecteur dans un fichier text. Puis mon but est d'importer ce fichier text dans l'arduino et lui faire lire à chaque pas de temps l'intensité lumineuse correspondante afin que ma led s'allume avec telle % d'intensité. exemple : [100 0 50 100] si je prends comme pas de temps toutes les 5 secondes par exemples : 100 % d'intensité pendant 5 secondes puis 0 % d'intensité pendant 5 secondes puis 50 % d'intensité etc. Peut être qu'il existe une solution plus simple sans passer par un fichier text à importer mais j'avoue que mes connaissance en arduino et en C sont vraiment très limités.  Merci beaucoup 
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #5 on: March 06, 2013, 03:29:20 am » |
Si on s'en tiens à un principe simple : http://www.earthshineelectronics.com/files/ASKManualRev5.pdf ==> p58 il y a le programme côté arduino : on envoi une chaine par le port série contenant trois valeurs et l'Arduino allume une LED RGB en conséquence. A toi après côté PC de créer un programme capable de lire ton fichier texte et d'envoyer la chaine à l'Arduino via le port série.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 145
|
 |
« Reply #6 on: March 06, 2013, 11:07:38 am » |
une solution si tu utilise une SD consisterai a ajouter des séparateur genre "; "éventuellement transformer tes valeurs en float ex: 50.0 , 100.0....etc et utilisé la fonction : ma_valeur=file.parseFloat (); qui recherche directement des float dans un fichier text et te décaler dans ton fichier au fur est a mesure avec: file.position()+1 au dépars c'est la solution que j'ai utiliser car vraiment plus simple a faire que d’analyser des suites de chaîne de caractère, la c'est les fonction de la lib SD.h qui le font pour toi ! mais il existe plein d'autre possibilité!
|
|
|
|
« Last Edit: March 06, 2013, 11:13:50 am by Heloderma-kris »
|
Logged
|
|
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 13
|
 |
« Reply #8 on: March 18, 2013, 03:47:44 am » |
Bonjour à tous,
Merci pour vos messages et désolé de mon temps de réponse ... je ne compte pas utiliser de carte SD mais directement passer par l'ordinateur. Skywodd merci pour ta réponse mais dans ton cas il faut que je passe une ligne de texte en provenance d'un port série et j'avoue que je sais pas trop comment le faire ... aurais tu un lien qui explique comment faire ?
Merci à vous
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4328
Arduino Hacker
|
 |
« Reply #9 on: March 19, 2013, 10:54:43 am » |
Skywodd merci pour ta réponse mais dans ton cas il faut que je passe une ligne de texte en provenance d'un port série et j'avoue que je sais pas trop comment le faire ... aurais tu un lien qui explique comment faire ?
Bon attend remet les choses au clair, qu'est-ce que tu veut faire exactement et comment ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 13
|
 |
« Reply #10 on: March 20, 2013, 05:51:15 am » |
Ok Je vais essayé d'être le plus clair possible ... Donc j'ai un fichier texte de pourcentage d'intensité : I = [100 50 20 30 40 90 80 30 ...]
Je veux faire lire ce fichier à l'arduino pour que toutes les 2 mins par exemple il réduise ou augmente l'intensité de 4 leds (les 4 leds se comportent de la même manière) Donc avec l'exemple que j'ai donné les leds s'allumeront à 100% - puis 2 mins plus tard - 50 % - puis 2 mins plus tard 20 % ... etc. J'ai un arduino uno mais je peux éventuellement acheter un shield pour carte SD si le problème se résout plus simplement comme ça  Merci infiniment de ton Aide 
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 145
|
 |
« Reply #11 on: March 20, 2013, 09:34:09 am » |
Moi je suis curieux de voir comment on fait pour lire un fichier text ou csv sur l'ordinateur et balancer tout sa sur le port serie ? pour moi on peut pas sans un soft qui tourne coté PC , c'est peut'etre ça qui te pose probléme non? avec processing sa doit pouvoir ce faire des truc comme ça mais j'ai jamais tester perso!
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #12 on: March 20, 2013, 10:59:02 am » |
Ok Je vais essayé d'être le plus clair possible ... Donc j'ai un fichier texte de pourcentage d'intensité : I = [100 50 20 30 40 90 80 30 ...]
Je veux faire lire ce fichier à l'arduino pour que toutes les 2 mins par exemple il réduise ou augmente l'intensité de 4 leds (les 4 leds se comportent de la même manière) Donc avec l'exemple que j'ai donné les leds s'allumeront à 100% - puis 2 mins plus tard - 50 % - puis 2 mins plus tard 20 % ... etc. J'ai un arduino uno mais je peux éventuellement acheter un shield pour carte SD si le problème se résout plus simplement comme ça  Merci infiniment de ton Aide  Oui donc il faut "streamer" le texte par le port série. Une Arduino ne lit pas directement des textes comme un PC. Par contre par le port série tu peux lui transmettre des données, comme dans le lien que je t'ai donné. Donc il faut un soft sur le PC qui va pouvoir lire le texte et transmettre les données par le port série. Ou deuxième solution : utiliser une carte SD sur laquel tu auras préalablement copier ton fichier texte, et la avec la librairie adéquat on peut lire le fichier texte ou csv avec l'Arduino.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 13
|
 |
« Reply #13 on: March 20, 2013, 11:28:49 am » |
Merci pour ta réponse J'ai essayé ce tuto : http://arduinobasics.blogspot.co.uk/2012/05/reading-from-text-file-and-sending-to.htmlSon exemple marche bien mais malheureusement j'ai du mal à comprendre le fichier processing ... du coup j'ai du mal à modifier le code pour lire mon fichier texte et du coup modifier l'intensité de mes leds. J'aimerai essayé les deux possibilité pour voir quelle solution est la plus simple pour mes expériences. B@tto : j'ai en effet suivis ton exemple mais malheureusement ce qui me pause problème c'est le code pour envoyer les données à l'arduino via le port serie.
|
|
|
|
« Last Edit: March 21, 2013, 03:46:34 am by bobijack »
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4328
Arduino Hacker
|
 |
« Reply #14 on: March 21, 2013, 12:06:49 pm » |
Bonjour, Regarde du côté de Python et de PySerial  C'est un langage de programmation très simple et rapide à mettre en œuvre. Ensuite ce qu'il faut que tu fasses c'est mettre en place un protocole de communication entre ton ordinateur et ton arduino. C'est via ce protocole de communication que ton ordinateur va (au moment qui va bien) envoyer les ordres pour faire ceci ou cela à l'arduino. Regarde dans la partie tutoriel du forum, Barbudor a fait un très bon tuto sur ce sujet 
|
|
|
|
|
Logged
|
|
|
|
|
|