Cours:SaéSBC

De troyesGEII
Révision datée du 9 janvier 2020 à 09:40 par Fredmn (discussion | contributions) (Documents)
Aller à : navigation, rechercher

Lecture de code barre

Pb de verrouillage numérique

Si lors de la lecture d'un code barre les chiffres n'apparaissent pas, il faut :

  • ouvrir le fichier /etc/rc.local dans un éditeur:
    • nano /etc/rc.local
  • ajouter les lignes suivantes avant exit 0
for tty in /dev/tty[1-9]*;
do
setleds -D +num < $tty > /dev/null
done
    • sauvegarder : control+w
    • quitter : control+x
  • redémarrer la carte
    • reboot

Lecture de fichier CSV

Classes à utiliser :

  • QFile
    • méthode readline
  • QString
    • méthode split

Documents

Media:ListeEtudiants2020.zip

Conserver le focus clavier sur la zone de saisie

  • Ajouter une zone de saisie dans l'interface : QLineEdit
  • rendre active cette zone : ui->lineEdit->activateWindow();
  • garder le focus sur cette zone : ui->lineEdit->setFocusPolicy(Qt::StrongFocus);
  • empêcher la prise du focus clavier par d'autres widgets :
    • sur chaque widget
    • ui->unWidget->setFocusPolicy(Qt::NoFocus);

Domotique

MQTT pour Qt : https://doc.qt.io/QtMQTT/qtmqtt-index.html

MQTT pour Arduino : https://pubsubclient.knolleary.net

NanoPi avec NodeRed ou QT

Adresses IP pour cartes Arduino : 10.98.9.XXX avec XXX = 211, 212, 213, 214 ou 215. Changer également l'adresse MAC pour la différencier des autres cartes.

Balancing Robot

Indications pour démarrer

Projet QTCreator pour commencer : Media:balancingBot_Minimal.zip

Il faudra configurer un kit de cross-compilation :

  • Appareil mobile : linux générique (ip=192.168.7.2, login=root, mdp=geii)
  • Racine du système : /opt/electronique/bbBlue/sysroot
  • Version de QT : pointer /opt/electronique/bbBlue/qt5/bin/qmake
  • Compilateurs : pointer l'executable du compilateur situé dans l'arborescence de /opt/electronique/bbBlue/

Aide pour régulation PID : lire http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/

Guide de progression

  1. Configurer le projet pour qu'il compile et s'exécute sur la carte du robot
  2. Analyser le code - inutile de rentrer trop dans le détail, mais comprendre l'articulation des classes utilisées dans le main.
  3. Afficher la valeur d'angle du gyroscope en temps réel avec qDebug()
  4. Implémenter une classe pour un régulateur PID qui interviendra entre le gyroscope et les moteurs. Vous pourrez commencer par un régulateur proportionnel uniquement et compléter ensuite.
  5. Implémenter une application graphique PC communiquant en tcp avec le robot permettant
    1. d'afficher les valeurs du gyroscope,
    2. de démarrer/éteindre le PID,
    3. de modifier les valeurs du PID,
    4. ...