Les projets basés sur les microcontrôleurs PIC

I. PRESENTATION

Les PIC sont des petits microcontrôleurs fabriqués par Microchip.

Ceux-ci se déclinent en plusieurs gammes.

Je me limiterai aux PIC12F629, PIC12F675 et 12F683 qui, bien que ne comportant que 8 pattes, permettent déjà de faire des petites merveilles.

Les programmes sont développés en langage "C".

En effet, je connais déjà le langage assembleur pour les micros 51 INTEL et l'assembleur pour les micros 32 bits MOTOROLA (dérivés du 68000) et je ne voulais pas m'encombrer l'esprit avec l'assembleur PIC, même si je sais qu'il est parfois nécessaire de jeter un oeil sur l'assembleur généré par le compilateur "C".

Les projets PIC ne sont pas dans la rubrique électronique car l'intégration de ces microcontrôleurs est telle que la partie électronique en est grandement simplifiée.

ATTENTION:

Toute utilisation commerciale des montages et programmes HEX présentés sur ce site est strictement interdite.

Note à l'attention des petits malins qui outrepasseraient cette restriction:

Tous mes programmes intègrent un espion. Il s'agit d'une signature générée sur une patte du PIC quand le stimuli qui va bien est appliqué sur une autre patte à l'instant qui va bien. Inutile de désassembler le code à partir du fichier HEX: je ne place pas cet espion dans la phase d'initialisation. Et si quelqu'un est capable de casser ma méthode de signature, c'est qu'il est assez compétent pour s'écrire le programme lui-même ! Cet espion ne perturbe absolument pas le fonctionnement des montages (discrétion...).

II. LES PROJETS A BASE DE PIC

II.1 UNISERCOM

UNISERCOM signifie UNIversal SERvo COMmand pour les anglo-saxons ou COMmande UNIverselle de SERvo pour les francophones.

Ce petit montage, construit autour d'un PIC12F675, permet de commander un servo standard de plusieurs manières et présente les caractéristiques suivantes:

Exemples d'utilisations:

Bref, il s'agit bien d'une COMmande UNIverselle de SERvo standard commandé en PPM.

Pour ceux qui n'auraient pas trouvé, l'accès à la page consacrée à UNISERCOM, c'est ici.

 

II.2 POLYTOR

Possédant un ensemble RC 4 voies proportionnelles Skysport 4 de Robbe-Futaba et n'utilisant que 2 voies sur les 4 pour faire naviguer mon modèle (Avant/Arrière et Gauche/Droite), il me restait 2 voies proportionnelles pour commander toutes les animations.

L'idée consiste donc à remplacer un des potentiomètres disponibles (ou les 2) par des résistances qui sont commutées par une série d'interrupteurs. Chaque interrupteur active ou désactive une animation.

Côté récepteur, est connecté un petit boîtier électronique qui décode les commandes envoyées par l'émetteur et pilote les animations.

Ce système est disponible chez la plupart des fabriquants d'ensembles RC :

Malheureusement, ces systèmes ne sont disponibles que sur les radios "haut de gamme" et coûtent la bagatelle de plusieurs centaines d'€uros.

Etant très satisfait du fonctionnement de mon ensemble RC Skysport 4, je me suis décidé à concevoir un système équivalent et d'un coût beaucoup plus abordable: le projet POLYTOR.

Depuis la version  2.0 du logiciel embarqué, POLYTOR est en mesure de s'adapter à d'autres ensembles RC.

Pour ceux qui n'auraient pas trouvé, l'accès à la page consacrée à POLYTOR, c'est ici.

 

II.2 P&B(Phares & Balises)

Le montage P&B (Phares & Balises) construit autour d'un PIC12F675 ou PIC12F629 permet de commander la séquence d'allumage/extinction du feu d'un phare ou d'une balise. Il est idéal pour cadencer le feu de vos phares et balises préférés.

La séquence étant spécifique à chaque phare ou balise, celle-ci est programmée par la liaison série d'un PC (port COM) en utilisant un simple terminal (programme HyperTerminal de Window$ ou Minicom de Linux). La séquence est alors mémorisée dans la mémoire EEPROM du PIC. Ainsi, le PIC conserve les paramètres de la séquence après une coupure d'alimentation.

Pour ceux qui n'auraient pas trouvé, l'accès à la page consacrée à P&B, c'est ici.

II.3 SIMSERCOM

SIMSERCOM signifie SIMple SERvo COMmand pour les anglo-saxons ou COMmande de SERvo SIMple pour les francophones.

SIMSERCOM, construit autour d'un PIC12F629 ou 12F675, est une version ultra-simplifiée (5 composants : IC1, C1, R1, D1 et D2) du montage UNISERCOM tout en conservant 2 des 3 modes de fonctionnement de ce dernier.

UNISERCOM est assez encombrant à cause des 3 résistances ajustables qui permettent de faire les différents réglages.

SIMSERCOM se paramètre à l'aide d'un PC et d'une liaison série RS232 ultra-simpliste, ce qui permet d'obtenir un circuit imprimé de 15 x 25 mm.

UTILITAIRE DE PARAMETRAGE DE SIMSERCOM

Le programme PC (95, 98, XP, VISTA) permettant d'effectuer très facilement les réglages de SIMSERCOM.

Pour ceux qui n'auraient pas trouvé, l'accès à la page consacrée à SIMSERCOM, c'est ici.

 

II.4 TRISERCOM

TRISERCOM signifie TRIple SERvo COMmand pour les anglo-saxons ou COMmande de SERvo TRIple pour les francophones.

TRISERCOM, construit autour d'un PIC12F683, est une version améliorée du montage SIMSERCOM : il permet de séquencer non pas 1, mais 3 servos.

TRISERCOM se paramètre à l'aide d'un PC et d'une liaison série RS232 ultra-simpliste, ce qui permet d'obtenir un circuit imprimé de 20 x 30 mm.

Circuit imprimé de TRISERCOMRéalisation de TRISERCOM

CARACTERISTIQUES:

- Tout comme SIMSERCOM, la commande de TRISERCOM peut être soit un simple interrupteur, soit une sortie TOR ou encore une sortie "voie" d'un récepteur RC,
- Les positions extrêmes et la vitesse des 3 servos se paramètrent de manière indépendante,
- Le 1er servo démarre dès que l'ordre de commande est reçu,
- Le 2e servo démarre immédiatement ou dès que le 1er servo a atteint une certaine course,
- Le 3e servo démarre immédiatement ou dès que le 1er ou le 2e
servo a atteint une certaine course,
- Le seuil de démarrage des servos dans l'autre direction est paramétrable de manière indépendante (les seuils peuvent être différents),
- En résumé, chaque servo peut démarrer immédiatement ou dès qu'un des autres servos a atteint une certaine course, et cela, dans les 2 directions.

Exemples d'utilisation:

1) TRISERCOM commandé par une voie du récepteur RC gérant le train d'atterrisage d'hélicoptère de type Airwolf :
Hélico Airwolf
Image d'illustration extraite du clip de Diddy - Dirty Money -  Coming Home ft. Skylar Grey.

- Dès que l'impulsion de la voie passe au dessus de la valeur du neutre (1,5ms), TRISERCOM démarre le servo 1,
- Dès que le servo 1 a atteint une certaine course (seuil1), le servo 2 démarre, le servo 1 continue sa course,
- Dès que le servo 1 a atteint une certaine course (seuil2), le servo 3 démarre, les servo 1 et servo 2 continuent leur course,
- Chaque servo s'arrête dès qu'il a atteint sa position extrême programmée.

- Dès que l'impulsion de la voie passe au dessous de la valeur du neutre (1,5ms), TRISERCOM démarre le servo 2,
- Dès que le servo 2 a atteint une certaine course (seuil1), le servo 1 démarre, le servo 2 continue sa course,
- Dès que le servo 2 a atteint une certaine course (seuil2), le servo 3 démarre, les servo 1 et servo 3 continuent leur course,
- Chaque servo s'arrête dès qu'il a atteint sa position extrême programmée.

TRISERCOM permet de simuler les différences de répartition de pression dans les circuits hydrauliques qui font que les 3 trains ne sortent, ni ne rentrent en même temps.
La programmation de cette séquence est détaillée dans le dossier PDF de TRISERCOM.

VIDEO ILLUSTRANT LA SEQUENCE:

Sur la droite, la configuration correspondante de TRISERCOM affichée à l'aide de "TeraTerm", un terminal sous Window$.
La commande de l'émetteur a 2 positions A et B et peut être:
  . Un interrupteur à 2 positions sur une voie Tout-Ou-Rien (Ex: Gear),
  .
Un manche sur une voie Proportionnelle: position A=sous  le neutre, position B=au-dessus du neutre.

On y voit pour chaque servo: (Servo N°1, N°2 et N°3)
- La position extrême associée à la commande "A" en µs,
- La position extrême associée à la commande "B" en µs,
- Le critère de démarrage "T" pour le sens A->B:

  . 0=départ immédiat,
  . sinon, N° d'un des autres servos,

- Le seuil "C" de démarrage que doit atteindre le servo qui sert de critère,
- Le critère de démarrage "H" pour le sens B->A:
  . 0=départ immédiat,
  . sinon, N° d'un des autres servos,
- Le seuil "D" de démarrage que doit atteindre le servo qui sert de critère.

Les vitesses pour le sens A->B ("S") et pour le sens B->A ("V") de chaque servo n'apparaissent pas sur cette copie d'écran.

Notez à la fin, la commande "R" qui permet d'enRengistrer la configuration dans la mémoire de TRISERCOM.
Configuration à l'aide d'un simple terminal

2) TRISERCOM commandé par une sortie multi-switch (TOR) gérant la sortie des bittards d'un supply:

Bittards arrières de supply
Crédit photo: Hunier83

Note: Dans cette utilisation, la sortie gérant le servo 3 n'est pas utilisée.
- Dès que la sortie TOR est activée, le servo 1 démarre et provoque le sortie verticale des bittards,
- Dès que le servo 1 atteint une certaine course (seuil 1), le servo 2 provoquant la rotation des bittards démarre,
le servo 1 continue sa course: les bittards montent tout en tournant,
- Chaque servo s'arrête dès qu'il a atteint sa position extrême programmée.

- Dès que la sortie TOR est désactivée, les servos 1 et 2 démarrent en même temps dans l'autre sens: les bittards descendent tout en tournant,
- Dès que le servo 2 atteint une certaine course (seuil 2), le servo 2 provoquant la rotation des bittards s'arrête,
le servo 1 continue sa course: les bittards continuent à descendre,
- Le servo 1 s'arrête dès qu'il a atteint sa position extrême programmée.

TRISERCOM évite l'utilisation de mécanique et d'électro-mécanique (réglage délicat des fins de course) dans les espaces réduits: TRISERCOM, 2 servos et un peu de tringlerie suffisent.


UTILITAIRE DE PARAMETRAGE DE TRISERCOM

Bientôt en ligne

Le programme PC (XP, VISTA, SEVEN) permettant d'effectuer très facilement les réglages de TRISERCOM.

Pour ceux qui n'auraient pas trouvé, l'accès à la page consacrée à TRISERCOM, c'est ici.


Retour Sommaire