Pages

dimanche 3 février 2019

Créer un mélangeur de couleurs avec Python et Tkinter

Dans cet article, vous allez découvrir l'utilisation des "slider" et des "canvas" en réalisant un mélangeur de couleur. Oui, je sais, il existe déjà tout fait dans Tkinter et partout sur Internet. Mais c'est bien aussi de le faire soi-même.

Toujours aussi beau ce que je fais ;-)


Le code :

Initialisation et création de la fenêtre :

Les widgets et la boucle principale :

En fonctionnement :


Téléchargement du fichier source :


Téléchargement de l'exécutable :



Je ne détaille pas plus le code, pour toute question, envoyez-moi un courriel....









Gérer des déplacements sur Processing avec la librairie G4P

Petit retour sur Processing et une nouvelle série sur les IHM et GUI. Seul souci, les démos seront réalisées avec Processing 2, la seule à fonctionner correctement en salle de classe dans de nombreux lycées.
Lien pour la librairie : http://www.lagers.org.uk/g4p/ (attention à la version pour Processing 221)
La librairie peut aussi être installée ainsi :

Dans cet article, démonstration simple de deux boutons qui font bouger un rectangle en x.

Simple mais ça fonctionne !


Ci-dessous, le code commenté pour cet exemple :

En fonctionnement :


Et simulation vidéo :

Et voilà !!!!


mardi 29 janvier 2019

Convertisseur décimal-binaire-hexadécimal avec Python et Tkinter

Cet article montre un autre GUI assez simple, un convertisseur décimal-binaire-hexadécimal écrit en Python et utilisant Tkinter :

Un appui sur un bouton DEL efface une ligne (oui, je sais, j'aurais pu en mettre un seul qui efface tout...) et le bouton convertir lance la conversion dans le sens :

Décimal ⇰ Binaire ⇰ Hexadécimal
Binaire ⇰ Décimal ⇰ Hexadécimal
Hexadécimal ⇰ Décimal ⇰ Binaire

⇩⇩⇩

Le programme :

Import, création des fonctions et de la fenêtre :
Placement des widgets :

Téléchargement du fichier :



Téléchargement de l'exécutable :





Créer son premier GUI avec Python et Tkinter

Voici le premier article sur Python !
Pour écrire les programmes, j'utilise EduPython (Académie d'Amiens).

Mais vous pouvez lancer le script à partir de Python natif :


Si vous voulez vous lancer dans la création de votre premier Graphic User Interface, vous êtes au bon endroit...

Voici ce que je propose pour commencer petit et facile :
Encore une fois, je précise qu'il y a plusieurs façons de faire et d'obtenir la même chose, mais le but est de découvrir. L'efficacité arrivera plus tard....

Le programme :


Le programme est, je pense, assez détaillé pour comprendre ce qu'il se passe.


Pour télécharger le fichier :



Cerise sur le gâteau, la version exécutable, sans avoir besoin de Python sur son PC :

Décompresser le fichier et lancer CC3d.exe







vendredi 30 novembre 2018

Utiliser un écran Nextion avec Flowcode et Arduino Mega

Suite à quelques articles sur l'écran Nextion, je vais montrer ici comment l'utiliser avec Flowcode et une Mega (plus pratique pour gérer un second UART).

Rappel : La famille d'écran Nextion a comme caractéristiques principales :

  • La facilité de mise en oeuvre : liaision Rx/Tx (pas de protocole spécial)
  • La variété de la gamme
  • Le logiciel simple à utiliser pour créer l'IHM
  • Le mode tactile efficace et rapide à mettre en place
Je vais ajouter dans cet article, donc dans le programme, une interruption. Pourquoi une interruption ?
Et.... qu'est-ce qu'une interruption ?

Une interruption, ben..... ça interrompt le programme. Voilà ! 
Pour faire simple, le programme principal tourne en boucle, fait son travail. Bref, tout se passe bien. Arrive un événement, qu'on attendait, bien sûr, mais on ne savait pas quand. Sans utiliser l'interruption, on risque tout simplement de le rater. Par contre, si on utilise l'interruption, le programme s'arrête net, lance un sous-programme défini à l'avance pour l'événement attendu et, dès que le sous programme est fini, le programme principal reprend là où il s'est arrêté.

Interruption (très) simplifiée :
Le programme se déroule, parfaitement, indéfiniment.... et ..... soudain, juste à la fin de l'action 2 survient l'événement attendu ! Le programme principal s'interrompt et le sous-programme d'interruption démarre. Quand celui-ci a fini, le programme principal reprend là ou il s'est arrête (on peut aussi le forcer à redémarrer à un autre endroit, en fonction des besoins)


Il est possible de déclencher une interruption de différentes manières et ici, on va la déclencher sur un changement de niveau d'une broche, en l'occurrence, la broche Rx3 (D14) de la Mega. Pourquoi ? Parce que c'est justement l'événement que l'on attend. 
Ah, je n'ai pas précisé quel était cet événement : l'appui sur un bouton du Nextion.

Dans mon exemple, je récupère la température issue d'un DHT11. Souci, ce composant bien que facile à utiliser présente un énorme défaut : il faut attendre une seconde entre chaque mesure. De ce fait, soit je mets une pause d'une seconde dans le programme, dans ce cas je peux rater l'arrivée d'une information sur le port série, soit je diminue la pause, mais dans ce cas, je ne sais pas quelle est la température....
D'où l'interruption : le programme fait son boulot, il mesure et affiche la température toutes les secondes et si un appui sur l'écran se produit, une interruption se déclenche.


IHM utilisée :
En mode simulation :

Vérification à l'analyseur logique (Avec Sigrok):

Le câblage :


Passons à Flowcode :

Le panneau utilisé :

Le programme se base sur le modèle IATR :

Initialisation :
Configuration de l'interruption :


Acquisition :
Traitement :
pour la ligne "n0.val=", il faut aller sur les autres articles Nextion de ce blog ;-)

Restitution :
Sous-programme "envoi"
Sous-programme d'interruption :
Et voilà :


En vidéo :
Désolé, pas facile de tenir le téléphone et l'écran tactile tout en visant bien ;-) ;-)



Une question ?









dimanche 11 novembre 2018

Utiliser un écran OLED I2C avec Flowcode et une Arduino UNO

Il est (assez) facile d'utiliser des écrans OLED de petite taille avec une carte Arduino avec la bonne bibliothèque.  De plus, ces écrans sont très bon marché et se connectent en I2C.
Je parle de ce type d'écran :
Mais comment les utiliser avec Flowcode ?
C'est simple, il suffit de connaître le contrôleur sur le circuit et regarder s'il existe dans le logiciel. En général, il s'agit d'un SSD1306 pour un modèle I2C.

1) Placer le composant dans le panneau et le configurer comme sur la capture ci-dessous :

Rappels : SDA sur A4 (PC4) et SCL sur A5 (PC5)
2) Réaliser le programme suivant :

3) Simulation :
Quelques ajustements sont à prévoir....

4) Câbler et téléverser vers la carte Arduino :


Sympa pour les projets !

A vous de tester.....






dimanche 4 novembre 2018

Obtenir Target3001! version "make" gratuitement

Petit article pour petite info :

Comme le titre l'indique, Target3001! Make peut être obtenu GRATUITEMENT à certaines dates :



Ah oui, sinon, Target3001!, c'est ça :




Note : je n'ai absolument pas été sponsorisé par cette société.....
Je partage une bonne expérience, c'est tout...
La version "Discover" reste gratuite pour tous !