[TUTO] Application web dynamique

Proposer ou rechercher un tutoriel concernant le Raspberry Pi

Modérateur : Francois

Bud Spencer
Raspinaute
Messages : 786
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Message par Bud Spencer » mar. 24 mars 2020 11:09

Hop, petit code du matin vite fait :)

Toujours dans l'esprit du projet 'redscreen', j'ajoute un nouvel objet à MyServer. Celui la en vue d'une évolution future qui viserait a supprimer l'Arduino et la liaison serie pour lire directement les valeurs de capteurs avec un adc MCP3208 depuis le programme du PI. J'ai appelé l'objet 'ADC' et toujours pareil, il expose Open() ,Close() et cette fois ci, juste une seule signature d'évènement ("data") puisque que la SPI ne revois que des données. En parametre du constructeur, il attend une instance de rpio et une valeur ticks qui définie la tempo de son timer interne en ms. Le reste du code n'est ni plus ni moins que du copier/coller de ce que j'avais déjà écrit pour le datalogger.
adcsrv.png
adcsrv.png (53.91 Kio) Vu 143 fois
Modifié en dernier par Bud Spencer le mar. 24 mars 2020 12:13, modifié 4 fois.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Bud Spencer
Raspinaute
Messages : 786
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Message par Bud Spencer » mar. 24 mars 2020 11:15

Coté programme principale, ajout de rpio et son initialisation. J'ai volontairement chargé et initalisé rpio dans le programme principale plutôt que dans l'objet qui utilise la spi, tout simplement parce que rpio pourra aussi etre utilisé pour gérer les pwm des vérins.
Pour le reste, rien de nouveau, instanciation d'un objet ADC en passant rpio et 100ms en paramètre, 'Ouverture' du timer par appel de Open() et toutes les données arrive dans l'event on(data) de l'objet.
adcsrv2.png
adcsrv2.png (37.09 Kio) Vu 156 fois
/!\ démarrer le programme avec sudo pour accéder à la spi
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Bud Spencer
Raspinaute
Messages : 786
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Message par Bud Spencer » mar. 24 mars 2020 11:30

Et voila le résultat avec les 3 objets 'serveur' activés. (Les adc sont tous à 0 du fait que je n'ais pas câblé de mcp3208). Avec un timer à 100 ms pour l'adc et des envois à 100ms sur le port serie et sur l'udp, la charge cpu reste très modeste donc si on considère que c'est soit port serie soit spi et non pas les 2 , cela laisse une grande marge de manœuvre pour faire d'éventuels calculs et asservir les verins pwm avec un seul et meme programme (qui en plus pourrais retourner des donnes sur un socket.io à destination de beaux clients web dynamique ;) ...)
adcsrv3.png
adcsrv3.png (23.56 Kio) Vu 155 fois
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Bud Spencer
Raspinaute
Messages : 786
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Message par Bud Spencer » jeu. 26 mars 2020 10:22

Le p’tit code du matin :D

Pas grand-chose, juste une petite démo pour utiliser les pwm puisque ca fait parti des choses jusque la non abordées dans ce tuto.
Sur les pi de première gen qui ont un port gpio 26 broches, une seule pin pwm dispo (gpio12 canal pwm 0) et sur ceux qui ont 40 broches, 4 pin pwm (gpio12/gpio18 sur canal pwm 0 et gpio13/gpio19 sur canal pwm 1).

Le code suivant utilise les 2 canaux pwm en meme temps. Il initialise les gpio 12 et 13 en mode pwm avec un rapport cyclique allant de 0 à 100. le timer incrémente x de 0 à 100 au pas de 10 puis applique la valeur pour gpio12 et l’inverse pour gpio13. Pour faire le test, montez une led sur chacune de ces 2 sorties. L’éclairage de gpio12 va aller en augmentant alors que celui de gpio13 va aller descendant.
Comme pour la spi, l’i2c, l’accès aux canaux pwm se fait par /dev/mem (gpiomem = false) donc le programme doit etre lancé avec une commande sudo.
pwm.png
pwm.png (13.54 Kio) Vu 109 fois
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Tutoriels »