Distributeur de croquettes - Mise au point du CdC

Piloter un aspirateur autonome ou une tondeuse baladeuse... Pourquoi pas avec un Raspberry Pi ?

Modérateur : Francois

Avatar du membre
vague nerd
Modérateur
Messages : 1465
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: Distributeur de croquettes - Mise au point du CdC

Message par vague nerd » sam. 2 juil. 2016 19:24

:lol:
ça te rappelle quelque chose ?
Voui. Mais je me refuse à admettre que je suis un vieux fossile. Je travaille dans le conseil nit/tic, que diable :mrgreen: (et l'expression "que diable" ne fait pas vieux fossile non plus !)
J'ai toujours pas compris ce que fait la carte (en tout cas pas ce que je comprend du datasheat)... mais j'ai pas re creusé depuis.
Cordialement,

Vague Nerd

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: Distributeur de croquettes - Mise au point du CdC

Message par guillaume9344 » sam. 2 juil. 2016 19:29

spourre a écrit : Je suis un vieux fossile, formé au C de Richie et Kernighan et au fork.
C aussi mon language de prédilection , pour la getion des gpio jutilise aussi la lib bcm2835.c:
http://www.airspayce.com/mikem/bcm2835/
avec comme plus pour moi , de pouvoir inclure directement les fichiers .c .h que j'ai besoin dans le projet de compil
et non de passer par un fichier deja compilé .o , je peux ainsi satisfaire à ma curiositée et inspecter les sources et tenter de comprendre un peu leurs fonctionnements.
@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

Avatar du membre
vague nerd
Modérateur
Messages : 1465
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: Distributeur de croquettes - Mise au point du CdC

Message par vague nerd » sam. 2 juil. 2016 19:39

@guillaume9344 : vous voulez pas acheter un rfid-rc522 (c'est pas cher ! 2 à 3 €) et conserver la même philosophie (.c .h pas .o), pour m'expliquer cette histoire d'irq bizzard ?
Ensuite, vous pouvez me wrapper le tout en python, svp ?
:lol: :lol: :lol: (je plaisante bien sûr...)

Cdt.

PS : j'ai moi aussi commencé par le c pas ++, puis le c++, avant de passer à java. Je suis toujours en pleine java... (avec ee et ses copains. En ce moment, je donne des formations java/j2ee/spring/hibernate... et struts ! Là, je cherche à intégrer le tout avec maven, toujours pour ces formations).
Cordialement,

Vague Nerd

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Distributeur de croquettes - Mise au point du CdC

Message par spourre » sam. 2 juil. 2016 19:55

guillaume9344 a écrit :
spourre a écrit : Je suis un vieux fossile, formé au C de Richie et Kernighan et au fork.
C aussi mon language de prédilection , pour la getion des gpio jutilise aussi la lib bcm2835.c:
http://www.airspayce.com/mikem/bcm2835/
avec comme plus pour moi , de pouvoir inclure directement les fichiers .c .h que j'ai besoin dans le projet de compil
et non de passer par un fichier deja compilé .o , je peux ainsi satisfaire à ma curiositée et inspecter les sources et tenter de comprendre un peu leurs fonctionnements.
@+
Je ne voudrais pas polluer le fil de notre modo et néanmoins ami, vague-nerd, mais comme il s'est frotté aux interruptions, j'espère qu'il nous pardonnera cette digression.

Le problème de l'utilisation des GPIO (I2C, SPI, autres pins) en lecture est que, majoritairement, on fait appel à une boucle infinie avec des sleep. AMHA, ceci constitue une horreur absolue et, pendant ce temps, le programme ne fait rien d'autre que d'attendre.
Sauf erreur de ma part, il n'y a pas de gestion des interruptions avec gestion priorité, interruption non masquable, ni dans le kernel, ni au niveau hard.
Il faut donc implémenter un ISR dans l'espace utilisateur (c'est mieux que rien).
La lib bcm2835, je cite le site, NE SAIT PAS LE FAIRE:
It provides functions for reading digital inputs and setting digital outputs, using SPI and I2C, and for accessing the system timers. Pin event detection is supported by polling (interrupts are not supported).
La libwiringPi semble en être capable et des exemples sont disponibles sur son site (exemple isr.c). Le principe est de lancer un thread qui lit le GPIO (thread assez légère) et d'armer une interruption dans le programme principal. La communication se fait par une variable mais il doit être possible d'utiliser un segment de mémoire partagée et/ou un pipe:
http://wiringpi.com/reference/priority- ... d-threads/

Comme je l'ai indiqué, il faut encore, pour une bonne compréhension, que je creuse la différence entre le fork (à l'ancienne) et le thread POSIX

Cordialement

Sylvain
Modifié en dernier par spourre le dim. 3 juil. 2016 09:45, modifié 1 fois.

Avatar du membre
vague nerd
Modérateur
Messages : 1465
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: Distributeur de croquettes - Mise au point du CdC

Message par vague nerd » sam. 2 juil. 2016 20:01

Je ne voudrais pas polluer le fil de notre modo et néanmoins ami, vague-nerd, mais comme il s'est frotté aux interruption, j'espère qu'il nous pardonnera cette digression.
Ben j'ai contribué à la digression, alors...
on fait appel à une boucle infinie avec des sleep. AMHA, ceci constitue une horreur absolue et, pendant ce temps, le programme ne fait rien d'autre que d'attendre.
Ben oui, +1 c'est une horreur absolue...
La lib bcm2835, je cite le site, NE SAIT PAS LE FAIRE:
...
La libwiringPi semble en être capable
...
Comme je l'ai indiqué, il faut encore, pour une bonne compréhension, que je creuse la différence entre le fork (à l'ancienne) et le thread POSIX
Haaaa, okok. Je n'avais pas compris votre post initial !
Cdt.
Cordialement,

Vague Nerd

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Distributeur de croquettes - Mise au point du CdC

Message par spourre » sam. 2 juil. 2016 21:30

vague nerd a écrit ::lol:
...
Voui. Mais je me refuse à admettre que je suis un vieux fossile. Je travaille dans le conseil nit/tic, que diable :mrgreen: (et l'expression "que diable" ne fait pas vieux fossile non plus !)
J'ai toujours pas compris ce que fait la carte (en tout cas pas ce que je comprend du datasheat)... mais j'ai pas re creusé depuis.
Jamais je ne traiterais un modo de vieux fossile, c'est bien trop dangereux :mrgreen:
Un vieux fossile aurait utiliser diantre ou fichtre, voire mortbleu.
j'ai bien une hypothèse mais ce n'est qu'une hypothèse: l'interruption signale que le buffer de data est plein. Il n'est pas dit que la lecture vide le buffer, il y a peut-être une commande explicite à donner au contrôleur. Si mon hypothèse est bonne, cela explique le comportement que tu as expérimenté et reporté.
J'avance "step by step", sans commander ni cramer moult chinoiseries pas documentées ou pas adaptés à mes projets :twisted:
Pour le moment, je joue avec une breadboard et une poignée de composants (LED, résistances, circuits logiques..).
Cordialement

Sylvain

Répondre

Retourner vers « Robots and Co »