Bonjour,
J'ai eu pendant bien longtemp comme projet de contôler ma webcam a distance. J'ai d'abord essayer de controller des moteur pas à pas sur port parallel... mauvaise idée et pas très pratique.
Ensuite, ...en faite, apres bientôt 6 mois (faut dire que j'avais presque laissé tombé), j'ai finalement acheter 2 servos moteur. Quoi de mieux pour controller ma webcam...grace au positionement par impulsions je peux lui assigner des "presets" personalisé...super me suis-je dit.
Gros probleme, comment les controller ??... et voila la merveille du monde informatique : le pic basic !
Et c'est ainsi que je vous présente : LE servo POD !
Basé principalement sur des Pic12C50x (8 ou 9) (ou 12f50x). Le servo pod ressoit des données par une liaison serie. Tout d'abord un ID qui l'identifie lui-même, et ensuite une position de 1 a 255 qui corespond a la position du servo.
Il dispose aussi 2 entres "joystick" qui lui permet d'etre controller de maniere matériel.
Un bouton fait en sorte qu'il est en mode normal ou joystick.
Un I/O est libre pour bientot ajouter l'ouverture et la fermeture d'un petit crayon laser en mode joystick.
Pour mon application, j'utilise 2 servo pod, donc 2 pic12c509a.
le schema, en fait, le typon...qui sera en fait sur plaque a trou... ressemble a ca :
les composent sont très simple:
Resistances : 4.7k ou 10k , pour la liaison serie : 22k
ICs : pic12c509a
Le premier connecteur du haut à gauche est pour la lisaison serie.
Le deuxieme connecteur en dessou est le branchement 5v(2) et Masse(1).
Le connecteur du dessou est pour choirsir le mode
Le grand connecteur du haut est la lisaison avec un joystick simple 4 boutons.
Biensur 2 connecteur 3 broche pour les 2 servos.
Le code de chaque pods varie mais a pour base, ceci :
Code :
- '****************************************************************
- '* Name : SERVOPOD.BAS *
- '* Author : André Quirion *
- '* Notice : Copyright (c) 2005 *
- '* : All Rights Reserved *
- '* Date : 31-03-2005 *
- '* Version : 1.0 *
- '****************************************************************
- include "modedefs.bas"
- 'Initialisation des variable, constante
- position var byte 'Variable de positionement
- ID var byte 'ID du ServoPod
- servo con 4 'Sortie du servo
- serie con 1 'Entré serie
- mode con 5 'Mode joystick/normal
- joyUp con 2 'Entré joystick Up
- joyDn con 3 'Entré joystick Down
- 'Initialisation des valeurs
- ID = 1 'ID unique du ServoPod
- position = 125 'Position centrale du servo au demarage
- 'Initialisation des impulsions
- low servo 'Assure que les impulsions son positives
- debut:
- pulsout servo,position 'Impulsions envoyer au servo
-
- if mode = 0 then 'Si en mode joystick
- goto joystick 'Executer les instruction joystick
- endif
-
- serin serie,N2400,15,fin,[ID],position 'Attente des données serie pour le bon ID
- fin:
- goto debut 'Retour au debut des instruction
-
- joystick:
- if joyUp = 0 then 'Si le bouton Up est activé
- position = position + 1 'Augmenter la position du servo
- else 'Sinom
- if joyDn = 0 then 'Si le bouton Down est activé
- position = position - 1 'Diminuer la position du servo
- endif
- endif
- goto debut 'Retour au debut des instruction
- end
|
fichier hex :
http://ticpu.no-ip.com/andre/servoPod.hex
Tout ce qu'il faut changer dans le code pour différencier les Servo Pod est le ID.
Je vais bientot commencer a construire tout ca et je vous reviendrai avec des photo et video.
Message édité par andreq le 31-03-2005 à 23:40:44