Panneau de modération ]

[Pédago] Apprendre à programmer un PIC

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

[Pédago] Apprendre à programmer un PIC

Messagepar oca le 14 Nov 2007 17:19

Hello,

Voila un petit tuto sur la programmation des PIC.
Je poste cela dans la section débutant car on va tout reprendre depuis le début, mais c'est quand même pas un sujet trivial...
Je vais faire mon possible pour garder les choses le plus simple possible.



***************************************************************

Les PDF sont disponibles ici :

PARTIE I : http://picshell.ovh.org/pic/pic_introduction.pdf
PARTIE II : http://picshell.ovh.org/pic/pic_bouton_led.pdf

PARTIE III : exemples de programmation de pédaliers MIDI

http://picshell.ovh.org/pic/midi_intro.pdf
http://picshell.ovh.org/pic/midi.pdf

Les exemples de ce document sont disponibles ici :

http://picshell.ovh.org/pic/MIDI_TG.zip





***************************************************************


PARTIE I - Configuration

1) A QUOI ÇA SERT UN PIC ?

Et bien... a pas mal de choses, mais dans nos activités guitaristiques,
je ne vois que deux cas ou l'utilisation d'un PIC amène qqch...

- On veut faire du MIDI
- On veut pouvoir mémoriser des presets


Après, il y a des besoins qui vont découler de cela... par exemple, si on veut gérer des presets, il va bien falloir afficher les informations quelque part... mais n'allons pas trop vite ;)


2) COMMENT ÇA MARCHE UN PIC ?

Une fois que l'on a un PIC, on doit le programmer pour pouvoir en faire qqch...
ça tombe bien, c'est justement le but de ce tuto ;)

Pour pouvoir programmer le PIC, on va utiliser un langage qui s'appelle JAL et qui est
gratuit. On va aussi utiliser un simulateur qui s'appelle PicShell qui va nous permettre de tester
nos futures programmes.


3) INSTALLATION DES OUTILS :

INSTALLATION DE JAL

Avant toutes choses, il faut donc commencer par installer JAL.
Il faut télécharger le starterpack qui se trouve ici :

http://members.home.nl/b.vandam/lonely

Pour l'installer : copier le fichier dans c:\
puis dezipper le fichier, c'est tout.

Vous devez maintenant avoir un répertoire C:\PICjal avec plein de choses dedans...



INSTALLATION DE PICSHELL

Télécharger PICShell :
http://oca.memebot.com/picshell/#download

Copier le fichier .zip dans C:\
dezipper le fichier, vous devez avoir maintenant un répertoire c:\picshell


4) PRET A COMMENCER...

Voila... si vous êtes arriver jusque là, c'est un bon début... sinon, j'attends toutes vos questions relatives
à l'installation...

Envoyer aussi un message si vous avez réussi l'installation comme ça je sais quand continuer.

L'étape 5) est ici :
http://www.techniguitare.com/forum/view ... 543#103543
Modifié en dernier par oca le 20 Déc 2007 11:11, modifié 19 fois.
Avatar de l’utilisateur
oca
GRAND SORCIER SUISSE
 
Messages: 1110
Enregistré le: 14 Mar 2006 09:28
Localisation: Suisse

Messagepar shaddo le 14 Nov 2007 17:35

Attribution du label "Post-it" à ce sujet sans attendre une minute de plus ! :lol:

8) :D 8)
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)

Messagepar Darth Zo le 14 Nov 2007 20:41

Bon ...
"Le serveur à l'adresse members.home.nl met trop de temps à répondre."
Mais surement sommes nous 10 millions de techniguitaristes brillants à vouloir ce petit zip !
:wink:
http://www.ogre-music.com ... bon les tympans c'est fait... qu'est-ce que je pourrais bien casser maintenant ?
Darth Zo
Etamé jusqu'à  l'os
 
Messages: 120
Enregistré le: 26 Sep 2005 22:53
Localisation: 13

Messagepar memetique le 14 Nov 2007 22:06

Merci OCA

J'ai toujours voulu apprendre la programmation des PiC mais tout seul c'était la galère, enfin un guide :squate:
Faut-il extraire les librairies également ?
Avatar de l’utilisateur
memetique
GRAND SORCIER DIY
 
Messages: 703
Enregistré le: 28 Oct 2005 19:02
Localisation: Pas loin de chez Shaddo

Messagepar fortyniner le 14 Nov 2007 22:15

Je squatte itou ... pas de problème avec le serveur .nl

Je décompresse, à l'instant :lol:
Avatar de l’utilisateur
fortyniner
ELECTRON LIBRE
 
Messages: 553
Enregistré le: 29 Sep 2006 13:40
Localisation: Tournai Belgique

Messagepar Francois1981 le 14 Nov 2007 23:40

A y est.... :D
Francois1981
COMPUTER WIZARD
 
Messages: 115
Enregistré le: 24 Mar 2005 22:19
Localisation: Pas de Calais

Messagepar hotamp le 14 Nov 2007 23:43

bon vous pensiez peu etre que j'allais laisser tomber oca comme une vieille chaussette !! loupé !!

Image

pour le support des pic 18f a 20broches mettre une barette secable

Image

pcb 90mm par 65mm

pcb (c) hotamp 2007 techniguitare.com

basé sur le le propic 2 et sur le schéma de tarvernier d'electronique pratique

http://www.tavernier-c.com/programmateur_de_pic.htm

le ttl qui n'est pas marqué sur le pcb c'est un 7406 / 07 ou 08 ( tampon inverseur ou non )
fonctionne avec icprog !!!

NOT TESTED !!!

allez je repond a la question " mais a quoi ca sert de me faire un prog ? "

a programmer des puce pour la console Wii et prendre 30euro pour 5 soudures
un bon site : www.eurasia.nu
Modifié en dernier par hotamp le 17 Nov 2007 19:11, modifié 2 fois.
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 bill_baroud le 14 Nov 2007 23:46

Oui, quel intérêt de fabriquer un prog, ca coûte pas moins cher d'en acheter un ?
En plus, j'ai pas de port parallèle sur mon portable :whistle:
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 hotamp le 14 Nov 2007 23:52

Oui, quel intérêt de fabriquer un prog, ca coûte pas moins cher d'en acheter un ?
En plus, j'ai pas de port parallèle sur mon portable


et ben achete en un sur le port usb ( attention c'est du serial ->usb ) donc assez lent en programmation

et oh ! ca marche sur n'importe quel vieux pcul meme P90 :)
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 bill_baroud le 14 Nov 2007 23:59

Oui mais je vais me faire chier à trimballer une tour quand je peux trimballer mon (ultra 8) ) portable...
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 hotamp le 15 Nov 2007 00:03

c'est pas bill baroud qui faut t'apeler c'est bill le geek :lol:

t'efface le HS kan tu veux :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 switch le 15 Nov 2007 00:05

c'est envisageable pour des novices complets en informatique ou pas du tout ?
Avatar de l’utilisateur
switch
Etamé jusqu'à  l'os
 
Messages: 194
Enregistré le: 19 Jan 2005 21:22

Messagepar bill_baroud le 15 Nov 2007 00:41

@hotamp : regarde ce qu'il y a d'écris sous mon pseudo :whistle: :lol:


@switch : et bien, c'est plutôt de la logique (au sens électronique du terme, et mathématique) qu'il faut.
Programmer un PIC ne nécessite pas d'être un guru de l'ordinateur, mais ca aide, un PIC est en quelques sorte un ordinateur très simplifié, les concepts sont donc "normalement" assimilés pour un expert en informatique.
Je mets des guillemets, parcequ'il ai aisé de trouver de nos jours des programmeurs (aller trollons) utilisant JAVA (par exemple) qui ont aucune idée du fonctionnement de leur machine. Ce qui est pour moi parfaitement aberrant... on peut piloter une voiture sans connaître la mécanique, mais c'est une étape nécessaire pour être un "bon" pilote. Enfin c'est mon avis.
par contre : pour apprendre la mécanique, pas besoin d'être pilote :D

Quand on veux, on peux... ;)
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 oca le 15 Nov 2007 20:52

switch a écrit:c'est envisageable pour des novices complets en informatique ou pas du tout ?

Oui, je vais tout reprendre de 0... et comme d'ab dans la section débutant, vous pourrez poser toutes vos questions... je prendrai le temps qu'il faudra
pour y répondre...
A+

EDIT:
memetique a écrit:Faut-il extraire les librairies également ?

Il faut juste dezipper le fichier picshell1_6.zip dans C:\ (si cela marche tu dois avoir un repertoir c:\picshell après avoir dezipper le fichier)
et le fichier starterpack.zip aussi dans c:\ ( ce qui produit un rep. c:\PICjal)
si vous avez ces deux rep (c:\picshell et c:\PICjal) vous ête tout bon pour la suite.
A+

EDIT: 5) GÉNÉRALITÉ SUR LES PICS
Avant de faire un premier programme, voici quelques informations générales...
Tout d'abord il n'y a pas un PIC, mais des PICs, plein de PICs différents...
Ils ont des noms comme 16F628, 16F877, 12F645 etc...
Pour le moment, on va juste dire qu'ils ont plus ou moins de pins et que certains
savent faire des choses "spéciales" comme de la conversion analogique-digital ou des liaisons série,
mais on y reviendra plus tard... longuement...
Le programme :
Si un prend un composant comme une LED par exemple, et bien cette LED a un comportement bien définit...
Si la tension entre ces deux pins est suffisante, elle s'allume, sinon, elle ne s'allume pas...
Avec un PIC, c'est différent, il n'a pas de comportement de base...
On doit lui dire quoi faire à l'aide d'un programme... Mais à quoi sert donc ce programme ?
Des entrées... et des sorties :
Le PIC à plein de pins... certaines vont être utilisées comme de entrées et d'autre comme des sorties.
Une entrée, c'est typiquement un bouton, une sortie, c'est typiquement une LED.
Image
Le but de nos programmes, c'est uniquement de faire le liens entre les entrées et les sorties...
Autrement dit, de pouvoir dire au PIC des choses du genre :
Si je presse sur le bouton qui est sur l'entrée 1, je veux que tu allumes le LED qui est sur la sortie 3
Mettre le programme dans le PIC :
Le pic veut un programme sous la forme d'un fichier .hex
Image
un fichier .hex qui allume un led en fonction d'un bouton, ça ressemble a ça ...
Code: Tout sélectionner
:020000040000FA
:100000000A128A1104280000A4010A282408860084
:1000100008000628A1018B01A20125289F17813025
:100020008312A2000330A300080083169F01051469
:1000300085140515851585160914891409150E28CA
:100040001528073083169F000800152035284030FA
:100050008316990018150800272083168C120C129D
:10006000981690308312980008002C204028A41382
:1000700024088600831686130800831606170800D6
:1000800037203D2021208316051486118312051C7C
:0E0090004C28A41506204628A4110620462858
:02400E00323F3F
:00000001FF

Je ne sais pas si ça vous parle beaucoup, mais moi, je me vois mal écrire mes programmes sous cette forme ;)
On va donc utiliser un langage "plus lisible" qui va s'occuper de générer ce fichier .hex pour nous !
Il existe plusieurs langages qui peuvent faire cela. Nous, on va en utiliser un qui s'appelle JAL
Image
PS : j'utilise zimagez pour les images car c'est bien pratique, mais cette fois, je vais pas me faire avoir et tout perdre, je fais un pdf en même temps que ce sujet pour avoir une belle fiche à la fin !
A+

EDIT: 6) TEST DU COMPILATEUR
Dernière étape avant de pouvoir faire un petit programme, nous allons tester que notre installation fonctionne correctement, en compilant un petit programme de test, qui ne fait rien... (Il va juste nous permettre de vérifier que le compilateur fonctionne correctement !)
Voici le programme de test, il faut écrire ce programme dans un éditeur de text comme "Notepad" par exemple.
Ensuite, il faut créer un repertoire C:\workspace et enregister votre programme dans ce répertoire sous le nom test.jal
Voici maintenant le programme test.jal que vous devez tapper dans votre éditeur de text :
Code: Tout sélectionner
include 16f877_bert

C'est tout, ce programme de test ne fait qu'une seule ligne ! (il ne fait rien, mais il doit compiler...)
Il faut maintenant compiler ce programme. Aller dans le Menu "Démarrer" de windows et cliquer sur "Exécuter..." dans la petit fenêtre qui apparait, tapper cmd
Si tout ce passe bien, une fenêtre noir doit apparaître. Dans cette fenêtre, tapper la commande suivante :
Code: Tout sélectionner
C:\PICjal\JAL\Compiler\jalv2.exe -Wno-all -s C:\PICjal\JAL\Libraries C:\workspace\test.jal

Si tout se passe bien, vous devriez avoir le resultat suivant :
Code: Tout sélectionner
         jal 2.3 (compiled Jun 23 2007)
         generating p-code
         0 errors, 0 warnings
         302 tokens, 160443 chars; 4603 lines; 15 files
         generating PIC code pass 1
         generating PIC code pass 2
         writing result
         Code area: 58 of 8192 used
         Data area: 6 of 368 used
         Software stack available: 96 bytes
         Hardware stack depth 2 of 8

Et un fichier nommer test.hex doit maintenant exister dans votre répertoire c:\workspace (avec que quelques autres fichiers qui ne nous interesse pas pour le moment)
Si vous avez bien ce fichier, c'est que l'installation du compilateur est correct, et nous allons pouvoir passer à la suite.
Si vous avez de la peine à compiler votre fichier, voici une petite démo qui montre comment s'y prendre.
Petite démo du test :
http://picshell.ovh.org/demo/picdemo1.htm
La bonne nouvelle, c'est que nous n'utiliseront plus "Notepad" pour nos futures programmes.
Nous utiliserons par la suite PicShell, qui permet entre autre de compiler un programme simplement en pressant sur un bouton.
Avatar de l’utilisateur
oca
GRAND SORCIER SUISSE
 
Messages: 1110
Enregistré le: 14 Mar 2006 09:28
Localisation: Suisse

Messagepar memetique le 16 Nov 2007 21:30

Salut

J'ai du enlever l'extension .TXT au fichier créer dans NotePad et la ça va j'arrive au bon résultat. :)
Avatar de l’utilisateur
memetique
GRAND SORCIER DIY
 
Messages: 703
Enregistré le: 28 Oct 2005 19:02
Localisation: Pas loin de chez Shaddo

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é