Bonjour!
Je viens d'acquérir une caméra thermique "Flir duo" avec 2 entrées pwm. Je souhaiterais pouvoir commander la caméra à distance. Ma question si quelqu'un a une idée.
Sur mon Leonardo, j'y câble un simple bouton sur la pin 2 qui me permet d'envoyer un signal en sortie pin pwm 10 vers la caméra? est-ce la bonne démarche?
Merci!
// commande pwm caméra thermique Flir duo
const int but = 2;
int buttonState = 0;
const int pwmPin = 10;
void setup() {
Serial.begin(9600);
pinMode(pwmPin, OUTPUT);
pinMode(but, INPUT);
}
void loop() {
buttonState = digitalRead(but);
if (buttonState == HIGH )
{
analogWrite(pwmPin, 255); //
Serial.println("ok");
}
else {
analogWrite(pwmPin, 0); //
Serial.println("no");
}
}
Vu le prix du 'bestiau' il faut peut être, encore plus que d'habitude 'RTFM'
= prendre le temps de bien étudier la partie commande PWM dans le Manuel de l'Utilisateur..... En français sur ce lien.
Il est question au chapitre 6 de compatibilité avec les signaux PWM utlilisés pour piloter les servos (tensions, timing...). Une commande AnalogWrite dans ce cas ne convient pas.
J'avais pris garde de lire la doc avant, le chapitre concernant la config pwm sur le manuel est vraiment hyper succincte... si cette caméra à 2 entrées dédiées c'est qu'il est possible de lui envoyer un signal, je vais me pencher un peu plus sur le pwm encore un peu obscure pour moi. Merci
Dans la PWM "générique" on peut changer la fréquence de récurrence et le rapport cyclique.
Dans la PWM des micros avr qui ne sont que 8bits on ne peut pas choisir n'importe quelle fréquence de récurrence, le choix est limité.
Dans la PWM " à la mode arduino" il n'est pas prévu de modifier la fréquence de récurrence. Pour la modifier il faut mettre la main dans les registres du micro.
La commande de servo-mteurs répond à des normes de PWM bien précises : fréquence de récurrence = 50 Hz, rapport cyclique borné.
Cette fréquence de 50 Hz est impossible à obtenir avec un micro avr.
Dans l'univers "arduino" il a été créé une bibliothèque très futée qui à partir du timer 0 permet de commander des servos en respectant la norme servo.
Cette bibliothèque a un nom très bizarre : elle se nomme "Servo" et elle est jointe à l'IDE
Merci 68tjs pour ce complément d'informations. Je connais la librairie Servo pour l'avoir déjà utilisé. En l'occurence, pour ce qui est de ma problématique communication Arduino-caméra Flir-duo en pwm, je ne suis pas sur que cette Biblio peut m'aider...
Reste à étudier comment configurer la caméra pour assigner certaines fonctions aux 2 entrées
Pages 27 et 28 on a des copies d'écran montrant cette assignation
Merci je vais essayer avec la librairie. C'est surtout au niveau du montage ou je m'embrouille un peu.
J'ai donc 1 entrée pwm sur la caméra. Fil jaune auxiliaire et noir gnd.
je connecte le jaune au pin 10 pwm du Leonardo
le noir au GND
Ensuite mon bouton poussoir (pin 2 et 5V)
mon code
#include <Servo.h>
// commande pwm caméra thermique Flir duo
const int sortieAnalogique = 6;
const int bouton = 2;
int buttonState = 0;
byte PWM_PIN = 10;
int pwm_value;
void setup() {
Serial.begin(9600);
pinMode(PWM_PIN, OUTPUT);
pinMode(bouton, INPUT);
}
void loop() {
buttonState = digitalRead(bouton);
if (buttonState == HIGH )
{
analogWrite(PWM_PIN, LOW);
}
else {
analogWrite(PWM_PIN, HIGH);
}
}
si cette caméra à 2 entrées dédiées c'est qu'il est possible de lui envoyer un signal,
Attention !!
le fil jaune comme le mauve ont plusieurs fonctions !! Envoyer un signal," oui....mais"
Le fil jaune peut aussi correspondre TX, cette broche peut être dédiée à diverses choses;
Avant d'envoyer un signal il faut apparament configurer la camera en mode PWM et configurer le fonctions assignées aux entrées PWM. Voir le paragraphe 6.1.2 "To configure select........."
La doc est peut tre succinte.......encore faut-il exploiter les informations qui y figurent.
Ton code n'envoie pas le bon profil pour les signaux PWM. Comme indiqué la caméra attent des signaux identiques à ceux envoyés à un servo. Fréquence 50hz + état haut des impulsions de durée définies.
Ton code inclus la librairie servo mais ne l'utilise pas. Voir par exemple içi pour la gestion d'un servo. (ta camera se commande comme un servo, voir sa doc)
Merci al1fch pour ces informations, c'était donc bien ça, cela fonctionne parfaitement avec la Bibliothèque Servo (comme quoi elle a plus d'un tour dans son sac)
Mon code:
// commande pwm caméra thermique Flir duo
#include <Servo.h>
const int Pushbutton = 11;
Servo camera;
void setup() {
Serial.begin(9600);
pinMode(Pushbutton, INPUT);
camera.attach(10);
}
void loop() {
int ir = digitalRead(Pushbutton);
if (ir == LOW)
{
Serial.println("IR");
camera.writeMicroseconds(1000);
}
else {
Serial.println("VISIBLE");
camera.writeMicroseconds(2000);
}
}