Page 1 sur 6
[RESOLU] Projet mini automate de contrôle
Posté : mar. 21 avr. 2015 15:44
par Cluclu
Bonjour la communauté,
J'ouvre ce post pour centraliser mes questions sur mon projet de mini automate et également pour le présenter quand il sera à minima fonctionnel et pas en fil volant.
Donc en fait j'essaye de faire plusieurs ébauche de script pour valider des fonctions et apprendre en même temps et par la suite je ferais un script global pour le projet.
Je me retrouve actuellement avec des erreurs en essayant d'utiliser un script pour exploiter ma carte Piface 2 sur mon Pi 2.
J'ai installé tout ce qu'il fallait d'après la doc fournit sur le site du Piface 2.
Lorsque je lance mon script d'essai (pour tenter d'allumer les LED des sorties) j'ai une erreur d'exécution. En cherchant sur le forum je suis tombé sur un post et un script tout fait pour pour voir essayer ce module justement (
viewtopic.php?f=70&t=258)
Pour info je suis avec Python 3
Lorsque j'essaye ce script j'ai la même erreur :
Traceback (most recent call last):
File "/home/pi/test piface.py", line 3, in <module>
pifacedigitalio.init()
File "/usr/lib/python3/dist-packages/pifacedigitalio/core.py", line 166, in init
raise failed_boards[0]
File "/usr/lib/python3/dist-packages/pifacedigitalio/core.py", line 162, in init
init_board)
File "/usr/lib/python3/dist-packages/pifacedigitalio/core.py", line 82, in __init__
self.init_board()
File "/usr/lib/python3/dist-packages/pifacedigitalio/core.py", line 107, in init_board
h=self.hardware_addr, b=self.bus, c=self.chip_select))
pifacedigitalio.core.NoPiFaceDigitalDetectedError: No PiFace Digital board detected (hardware_addr=0, bus=0, chip_select=0).
Apparemment le module n'est pas détecté par le PI si j'ai compris ?
Merci d'avance et désolé si j'ai oublié des infos vitale pour vos réponses
Re: Projet mini automate de contrôle
Posté : mar. 21 avr. 2015 15:58
par Manfraid
Salut,
oui tu as bien compris le module n'est pas detecter
Re: Projet mini automate de contrôle
Posté : mar. 21 avr. 2015 16:04
par Cluclu
Merci de la confirmation.
Comment savoir maintenant si c'est logiciel ou matériel ? La carte est neuve ça serait dommage :/
Edit : Après reboot sans la carte, une vérif des Maj avec Synaptic puis un reboot avec la carte dessus elle est enfin reconnu
En lançant "pifacedigital-emulator" j'arrive à allumer les led depuis l'interface graphique,
par contre le script d'essais ne produit pas d'erreur mais rien ne se passe je vais voir du coté des autorisations si ça bloque pas
Edit 2 : En lançant le script via une console en prenant les droit (sudo) ça fonctionne parfaitement
Re: Projet mini automate de contrôle
Posté : jeu. 23 avr. 2015 22:37
par Cluclu
Bonsoir, me revoilà avec une question de plus
J'ai suivi le tuto dispo sur ce site pour réaliser le boot sur SD puis enchainer sur une clé USB pour soulager la SD
J'en suis arrivé au déplacement de mmcblk0p2 ... Actuellement plus de 30 min que rien n'est affiché dans la console donc je voulais savoir si je devais encore attendre ou si il y a eu un couac :/
Voici mes dernières lignes provenant du terminal :
Code : Tout sélectionner
pi@raspberrypi ~ $ sudo mount -t ext3 /dev/sda2 /home/pi/USB
pi@raspberrypi ~ $ df
Sys. fich. 1K-blocks Util. Disponible Uti% Monté sur
rootfs 7534284 3087464 4090504 44% /
/dev/root 7534284 3087464 4090504 44% /
devtmpfs 470368 0 470368 0% /dev
tmpfs 94936 308 94628 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 189860 0 189860 0% /run/shm
/dev/mmcblk0p1 57288 14720 42568 26% /boot
/dev/sda2 14311472 35956 13541872 1% /home/pi/USB
pi@raspberrypi ~ $ sudo umount /dev/sda2
pi@raspberrypi ~ $ sudo dd if=/dev/mmcblk0p2 of=/dev/sda2 bs=512
Le truc c'est que dans le listing df je ne vois pas le 0p2 s'afficher :/
Re: Projet mini automate de contrôle
Posté : jeu. 23 avr. 2015 23:07
par Cluclu
Bon il fallait être patient en fait.
Par contre sur la fin du tutoriel il est précisé de modifier fstab du sda2 et pas du mmcb mais comment savoir lequel on modifie ??
Edit matinal : Pas trouvé pour le fstab pour le moment
Je suis bloqué sur le script pour surveiller les entrée du Piface Digital 2. J'arrive à leur donner une valeur fixe (0 ou 1) et allumé une LED selon leur état avec utilisation de if, else etc
Je cherche donc à activer une sortie si une entrée passe à 1 mais sans intervention logiciel donc soit appuyer sur le bouton S0 soit (que je préfèrerais) réaliser un vrai contact entre 2 borne
Voici une ébauche de mon script qui permet d'allumer la led 0
Pour ce qui est des entrées j'ai la ligne "pi.digital_read_pullup" dont je cerne difficilement son action
Merci d'avance
Re: Projet mini automate de contrôle
Posté : sam. 25 avr. 2015 12:07
par Cluclu
Petit up, personne pour m'orienter concernant les entrées contact sec ?
Re: Projet mini automate de contrôle
Posté : mar. 28 avr. 2015 16:08
par Cluclu
Bonjour la communauté
Voilà j'avance sur mon projet, je posterais les photo ce soir de l'avancement.
Côté programmation j'ai avancé également, j'arrive à détecter mes entrées et activer mes sorties en conséquence.
J'épluche les doc mais je but sur l'affichage de la date
et la fonction boucle
Voici une ébauche de mon script
Code : Tout sélectionner
import time
import pifacedigitalio as pi
pi.init()
if pi.digital_read(0) == 1 : # si mon entrée 0 est égale à 1
... print("TS 1 activée") # afficher TS 1 activée
... pi.digital_write(0, 1) # activer la sortie 0 à 1
else :
... pi.digital_write(0, 0) # sinon activer la sortie 0 à 0
J'ai à peu près la même chose pour les 8 entrées et j'aimerais que le script tourne en boucle pour relire l'état des entrées jusqu'à interruption
J'ai essayé ceci mais sans succès :
Code : Tout sélectionner
while pi.digital_read(7) == 0 : # tant que la sortie 7 = 0 lire en boucle
Concernant la date j'utilise la fonction time.strftime("%d etc ") mais je n'arrive pas à l'inclure dans un print(" ")
Edit : j'ai corrigé mon souci de boucle c'était un souci d’imbrication des conditions, me reste à voir pour faire un "clear" après chaque boucle
Merci d'avance pour vos infos
Re: Projet mini automate de contrôle
Posté : mar. 28 avr. 2015 17:00
par dbrion0606
Concernant la date j'utilise la fonction time.strftime("%d etc ") mais je n'arrive pas à l'inclure dans un print(" ")
Que donne :
Re: Projet mini automate de contrôle
Posté : mar. 28 avr. 2015 19:03
par Manfraid
Salut
Exlliqe un peu plus en détail ce que tu veux faire car avec le peu de détail je peu imaginer plein de solution différente
Re: Projet mini automate de contrôle
Posté : mar. 28 avr. 2015 19:46
par Cluclu
Je testerais ta solution demain dbrion0606 ma maquette étant à mon boulot
@Manfraid
Si c'est pour la fonction "Clear", je souhaite l'utiliser en début de script car en tournant en boucle, celui ci m'affiche des infos selon l'état de mes sorties.
Si la sortie 1 est activée j'ai un message qui s'affiche dans l'IDLE mais il se cumule à chaque fois que le script réalise une nouvelle boucle et ça devient illisible pour rechercher les infos qu'on souhaite afficher
Donc je voudrais afficher dans mon IDLE uniquement l'état de mes sorties de la boucle actuelle, puis un clear et le script me réaffiche l'état des sorties dans la boucle suivante etc