Projet de débutant :)

Vous venez de déballer votre Raspberry Pi et vous vous posez des questions ? C'est ici que ça se passe !

Modérateurs : Francois, EVOTk

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

Re: Projet de débutant :)

Message par vague nerd » sam. 21 mai 2016 06:01

Tien, je te lance un défi (intéressant pour ton bras) !

Tu fixes un coton-tige sur ton servo.
Etape 1 : tu trouve l'angle minimum et maximum que tu arrive à faire prendre au coton tige.
Etape 2 : tu fais faire l’essuie glace au coton-tige (mini/maxi/mini/maxi....)
Etape 3 (c'est là que c'est intéressant !) : tu gère la vitesse de déplacement du coton-tige.
Etape 4 : on améliore l'essuie glace.
le coton-tige ralenti progressivement à l'arrivée au mini ou au maxi, le coton-tige accélère progressivement en quittant le mini et le maxi.
Etape 5 (que tu utilisera tout le temps dans le logiciel de ton future bras) : rendre paramétrable la vitesse normal, la vitesse d'accélération et la vitesse de décélération.

Tu le relèves ?

Cdt.
Cordialement,

Vague Nerd

Avatar du membre
Oliver17
Raspinaute
Messages : 193
Enregistré le : lun. 18 avr. 2016 09:59

Re: Projet de débutant :)

Message par Oliver17 » sam. 21 mai 2016 12:43

Sérieux, ils auraient pu mettre de l'analogique, j'y crois pas car j'ai pas ça MCP3008 :'(

Edit : et le magasin d'electronique de chez moi ne propose même pas ce genre de chose (ou j'ai mal cherché).
http://www.e17.fr/famille-fr-1059-Circu ... egres.aspx

En fait je m'étais tellement habitué à l'arduino ou tout est bien détaillé, tout plein de possibilité que j'ai l'impression que le PI est archaïque (ok je sais j'y vais fort, on a tout de même un mini ordi), bref .

Le pwm j'ai cru en noter 3 :

gpio 12 bcm 18 pwm0
gpio 32 bcm 12 pwm0
gpio 33 bcm 13 pwm1

Sinon tu émules comment le pwm sur n'importe quel gpio ?
Il faut aussi une sorte de convertisseur ?
Qu'est-ce qui n'est pas clair ou suffisamment détaillé à ton gout ?
Je trouve cela ambiguë (ok suis un noob, mais c'est pas clair lol).

Ben comme dis plus haut, j'avais pris l'habitude de l'arduino uno avec le détaille des gpio sur la carte, c'est tellement bien expliqué que tu peux pas te tromper, et tu a tout :)

http://i.stack.imgur.com/dVkQU.jpg

Mais tu dois connaitre j'imagine.

Bon ben j'ai encore des truc à acheter j'ai l'impression...


PS : Intéressant ton défi, mais j'étais parti sur un truc toujours avec le servomoteur mais réagissant à la lumière, et à la température, plus une commande manuel.

Oui c'est pas clair, tu sais dans les jardins une sorte de pergola qui réagis avec la lumière (trop de lumière ferme les panneaux de la pergola et inversement) etc etc

Donc j'ai commencé le montage, et après avoir lu ton post, ben vais pas pouvoir brancher la photorésistance et le détecteur de chaleur :( ni même le servo du coup qui est aussi en analogique :(


Merci :)

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

Re: Projet de débutant :)

Message par vague nerd » sam. 21 mai 2016 16:57

j'y crois pas car j'ai pas ça MCP3008 :'(
Il faut un ADC. Prend un module tout fait. Moi, j'ai celui ci :
Image
Le pwm j'ai cru en noter 3 :
gpio 12 bcm 18 pwm0
gpio 32 bcm 12 pwm0
gpio 33 bcm 13 pwm1
Je ne crois pas. En tout cas, pas sur les pi jusqu'au 2. Pour le 3, je ne suis pas sûr, mais je serais surpris.
Sinon tu émules comment le pwm sur n'importe quel gpio ?
Il faut aussi une sorte de convertisseur ?
Oui, tu émules sur n'importe quel GPIO. Non, il ne faut pas de convertisseur. Ne t'aurais-je pas déjà parlé de servoblaster ? :mrgreen:
Mais tu dois connaitre j'imagine.
Non, jamais fait d'arduino. Je trouve le pi un peu limité, alors un arduino...
PS : Intéressant ton défi, mais j'étais parti sur un truc toujours avec le servomoteur mais réagissant à la lumière, et à la température, plus une commande manuel.
Ca ne semble pas bien compliqué, mais il faut y aller pas à pas.
ben vais pas pouvoir brancher la photorésistance et le détecteur de chaleur :(
Sur certains modules, tu peux faire soit de l'analogique (le module de donne par exemple une température) soit du numérique (le module de dit 0 tant que tu es en dessous d'une température, 1 si tu est au dessus).
Si ce ne sont pas des modules, mais juste les capteurs, tu peux te faire un circuit reproduisant un module numérique. Mais ça dépasse mes compétences.
ni même le servo du coup qui est aussi en analogique
Si, un servo analogique se contrôle en pwm :twisted:
Intéressant ton défi
Avant de vouloir atterrir sur mars, y fabriquer une pergola et y gérer la lumière et la température, tu devrais d'abord apprendre à contrôler un servo ! :mrgreen:
L'idée du défi est justement d'avoir une idée de comment obtenir des mouvements 'harmonieux'...
Cdt.
Cordialement,

Vague Nerd

Avatar du membre
Oliver17
Raspinaute
Messages : 193
Enregistré le : lun. 18 avr. 2016 09:59

Re: Projet de débutant :)

Message par Oliver17 » sam. 21 mai 2016 19:17

Ben regarde pour le pwm, j'ai du me planter alors.
Je lis trois fois pwn sur le schéma.

http://pinout.xyz/pinout/pin12_gpio18

Donc obligé de ce servir de servoblaster pour tout ^^
servoblaster = pwm :)

Pour la photorésistance et le capteur de chaleur dans les exemples arduino ils sont sur de l'analogique.
J'en ai conclu bêtement que c'est bien donc sur de l'analogique que je dois le brancher sur PI.


Désolé si je vais être lourd, mais si tu fais fonctionner un servo en pwm on est bien d'accord que les infos qui circuleront ne seront pas les mêmes qu'en analogique ?!!
Car là ça m'embrouille, et j'ai envie de dire, dans ces cas là autant brancher mes capteurs analogique sur le pwn, non (vais me faire tabasser je le sent, lol).

Edit : hum, j'essaye d'installer servoblaster via des tutos, mais ça fonctionne pas j'ai une erreur lors que je veux executer le fichier servoblaster.ko



Merci :)

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

Re: Projet de débutant :)

Message par vague nerd » sam. 21 mai 2016 20:22

Ben regarde pour le pwm, j'ai du me planter alors.
Je lis trois fois pwn sur le schéma.

http://pinout.xyz/pinout/pin12_gpio18
Je n'ai jamais utilisé le pwm hardware (toujours eu besoin de plusiseurs servos en même temps).
Si je me souviens bien, et si je comprend bien ce que je lis sur le net, un seul pin peut être utilisé à la fois en pwm (un de ceux notés pwm0).
Le pin pwm1 semble avoir un autre usage.
Pour la photorésistance et le capteur de chaleur dans les exemples arduino ils sont sur de l'analogique.
J'en ai conclu bêtement que c'est bien donc sur de l'analogique que je dois le brancher sur PI.
Tu parles de capteurs seul ou de modules ?
Un capteur analogique ne eut fonctionner directement sur le pi. Le pi ne peut lire qu'en numérique (du 0 ou du 1, du HIGH ou du LOW, du 0V ou du 3.3V).
Tu comprend bien la différence entre analogique et numérique/digital ?
Edit : hum, j'essaye d'installer servoblaster via des tutos, mais ça fonctionne pas j'ai une erreur lors que je veux executer le fichier servoblaster.ko
servoblaster.ko ? Ca me dit rien... Tu utilise quels tutos ? Tu pars du GIT et du essaie de compiler sur le pi ?
Sinon, la librairie standard GPIO pour python permet le pwm, maintenant.

Cdt.

Edit : https://github.com/richardghirst/PiBits ... rvoBlaster
Lit le readme.txt. Tu clones le GIT, puis :
$ make servod
$ ./servod --help
Cordialement,

Vague Nerd

Avatar du membre
Oliver17
Raspinaute
Messages : 193
Enregistré le : lun. 18 avr. 2016 09:59

Re: Projet de débutant :)

Message par Oliver17 » sam. 21 mai 2016 20:52

Ok donc jouer avec le pwm0 .

Je parle de capteurs seul fonctionnant sur l'analogique, comme sur arduino, ce ne sont pas des capteurs numérique.
Vu que je récupérer via un float des valeurs à virgule, chose si j'ai bien compris tu n'a pas en numérique vu que c'est sois 0 ou 1 etc etc :)


Pour servoblaster j'ai fais un clone et executer make, ça a fonctionné, après à savoir si c'est réellement bon j'en sais rien. :)
$ make servod
$ ./servod --help
Ça ça fonctionne :)

Sinon, la librairie standard GPIO pour python permet le pwm, maintenant.
Intéressant, cela peut être mieux pour allez chercher le gpio directement sans passer par servoblaster. ???

Je regarde ça demain pour la librairie standard, voir comment on s'en sert, comment on la récupére et tout et tout :)

Edit : j'ai trouvé ça, un peu de lecture pour demain ^^
https://pythonhosted.org/RPIO/


Merci

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

Re: Projet de débutant :)

Message par spourre » dim. 22 mai 2016 00:33

vague nerd a écrit : ...
Edit : hum, j'essaye d'installer servoblaster via des tutos, mais ça fonctionne pas j'ai une erreur lors que je veux executer le fichier servoblaster.ko
servoblaster.ko ? Ca me dit rien... Tu utilise quels tutos ? Tu pars du GIT et du essaie de compiler sur le pi ?
...
Bonsoir,

Sauf erreur de ma part, un fichier en *.ko est un module qui se charge dans le noyau par modprobbe (ou insmod) mais qui ne se lance pas à la main.
Il apparaît ensuite, sans le .ko, dans le résultat de la commande lsmod.

Cordialement

Sylvain

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

Re: Projet de débutant :)

Message par vague nerd » dim. 22 mai 2016 11:55

spourre a écrit :
vague nerd a écrit : ...
Edit : hum, j'essaye d'installer servoblaster via des tutos, mais ça fonctionne pas j'ai une erreur lors que je veux executer le fichier servoblaster.ko
servoblaster.ko ? Ca me dit rien... Tu utilise quels tutos ? Tu pars du GIT et du essaie de compiler sur le pi ?
...
Bonsoir,

Sauf erreur de ma part, un fichier en *.ko est un module qui se charge dans le noyau par modprobbe (ou insmod) mais qui ne se lance pas à la main.
Il apparaît ensuite, sans le .ko, dans le résultat de la commande lsmod.

Cordialement

Sylvain
+1 !
Ok donc jouer avec le pwm0 .
Ok. Ca c'est pour le pwm hardware. Si tu veux plusieurs servos, il faudra faire du pwm software.
Ça ça fonctionne :)
Si

Code : Tout sélectionner

./servod --help
fonctionne, alors servod fonctionne. Lit le readme.txt. Pour lancer le demon servod, la commande

Code : Tout sélectionner

./servod
lance le démon dans sa configuration standard. De mémoire, 8 pins sont mappés en pwm. Tu peux alors faire du

Code : Tout sélectionner

echo 0=1500us > /dev/servoblaster
ce qui centre le servo mappé en 0 (toujours de mémoire).
Intéressant, cela peut être mieux pour allez chercher le gpio directement sans passer par servoblaster. ???
Oui, mais c'est moins pratique de passer par un programme pour faire des tests simples.

Cdt.
Cordialement,

Vague Nerd

Avatar du membre
Oliver17
Raspinaute
Messages : 193
Enregistré le : lun. 18 avr. 2016 09:59

Re: Projet de débutant :)

Message par Oliver17 » dim. 22 mai 2016 14:45

Code : Tout sélectionner

Oui, mais c'est moins pratique de passer par un programme pour faire des tests simples.
Bien chef :)

Servo branché sur du 5 v direct, sur le ground, et gpio 4.

J’exécute comme ça pour tester :

pi@raspberrypi :
echo 0=50% > /dev/servoblaster

C'est bon ça fonctionne, par contre le 100% il aime pas il fait du bruit, tremble sur lui même lol

Edit :
Edit : j'ai trouvé ça, un peu de lecture pour demain ^^
https://pythonhosted.org/RPIO/
Euh tu parlais bien de ça, la librairie standard ???

PS : effectivement pour tester un servo, servoblaster c'est pas mal, mais comme j'ai l'intention par la suite (si tout ce passe bien) d'augmenter le nombre de servo, je pense que ce ne sera pas la meilleur solution pour moi.

Merci :)

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

Re: Projet de débutant :)

Message par vague nerd » dim. 22 mai 2016 16:10

C'est bon ça fonctionne, par contre le 100% il aime pas il fait du bruit, tremble sur lui même lol
C'est "normal". Tu vas pouvoir configurer servoblaster pour que ça arrive moins souvent (et tu ne pourrais pas le faire avec les autres frameworks, à ma connaissance, et pour le moment (work in progress!)).
Il va falloir gérer le pas (différent selon le servo, 2us devrais faire l'affaire sur un nano), la valeur min et max possible (par configuration de servoblaster).
Edit : j'ai trouvé ça, un peu de lecture pour demain ^^
https://pythonhosted.org/RPIO/
Euh tu parlais bien de ça, la librairie standard ???
Oui.
PS : effectivement pour tester un servo, servoblaster c'est pas mal, mais comme j'ai l'intention par la suite (si tout ce passe bien) d'augmenter le nombre de servo, je pense que ce ne sera pas la meilleur solution pour moi.
Possible. Mais moi, même après tests, j'y suis resté. Même en python et Java.
Pi je trouve que c'est pratique de faire du 0=1500us ou 0=50%, 2=0% etc... Tu trouve les valeurs qui vont bien et tu les mets dans ton programme ensuite...
Merci :)
Np.

Alors, tu relève le défi ? Tu vas apprendre plein de choses !

Cdt.
Cordialement,

Vague Nerd

Répondre

Retourner vers « Débutants »