Panneau de modération ]

[Théorie] Programmer un Picaxe de A à Z

Questions sur l'utilisation des composants, la théorie du signal, l'interprétation des schémas, l'usage des outils et des logiciels...

[Théorie] Programmer un Picaxe de A à Z

Messagepar clajucla le 26 Juil 2009 11:41

Salut les gens ! :D

J'ai tellement apprécié le topic d'Oca sur les microcontrolleurs, mais qui m'a laissé sur ma faim :( que je vous propose de vous embarquer avec moi sur la découverte des Picaxe, nouvelle génération de microcontrolleurs, pas chers et d'un langage assez simple s'approchant du Basic.
Je fais volontairement ce topic avec un langage clair et beaucoup d'exemples concrets...et ne perdez pas de vue que j'apprends en même temps que vous. 8)
en first, téléchargeons le logiciel de programmation (Free PICAXE Programming Editor) ici:
http://www.rev-ed.co.uk/software/bas805.exe

et on va débuter le cours avec le modèle de base:
picaxe8M.jpg
picaxe8M.jpg (18.58 Kio) Vu 2148 fois

Ce modèle est en boitier DIP8:
picaxe8M1.jpg
picaxe8M1.jpg (9.83 Kio) Vu 2149 fois

qui sera monté sur le support suivant:
picaxe8M2.jpg
picaxe8M2.jpg (11.81 Kio) Vu 2149 fois
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar clajucla le 26 Juil 2009 12:49

Bon! c'est quoi ces 8 broches ??? :shock:
Le 08M (comme toute la gamme) s'alimente en 5 v, voici le schéma de l'alim régulée (primaire 9v):
picaxealim.jpg
picaxealim.jpg (19.23 Kio) Vu 2136 fois

Le montage ne peut fonctionner avec une pile de 9v car le débit de courant serait trop faible, donc on prend un transfo ou un bloc alim classique...tout ca pour dire que le Pin1 recevra le + de l'alim
- le Pin2 (sérial IN) reçoit les instructions lors du transfert PC vers Picaxe
- les Pins 3-4-5-6-7 sont dispo pour les entrées/sorties. les pins 3-5-6 ADC (analog to digital conversion) permettent de brancher un potard, une LDR, une thermistance etc...on verra après :wink:
- le Pin 8 est pour la masse...ouf
...à noter que les picaxe ont un Pin Reset à partir de la série 018, donc si on veut un reset sur le 08M, et ben on coupe le jus.
et que les séries de base ont un résonateur interne à 4 Mhz ou 8 Mhz suivant la série alors que les séries 028 et 040 ont 2 Pins résonateur externe...
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar bill_baroud le 26 Juil 2009 14:29

Question à la con, les vrais programmeurs, ils peuvent programmer ces microcontrolleurs avec un vrai language ?
(un troll se glisse dans cette phrase saura-tu le retrouver ?)

Juste pour savoir si je continue à suivre ce thread (parce que j'aime bien les thread sur les microcontrolleurs mais bon j'ai pas vraiment envie d'apprendre le BASIC alors que je maitrise le C)
(bon ok, de toute façon je suivrais le thread parcequ'il y aura forcément des trucs intéressants, je suis pas sectaire :D)
Et la foule en délire lançait des bigorneaux - deux par deux. Les plus riches lançaient des ormeaux.
Avatar de l’utilisateur
bill_baroud
JOHNNY BIGOUDE
 
Messages: 4363
Enregistré le: 19 Aoû 2005 09:50
Localisation: Bretagne

Messagepar clajucla le 26 Juil 2009 14:54

bill-baroud a écrit:Question à la con, les vrais programmeurs, ils peuvent programmer ces microcontrolleurs avec un vrai language ?
(un troll se glisse dans cette phrase sauras-tu le retrouver ?


Peut être la faute dans langage ? :wink:

Non, je ne souhaite pas faire un cours sur le basic, mais avec 10 commandes simples de base, on va déjà pouvoir s'amuser dans le domaine qui nous concerne... :D
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar Crampe le 26 Juil 2009 23:12

Juste par curiosité, car de toute façon j'ai juste le niveau pour faire des soudures sans comprendre grand chose, qu'allez vous pouvoir faire avec ce Picaxe? Une recherche internet ne m'a pas aidée :|
Crampe
GéoTrouveTout
 
Messages: 53
Enregistré le: 24 Juin 2009 18:00

Messagepar treize le 27 Juil 2009 11:26

Et tant qu'on y est un programatteur spécial existe t'il?
Je suis un doux rêveur
Avatar de l’utilisateur
treize
ELECTRON LIBRE
 
Messages: 3236
Enregistré le: 08 Jan 2006 15:50
Localisation: melun (enfin juste à côté)

Messagepar clajucla le 27 Juil 2009 19:12

oui: Free PICAXE Programming Editor, je l'ai noté au début du post...
Bon...du concret tout de suite avec le clignotement d'une LED :D

- La commande symbol: permet de renommer les entrées et les sorties de façon à s'en rappeler facilement. Ces commandes se mettent en tout début de programme.
ex:
symbol LED = 4 : renomme le pin 4 du Picaxe en "LED"
symbol buzzer = 2 : renomme le pin 2 du Picaxe en "buzzer"

- La commande label:: crée une étiquette avec le nom que vous voulez. Dans les programmes Basic courants, tout est numéroté par ligne et c'est un vrai bigntz quand on fait des sauts dans le programme ou quand on rajoute des lignes...pas ici :D .N'oubliez pas le":" à la fin quand vous déclarez le label, on ne les met plus après. Ces commandes se mettent en tout début de programme.
Ex:
main: ' vous déclare un label nommé ‘main’

- La commande ' :permet de mettre un commentaire histoire de s'y retrouver dans le merdier et n'a pas d'influence sur la programmation. Si vous mettez: ' clajucla est une tanche
et ben sa change rien, juste à vous prendre un coup de pompe :lol:
Ex:
symbol LED = 4 ‘ renomme la sortie 4 en ‘LED’

- La commande goto: aller à...
Ex:
goto main ' va au label nommé: main

- La commande pause: ben c'est une pause qui est suivie d'un chiffre en millisecondes. Beaucoup utilisé dans les clignotements, on allume une LED / on attends / on l'eteint / on attends et on fait un "goto" au début.
ex:
pause 1000 ' on attends pendant une seconde...

- Les commandes high/low: tout bêtement on et off.
Ex:
high LED ‘ switch le pin led ON
pause 500 ‘ wait for 0.5 second
low LED ‘ switch le pin led off



Exercice: Je veux faire clignoter une led toutes les demi secondes sur la sortie 2 de mon Picaxe

'petit programme de clignotement de Led
'avec un 08M et le magnifique CLAJUCLA
symbol LED = 2 ' renomme output2 en led

main:
high LED ' allume votre led
pause 500 ' attend 0.5 seconde
low LED ' eteint la led
pause 500 ' attend for 0.5 seconde
goto main ' retourne au label nommé main

on fait un copier/coller de ce petit programme, on ouvre Free PICAXE Programming Editor, on sélectionne le bon Picaxe dans la boite qui s'ouvre (ici le 08M.... que l'on retrouve aussi dans: Options/Mode) et on colle tout ca.
C'est beau !!! les commentaires sont en vert 8) on appuie sur "Simulate" et on voit bien la sortie 2 qui clignote toutes les 0.5 secondes.
Si vous voulez quelque chose de plus réel au niveau déroulement, faites: Options/Simulation et ramenez le curseur à gauche.
Ca n'a rien de sorcier pour l'instant :) la prochaine fois, on met un bouton poussoir pour commander une sortie...ou même un potard pour commander autant de led qu'on veut...enfin je dis led, mais pourquoi pas des relais ou bien d'autres choses...(air mystérieux)

demopicaxe1.jpg
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar SlapBug le 29 Juil 2009 18:25

Merci beaucoup pout tout ça ça me rapelle mes cours de Si de 1ere :lol: !!
C'est un compliment of course :wink:

Au modo : Pk pas épinglé le sujet ?? Ceci n'est bien sur qu'une suggestion !

Amicalement
Avatar de l’utilisateur
SlapBug
ELECTRON LIBRE
 
Messages: 322
Enregistré le: 16 Avr 2009 16:11

Messagepar clajucla le 29 Juil 2009 19:24

Aujourd'hui, 2 nouvelles commandes:

- La commande for...next : souvent dans un programme, on doit répéter des choses plusieurs fois, par exemple faire clignoter une LEd 5 fois...Dans ce cas, le Picaxe stocke temporairement en RAM les 5 fois dans une variable "b1". On verra plus tard les différents types de variables, pour l'instant, c'est 'b" pour bytes et on y met des nombres. La commande for...next s'appelle une boucle.
Ex:
symbol compteur = b1 ‘ renomme b1 en compteur”
symbol LED = 4 ‘ renomme le pin 4 en “LED”

main:
for compteur = 1 to 15 ‘ débute la boucle
high LED
pause 500
low LED
pause 500
next compteur ‘ remonte au début de la boucle
end 'fin du programme

- La commande if...then: littéralement Si...Alors. Par exemple Si on appuie sur un bouton Alors va où je te dis.
Ex:
main:
if pin0 = 1 then flash ‘ si le Pin0 est on, alors va au label "flash"
goto main ‘ reviens au label "main"

flash: high 1
pause 5000
low 1
goto main ‘ reviens au label "main"

Qu'est-ce qui se passe: tant que l'entrée 0 est off, le programme revient inlassablement au début, dès que l'entrée est on, on saute vers le label "flash"

Exercice: je veux qu'une Led sur la sortie 2 clignote 5 fois quand j'appuie sur le bouton 3. Faites un copier/coller du programme suivant dans le soft:

'petit programme d'allumage de Led en
'mettant l'entrée 3 "on" et clignotement 5 fois
'avec un 08M
symbol LED = 2 ' renomme output2 en led
symbol counter = b1 'renomme la variable b1 en counter
main: ' crée un label main

if pin3 = 1 then allume ' va au label allume si l'entrée 3 est "on"
goto main

allume:
for counter = 1 to 5 'boucle de for à next 5 fois
high LED ' allume votre led
pause 500 ' attend 0.5 seconde
low LED ' eteint la led
pause 500 ' attend for 0.5 seconde
next counter 'reviens au début de la boucle

end 'fin du programme

et voila :D ma led clignote 5 fois quand j'appuie sur 3 et s'arrête :wink: (bon n'oubliez pas d'appuyer sur le bouton 3 de la fenêtre "simulation" sinon rien ne se passe !! z'êtes abrutis ou quoi.. :D )
La prochaine fois, on verra comment on met ce montage en schéma... 8)

tg2.jpg
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar hotamp le 29 Juil 2009 22:37

et bé en tout cas je suis tres fier d'avoir une tete de gong comme notre clajucla sur TG ! c'est pédagogique , ludique , tres bien amener et gratuit !
merci et bravo ! eeeet je te prie de continuer !! :wink:
Vous voulez des PCB ? Demandez à TG.
Avatar de l’utilisateur
hotamp
LEGENDE DU PERIGORD
 
Messages: 10867
Enregistré le: 01 Aoû 2006 09:58
Localisation: Périgueux

Messagepar clajucla le 30 Juil 2009 18:51

Merci Hotamp, je t'enverrais une terrine faite par la reine mère

Allez, un peu de concret...on va schématiser l'exo précédent sinon on se rend pas bien compte...
on aura donc: un bouton poussoir, une led, un Picaxe 08M...

voila ce que Picaxe nous conseille pour implanter un bouton poussoir (ou équivalent):
picaxe3.jpg
picaxe3.jpg (17.69 Kio) Vu 1935 fois
dans ce cas l'entrée du PinX est OFF et ON quand on appuie sur le poussoir

pic10.jpg
pic10.jpg (4.93 Kio) Vu 1934 fois
dans ce cas l'entrée du PinX est ON et OFF quand on appuie sur le poussoir.
Dans notre cas, on se servira du premier schéma car la led ne doit pas s'allumer tant qu'on appuie pas sur le bouton...
Pour implanter une led, voila la marche à suivre:
led1.jpg
led1.jpg (4.95 Kio) Vu 1935 fois


ce qui nous donne ce schéma, on reprend donc la dernière simulation avec une commande en pin3 et la Led en pin2
tutograph.jpg
tutograph.jpg (37 Kio) Vu 1934 fois


Regardez moi ces tête ébahies :shock: c'est quoi ce merdier de CT1, RI et R2 ???
et ben ca, on le mettra dans TOUS les montages, ce qui nous permettra de reprogrammer la bestiole directement dans le jack femelle CT1 sans avoir à démonter un rack, une pédale ou ce que vous voulez pour avoir accès au Picaxe...
En parlant de ca, voilà les 2 modèles de câbles qui relieront votre PC à votre montage:
25215-opt.jpg
Câble de téléchargement port série
25215-opt.jpg (4.4 Kio) Vu 1934 fois

25216-opt.jpg
Câble de téléchargement port USB
25216-opt.jpg (3.58 Kio) Vu 1932 fois

picaxe1.jpg
picaxe1.jpg (20.58 Kio) Vu 1928 fois


C'est tout pour aujourd'hui :wink: Ah oui, juste le switch Bounce...Les microcontrolleurs travaillent tellement vite que quand on appuie 1 fois sur un bouton, le temps que la mécanique revienne, ils prennent en compte 2 ou 3 fois l'ordre :( c'est vraiment des bourrins.
Pour pallier à ca, une astuce: on ajoute dans la programmation une "PAUSE 100" après une commande "if.." Et hop, du coup, en levrette le processeur :mdr2:

La j'en ai marre et je vais me taper une absinthe, le prochain coup on va rigoler avec un potard ou une LDR en utilisant les entrées analogiques... :trink4:
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar clajucla le 01 Aoû 2009 13:28

Pour faire mumuse, on peut prototyper et acheter une platine d'essai par exemple chez Gotronic:
"Starter pack pour PICAXE-08M" :
à 13 euros 70 sans câble mais livré avec un Picaxe,
ou
"circuit d'essais pour PICAXE-08M": un circuit d'essai plus simple mais livré sans Picaxe
http://www.gotronic.fr/catalog/micro/mi ... odules.htm

Bon tout ca pour dire un truc hyper important sur ces platines, on trouve un jumper switch que l'on doit absolument mettre dans une position quand on charge à partir de PC, et le mettre dans l'autre position quand on utilise le circuit:
pix1.jpg
pix1.jpg (47.1 Kio) Vu 1896 fois

pix2.jpg
pix2.jpg (8.92 Kio) Vu 1896 fois
pix3.jpg
pix3.jpg (9.14 Kio) Vu 1894 fois

ou alors comme on est bien branchés DIY, l'excellent article sur Electronique Pratique N° 340- Juil/Août 2009 avec schéma et typon pour se faire la méga platine d'essais.
Pour la lisibilité du schéma du post précédent, je n'ai pas implanté ce jumper (qui peut être d'ailleurs un slide ou toggle switch)
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar muad'dib le 01 Aoû 2009 19:55

Euh, en fait le programmateur se résume à une prise jack et deux résistances ???
Si c'est le cas c'est vraiment le pied !!!! :shock: :shock:
Ohm, Sweet Ohm
Avatar de l’utilisateur
muad'dib
GRAND SORCIER DIY
 
Messages: 2310
Enregistré le: 27 Oct 2006 22:30
Localisation: Metz

Messagepar clajucla le 01 Aoû 2009 23:34

exact :D tu balances ton programme via le soft de ton PC à ton PCB, tu changes le jumper (ou le switch ) de place et roulez...
Je suis Russe, il faut que tu me cèdes!
Avatar de l’utilisateur
clajucla
MODERATEUR PANDA
 
Messages: 1459
Enregistré le: 07 Avr 2007 14:29
Localisation: Lorraine

Messagepar shaddo le 01 Aoû 2009 23:49

Bravo Clajucla, c'est vraiment intéressant. :bravo:
Tu peux faire un looper 8 voies maintenant que tu sais allumer des LEDs avec un PICAXE ... steuplé ! :P
Le Docteur Posture a dit : "... si la folie se résumait à ce que l'on rencontre sur ce forum, alors le monde irait bien mieux !"
#JeSuisCharlie
Avatar de l’utilisateur
shaddo
PLAYBOY VINTAGE
 
Messages: 12569
Enregistré le: 06 Aoû 2004 16:38
Localisation: Copacabana (Lorraine)

Suivante

Retourner vers THEORIE, TECHNOLOGIE ET OUTILLAGE

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité