Ce logiciel est un client TCP qui permet de recevoir un message via le protocole TCP venant d'un serveur puis de l'interpréter afin d'effectuer une action graphique, logicielle ou mécanique sur un relais par exemple. Sur windows il comporte en plus un système de sauvegarde de configuration et d'un système d'envoi de mail. Des logs sont également gérer et stockés dans le répertoire C:/User/Program Files/BROADCAST SOLUTION .
Ce logiciel à été concu pour une utilisation en radio pour permettre au studio d'envoyé des informations sur un studio déporté à l'autre bout de la planète. Mais il peut être adapté à toutes situations.
- Raspberry PI 4 (2,4,8G) (Raspberry).
- (optionnel) PiFace digital 2 (PiFace).
- Carte SD (Carte SD).
- Alimentation Raspberry (Alimentation).
- Ecran 16:9 avec entrée HDMI.
- Cable micro HDMI vers HDMI.
- Raspberry Imager (Téléchargement).
- Un clavier et une souris pour la première configuration du RPI.
- Raspberry Pi 4 (Raspberry).
- Carte PiFace digital 2 (PiFace).
- Médialon Manager (Téléchargement )
- Tout système comportant un serveur TCP
-
Flasher Raspbian Desktop sur la carte SD avec Raspberry Imager.
- Prendre la version Raspberry pi OS 64bits avec Bureau.
-
Brancher votre RPI au secteur tout en aillant installé et branché votre écran, clavier, souris et avoir inséré votre carte SD avec le système d'exploitation.
- Suivez les instructions du premier démarrage du RPI.
- (optionnel) Après avoir terminé la configuration du premier démarrage, il faut se rendre dans la framboise en haut à gauche > préférences > configuration du RPI > Display > et passer Screen Blanking à OFF (Mise en veille de l'écran).
-
Mettre à jour le raspberry (
sudo apt-get update & sudo apt-get upgrade -y
) :- Faire un
sudo apt autoremove
si des paquets ne sont plus utilisés. - Faire un reboot du RPI après la mise à jour
sudo reboot
.
- Faire un
-
(optionnel) Installer la carte PiFace sur le raspberry.
-
ATTENTION Activer la fonction SPI du raspberry pour la prise en charge de la carte PiFace :
sudo raspi-config
> Interface Options > SPI > Enable
-
Installer PIP pour python 3 s'il n'est pas installé :
sudo apt install python3-pip
-
Installation des librairies requises pour la carte PiFace.
sudo pip3 install pifacecommon
sudo pip3 install pifacedigitalio
- Tuto complet ici
-
Mise en place du programme sur le RPI :
- Télécharger la version du programme sur github avec
sudo wget https://raw.githubusercontent.com/corentindrd/RPI_PIFACE_RADIO_BROADCAST/master/main.py
. - Changer l'adresse IP par l'adresse de votre serveur dans la variable "ipaddress" en éditant le fichier avec
sudo nano main.py
. - Changer le numéro de port par celui souhaité dans la variable "port" en éditant le fichier avec
sudo nano main.py
.
- Télécharger la version du programme sur github avec
-
Lancement du programme avec
sudo main.py
- Télécharger la version du programme souhaitée sur github avec
sudo wget https://raw.githubusercontent.com/corentindrd/RPI_PIFACE_RADIO_BROADCAST/master/main.py
. - Télécharger tkinter qui n'est pas présent de base sur Ubuntu avec
sudo apt-get install python3-tk
- Changer l'adresse IP par l'adresse de votre serveur dans la variable "ipaddress" en éditant le fichier avec
sudo nano main.py
. - Changer le numéro de port par celui souhaité dans la variable "port" en éditant le fichier avec
sudo nano main.py
. - Lancement du programme avec
sudo main.py
- Ouvrir un terminal.
sudo nano /etc/xdg/lxsession/LXDE-PI/autostart
Rajouter en bas du fichier@sudo python3 main.py
- Le programme ne se lance pas au démarrage du RPI :
- Le fichier main.py n'est pas dans le bon répertoire, le fichier autostart est défini de base dans le répertoire
/home/pi/
Si le programme est dans un autre répertoire il faut l'indiquer dans le fichier autostart EXEMPLE :@sudo python3 /home/pi/radio/main.py
- Le fichier main.py n'est pas dans le bon répertoire, le fichier autostart est défini de base dans le répertoire
- "No PiFace Digital board detected":
- Enlever et remettre la carte sur le RPI puis relancer le programme.
- Refaire la procédure d'installation des librairies.
- Arrivée du programme sur windows :
- Système de sauvegarde de configuration
- Bouton paramètres avec interface graphique ayant la possibilité de changer les informations : réseau (adresse IP et port) , messages provenant du serveur
- Ajout d'un système d'envoi de mail (fonction actuellement en test) fonctionnant avec GMAIL en créant un mot de passe pour application avec votre adresse GMAIL (APP Password)
- Ajout d'un bouton qui permet de redémarrer le client
- Ajout d'un bouton quitter en haut à droite
- Ajout de voyants :
- Voyant PiFace pour savoir si votre carte PiFace est bien installée et reconnue
- Voyant Librairies pour savoir si toutes les librairies nécessaires ont bien été chargée et correctement installés
- Voyant Serveur pour savoir si la connexion au serveur est bien active
- Refonte complète du système de chronomètre pour diminuer la charge système.
- Suppression de la fonction start_chronometer
- Suppression de la fonction stop_chronometer
- Suppression de la fonction resume_chronometer
- Ajout de la fonction updateTime qui gère le chronomètre
- Ajout de la librarie timeit qui est utilisée pour le chronomètre
- Nettoyage du code
- Nettoyage au niveau de l'utilisation de la carte électronique PiFace
- Suppression de la fonction input_read qui était inutilisée
- Suppression du thread 3 qui était inutilisé
- Ajout de variables pour simplifier le changement d'informations concernant le serveur distant
- variable "ipaddress" qui permet de changer l'adresse IP du serveur plus facilement.
- variable "port" qui permet de changer le port de connexion au serveur plus facilement.
- Le chrono ne s'affiche plus au lancement du programme tant que le serveur n'a pas envoyé l'information ON AIR.
- Nettoyage du code
- Nettoyage au niveau des importations.
- Nettoyage au niveau des commentaires.
- Diminution du lag des secondes entre l'heure et les points jaunes des secondes.
- La fonction des heures a été déplacée dans la fonction trigonométrie pour éviter la latence.
- La fonction "second" a été supprimée pour éviter la latence.
- L'heure du milieu disparaissait à certains moments lors du changement de seconde.
- Le texte n'est désormais plus géré par la fonction canvas de tkinter, il est maintenant géré par la fonction Label de tkinter.
- Le programme s'arrête complètement après la fermeture de la page, ce qui n'était pas le cas avant.
- L'attribut "daemon" de tous les threads a été ajoutée et initialisée à "True".
- La variable initial_screen a été créée pour la valeur 1920 qui est la valeur initiale qui permet le calcul de la mise à l'échelle d'écran.
- La fonction datetime pour la trigonométrie des secondes a été améliorée.
- La variable "canvas_size" n'était pas initialisée.
- Changement des valeurs initiales des éléments qui étaient trop grandes sur certains écrans.
- Le programme fonctionne même sans la carte électronique PiFace installée.
- La latence entre les secondes de l'heure et les secondes s'affichant en jaune a été réduite.
- Disposition des éléments graphiques améliorés
- Le titre ONAIR se place automatiquement en haut en fonction de la taille de l'écran.
- Le chronomètre se place automatiquement en bas en fonction de la taille de l'écran.
- L'horloge se met au centre en fonction de la taille de l'écran.
- Nettoyage du code sur les fonctions de créations (chronomètre et titres).
- Suppression de la variable "msgserver" qui ne servait à rien.
- Suppression de la police de l'heure qui était en gras vers une police normale.
- La fonction de lecture des entrées de la carte a été retirée
- Programme initial
- Stéphane Ayreault
- Mathieu Amiaud
- Aurélien Ménard