Outils pour utilisateurs

Outils du site


projets:telecommande_apn:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
telecommande_apn:accueil [2013/04/28 13:03] vlamoineprojets:telecommande_apn:accueil [2022/09/04 21:50] (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 :
  
-{{ :telecommande_apn:tele_apn-01.jpg?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-01.jpg?direct&300 |}}
  
-{{ :telecommande_apn:tele_apn-02.jpg?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-02.jpg?direct&300 |}}
  
 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 :
  
-{{ :telecommande_apn:tele_apn-03.jpg?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-03.jpg?direct&300 |}}
  
 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//.
  
-{{ :telecommande_apn:tele_apn-04.jpg?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-04.jpg?direct&300 |}}
  
 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.
  
-{{ :telecommande_apn:tele_apn-05.jpg?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-05.jpg?direct&300 |}}
  
 C'est fini pour la télécommande; il suffit de la brancher à l'appareil photo et de le démarrer. Faire toucher deux fils (essayer toutes les combinaisons) pour prendre une photo ou faire la mise au point. C'est fini pour la télécommande; il suffit de la brancher à l'appareil photo et de le démarrer. Faire toucher deux fils (essayer toutes les combinaisons) pour prendre une photo ou faire la mise au point.
Ligne 68: Ligne 68:
  
 Réaliser le montage suivant : Réaliser le montage suivant :
-{{ :telecommande_apn:tele_apn-breadboard.png?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-breadboard.png?direct&300 |}}
  
 Ce qui donne : Ce qui donne :
-{{ :telecommande_apn:tele_apn-montage.jpg?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-montage.jpg?direct&300 |}}
  
-{{ :telecommande_apn:tele_apn-montage_closeup.jpg?direct&300 |}}+{{ projets:telecommande_apn:tele_apn-montage_closeup.jpg?direct&300 |}}
  
 On utilise les pins 2 et 3 pour commander les optocoupleurs. On utilise les pins 2 et 3 pour commander les optocoupleurs.
Ligne 189: Ligne 189:
  #endif // USB_fz_H  #endif // USB_fz_H
  
 +usb_fz.cpp
 + #include "usb_fz.h"
 + #include "ui_usb_fz.h"
 +
 + USB_fz::USB_fz(QWidget *parent) :
 +     QMainWindow(parent),
 +     ui(new Ui::USB_fz)
 + {
 +     init_port(); // initialisation du port
 +     ui->setupUi(this);
 +     connect(ui->btnFocus, SIGNAL(clicked(bool)), this, SLOT(transmitFocus(void)));
 +     connect(ui->btnShoot, SIGNAL(clicked(bool)), this, SLOT(transmitShoot(void)));
 +     connect(ui->slider, SIGNAL(sliderMoved(int)), this, SLOT(transmitCmd(int)));
 +     transmitCmd(1);
 + }
 +
 + USB_fz::~USB_fz()
 + {
 +     delete ui;
 + }
 +
 + void USB_fz::init_port(void)
 + {
 +     QString dev_port = "/dev/ttyUSB0";
 +     port = new QextSerialPort(dev_port); // On ouvre le port
 +     // "ls /dev | grep USB" Permet de donner la liste des périphériques USB
 +
 +      port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
 +     if(!port->isOpen())
 +     {
 + QMessageBox::warning(this, "Impossible d'ouvrir le port", dev_port);
 +     }
 +
 +     // On parametre la liaison :
 +     port->setBaudRate(BAUD9600);
 +     port->setFlowControl(FLOW_OFF);
 +     port->setParity(PAR_NONE);
 +     port->setDataBits(DATA_8);
 +     port->setStopBits(STOP_1);
 + }
 +
 + void USB_fz::transmitFocus(void)
 + {
 +     QByteArray byte; // Byte a envoyer
 +     byte.clear(); // On efface le contenu de byte
 +     byte.append('f'); // On ajoute 'f' dans byte
 +
 +     if(port != NULL){ // On vérifie que le port existe toujours
 + port->write(byte); // On écrit le(s) byte
 + qDebug() << "Value sent: f";
 + port->flush(); // On attend la fin de la transmission
 +     }
 + }
 +
 + void USB_fz::transmitShoot(void)
 + {
 +     QByteArray byte;
 +
 +     byte.clear();
 +     byte.append('s');
 +
 +     if(port != NULL){
 + port->write(byte);
 + qDebug() << "Value sent: s";
 + port->flush();
 +     }
 + }
 +
 + void USB_fz::transmitCmd(int cmd)
 + {
 +     ui->lcdNumber->display(cmd*100);
 +     QByteArray byte;
 +
 +     byte.clear();
 +     byte.append(cmd);
 +
 +     if(port != NULL){
 + port->write(byte);
 + qDebug() << "Value sent:" << cmd;
 + port->flush();
 +     }
 + }
 +
 +usb_fz.ui
 + <?xml version="1.0" encoding="UTF-8"?>
 + <ui version="4.0">
 + <class>USB_fz</class>
 + <widget class="QMainWindow" name="USB_fz">
 +   <property name="geometry">
 +    <rect>
 +     <x>0</x>
 +     <y>0</y>
 +     <width>254</width>
 +     <height>146</height>
 +    </rect>
 +   </property>
 +   <property name="sizePolicy">
 +    <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
 +     <horstretch>0</horstretch>
 +     <verstretch>0</verstretch>
 +    </sizepolicy>
 +   </property>
 +   <property name="minimumSize">
 +    <size>
 +     <width>254</width>
 +     <height>146</height>
 +    </size>
 +   </property>
 +   <property name="maximumSize">
 +    <size>
 +     <width>254</width>
 +     <height>146</height>
 +    </size>
 +   </property>
 +   <property name="windowTitle">
 +    <string>USB FZ200</string>
 +   </property>
 +   <widget class="QWidget" name="centralWidget">
 +    <widget class="QPushButton" name="btnFocus">
 +     <property name="geometry">
 +      <rect>
 +       <x>10</x>
 +       <y>10</y>
 +       <width>111</width>
 +       <height>51</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +      </font>
 +     </property>
 +     <property name="text">
 +      <string>Focus</string>
 +     </property>
 +    </widget>
 +    <widget class="QPushButton" name="btnShoot">
 +     <property name="geometry">
 +      <rect>
 +       <x>130</x>
 +       <y>10</y>
 +       <width>111</width>
 +       <height>51</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +       <weight>75</weight>
 +       <bold>true</bold>
 +      </font>
 +     </property>
 +     <property name="text">
 +      <string>Shoot</string>
 +     </property>
 +    </widget>
 +    <widget class="QLabel" name="label">
 +     <property name="geometry">
 +      <rect>
 +       <x>10</x>
 +       <y>80</y>
 +       <width>261</width>
 +       <height>17</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +      </font>
 +     </property>
 +     <property name="text">
 +      <string>Durée rafale :                    ms</string>
 +     </property>
 +    </widget>
 +    <widget class="QLCDNumber" name="lcdNumber">
 +     <property name="geometry">
 +      <rect>
 +       <x>130</x>
 +       <y>70</y>
 +       <width>81</width>
 +       <height>31</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +      </font>
 +     </property>
 +     <property name="segmentStyle">
 +      <enum>QLCDNumber::Flat</enum>
 +     </property>
 +     <property name="intValue" stdset="0">
 +      <number>100</number>
 +     </property>
 +    </widget>
 +    <widget class="QSlider" name="slider">
 +     <property name="geometry">
 +      <rect>
 +       <x>40</x>
 +       <y>110</y>
 +       <width>160</width>
 +       <height>29</height>
 +      </rect>
 +     </property>
 +     <property name="minimum">
 +      <number>1</number>
 +     </property>
 +     <property name="maximum">
 +      <number>20</number>
 +     </property>
 +     <property name="orientation">
 +      <enum>Qt::Horizontal</enum>
 +     </property>
 +    </widget>
 +   </widget>
 + </widget>
 + <layoutdefault spacing="6" margin="11"/>
 + <resources/>
 + <connections/>
 + </ui>
 +
 +Compiler le programme en cliquant sur la flèche verte en bas à gauche. Le programme se lance, si l'Arduino est branché tout devrait marcher comme avec le terminal :-)
 +
 +{{ projets:telecommande_apn:usb_fz.png |}}
projets/telecommande_apn/accueil.1367154231.txt.gz · Dernière modification : 2022/09/04 21:49 (modification externe)