projets:telecommande_apn:accueil
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
telecommande_apn:accueil [2013/04/24 23:49] – début d'écriture... vlamoine | projets:telecommande_apn:accueil [2024/04/26 14:48] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 42: | Ligne 42: | ||
J'ai ouvert la télécommande : | J'ai ouvert la télécommande : | ||
- | {{ : | + | {{ projets: |
- | {{ : | + | {{ projets: |
J'ai enlevé le petit jack pour faire de la place pour les fils : | J'ai enlevé le petit jack pour faire de la place pour les fils : | ||
- | {{ : | + | {{ projets: |
On soude 3 fils sur l’interrupteur : c'est un interrupteur deux positions, à mis-course c'est le //focus//, en fin de course c'est le //shoot//. | On soude 3 fils sur l’interrupteur : c'est un interrupteur deux positions, à mis-course c'est le //focus//, en fin de course c'est le //shoot//. | ||
- | {{ : | + | {{ projets: |
On referme la boite (les couleurs des fils ne correspondent pas avec la photo précédente car j'ai changé entre temps). J'ai utilisé un connecteur arraché d'un vieux PC : c'est pour ça que c'est marqué POWER LED dessus. | On referme la boite (les couleurs des fils ne correspondent pas avec la photo précédente car j'ai changé entre temps). J'ai utilisé un connecteur arraché d'un vieux PC : c'est pour ça que c'est marqué POWER LED dessus. | ||
- | {{ : | + | {{ projets: |
C'est fini pour la télécommande; | C'est fini pour la télécommande; | ||
Ligne 68: | Ligne 68: | ||
Réaliser le montage suivant : | Réaliser le montage suivant : | ||
- | {{ : | + | {{ projets: |
Ce qui donne : | Ce qui donne : | ||
- | {{ : | + | {{ projets: |
- | {{ : | + | {{ projets: |
+ | On utilise les pins 2 et 3 pour commander les optocoupleurs. | ||
+ | |||
+ | === Programmation de l' | ||
+ | |||
+ | Nous allons maintenant programmer l' | ||
+ | |||
+ | |||
+ | |||
+ | int time=100; // 100 millisecondes | ||
+ | int incomingByte = 0; | ||
+ | const int opto_focus = 2; // Optocoupleur | ||
+ | const int opto_shoot = 3; // Optocoupleur | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(9600); | ||
+ | pinMode(opto_focus, | ||
+ | pinMode(opto_shoot, | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | if (Serial.available() > 0) // Si on reçois des données alors... | ||
+ | { | ||
+ | incomingByte = Serial.read(); | ||
+ | | ||
+ | switch (incomingByte) // Suivant ce que le message contient | ||
+ | { | ||
+ | case ' | ||
+ | digitalWrite(opto_focus, | ||
+ | delay(300); | ||
+ | digitalWrite(opto_focus, | ||
+ | break; | ||
+ | | ||
+ | case ' | ||
+ | digitalWrite(opto_shoot, | ||
+ | delay(time); | ||
+ | digitalWrite(opto_shoot, | ||
+ | delay(1); | ||
+ | break; | ||
+ | | ||
+ | default: | ||
+ | time = incomingByte*100; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | Compiler le programme et transférez le sur l' | ||
+ | |||
+ | Envoyez le message ' | ||
+ | |||
+ | ==== Programme Qt ==== | ||
+ | On va dans cette partition créer un programme Qt pour prendre faire la mise au point, prendre des photos et régler le temps de rafale. | ||
+ | |||
+ | Installer Qt et Qt creator : | ||
+ | sudo apt-get install -y qtcreator | ||
+ | |||
+ | Télécharger et installer QextSerialPort (lire le README c'est pas compliqué !) | ||
+ | [[http:// | ||
+ | |||
+ | Démarrer un projet Qt Creator (Application : Qt Gui Application) | ||
+ | |||
+ | usb_fz.pro | ||
+ | QT += core gui | ||
+ | |||
+ | greaterThan(QT_MAJOR_VERSION, | ||
+ | |||
+ | TARGET = USB_fz | ||
+ | TEMPLATE = app | ||
+ | |||
+ | CONFIG += extserialport | ||
+ | |||
+ | SOURCES += main.cpp\ | ||
+ | usb_fz.cpp | ||
+ | |||
+ | HEADERS | ||
+ | |||
+ | FORMS | ||
+ | |||
+ | usb_fz.h | ||
+ | #ifndef USB_fz_H | ||
+ | #define USB_fz_H | ||
+ | |||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | namespace Ui { | ||
+ | class USB_fz; | ||
+ | } | ||
+ | |||
+ | class USB_fz : public QMainWindow | ||
+ | { | ||
+ | Q_OBJECT | ||
+ | |||
+ | public: | ||
+ | explicit USB_fz(QWidget *parent = 0); | ||
+ | void init_port(); | ||
+ | ~USB_fz(); | ||
+ | |||
+ | public slots: | ||
+ | void transmitFocus(void); | ||
+ | void transmitShoot(void); | ||
+ | void transmitCmd(int cmd); | ||
+ | |||
+ | private: | ||
+ | Ui::USB_fz *ui; | ||
+ | QextSerialPort *port; | ||
+ | }; | ||
+ | |||
+ | #endif // USB_fz_H | ||
+ | |||
+ | usb_fz.cpp | ||
+ | #include " | ||
+ | #include " | ||
+ | |||
+ | USB_fz:: | ||
+ | QMainWindow(parent), | ||
+ | ui(new Ui::USB_fz) | ||
+ | { | ||
+ | init_port(); | ||
+ | ui-> | ||
+ | connect(ui-> | ||
+ | connect(ui-> | ||
+ | connect(ui-> | ||
+ | transmitCmd(1); | ||
+ | } | ||
+ | |||
+ | USB_fz:: | ||
+ | { | ||
+ | delete ui; | ||
+ | } | ||
+ | |||
+ | void USB_fz:: | ||
+ | { | ||
+ | QString dev_port = "/ | ||
+ | port = new QextSerialPort(dev_port); | ||
+ | // "ls /dev | grep USB" Permet de donner la liste des périphériques USB | ||
+ | |||
+ | | ||
+ | if(!port-> | ||
+ | { | ||
+ | QMessageBox:: | ||
+ | } | ||
+ | |||
+ | // On parametre la liaison : | ||
+ | port-> | ||
+ | port-> | ||
+ | port-> | ||
+ | port-> | ||
+ | port-> | ||
+ | } | ||
+ | |||
+ | void USB_fz:: | ||
+ | { | ||
+ | QByteArray byte; // Byte a envoyer | ||
+ | byte.clear(); | ||
+ | byte.append(' | ||
+ | |||
+ | if(port != NULL){ // On vérifie que le port existe toujours | ||
+ | port-> | ||
+ | qDebug() << "Value sent: f"; | ||
+ | port-> | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void USB_fz:: | ||
+ | { | ||
+ | QByteArray byte; | ||
+ | |||
+ | byte.clear(); | ||
+ | byte.append(' | ||
+ | |||
+ | if(port != NULL){ | ||
+ | port-> | ||
+ | qDebug() << "Value sent: s"; | ||
+ | port-> | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void USB_fz:: | ||
+ | { | ||
+ | ui-> | ||
+ | QByteArray byte; | ||
+ | |||
+ | byte.clear(); | ||
+ | byte.append(cmd); | ||
+ | |||
+ | if(port != NULL){ | ||
+ | port-> | ||
+ | qDebug() << "Value sent:" << cmd; | ||
+ | port-> | ||
+ | } | ||
+ | } | ||
+ | |||
+ | usb_fz.ui | ||
+ | <?xml version=" | ||
+ | <ui version=" | ||
+ | < | ||
+ | <widget class=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | <widget class=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | Compiler le programme en cliquant sur la flèche verte en bas à gauche. Le programme se lance, si l' | ||
+ | |||
+ | {{ projets: |
projets/telecommande_apn/accueil.txt · Dernière modification : 2024/04/26 14:48 de 127.0.0.1