IR, suivi d’une tourelle avec PIC et C (6 / 9 étapes)

Étape 6: programmation

Le codage pour cela est assez simple. Il y a seulement quatre méthodes pour écrire. Nous aurons tous la négociation de signaux I2C de la bibliothèque de I2C que nous générerons avec le configurateur de Code de Microchip.

  1. initWiiCam() ; Nécessaire seulement une fois pour configurer la caméra
  2. readWiiCam() ; Demande à la caméra pour la position de la balise
  3. updatePan() ; Met à jour la casserole si nécessaire de centrer le phare sur l’axe des X
  4. updateTilt() ; Met à jour l’inclinaison si nécessaire de centrer le phare sur l’axe Y

Installer MPLABX

Nous allons donc commencer. Tout d’abord, téléchargez et installez MPLABX à puce : http://www.microchip.com/pagehandler/en-us/family/...

Créez un projet

Une fois l’installation terminée, lancez-le et cliquez sur fichier > nouveau projet

Cela vous mènera à travers un Assistant pour configurer notre projet.

  1. Choisissez projet

    • Catégories : Micropuce intégrée
    • : Projets Standalone
  2. Sélectionnez le périphérique
    • Famille : Milieu de gamme 8-bit MCU (PIC12/16/MCP)
    • Dispositif : PIC16F1503
  3. Sélectionnez en-tête
    • -En-tête : Aucun (ou AC244051 * si vous l’avez et veulent l’utiliser)
      * Si vous utilisez un en-tête de débogage, vous devez générer le projet pour le débogage pour programmer l’en-tête
  4. Sélectionnez l’outil
    • PICkit3 ou outil compatible
  5. Sélectionnez le compilateur
    • XC8
  6. Sélectionnez le projet et le dossier
    • Nom : tout ce que vous voulez (ex. IR_Tracking_Turret)
    • Dossier : par défaut
    • Codage : ISO-8859-1
    • Localisation : par défaut

Bon, le projet créé. Maintenant nous allons générer des fichiers source.

Configurateur de Microchip Code (MCC)

Il s’agit d’un bel outil à MPLABX qui vous permet de sélectionner et de configurer les périphériques comme les horloges, les générateurs PWM et communication I2C. Une fois votre projet créé allez dans Outils > Embedded > Microchip Code Configuratior

Un écran apparaîtra avec le brochage des puce et NIP affectations sur les périphériques de droite et sélectionnés et disponibles sur la gauche. Au centre supérieur de he, il y aura un bouton [générer du Code]. En cliquant sur elle va générer le code et la configuration que vous sélectionnez dans le tableau. Il n’y a aucun fichier de code source encore, MCC vous demandera si vous voulez générer un fichier main.c - Cliquez sur Oui. Nous aurons besoin les périphériques suivants configurés pour notre application :

  • TMR1 - 16-bit timer
  • TMR2 - 8-bit timer
  • PWM2 - PWM sur broche 7
  • PWM3 - PWM sur broche 11
  • MSSP - maître I2C, SDA sur broche 9, SCL sur la broche 10

Dans la liste en bas à droite, recherchez et double-cliquez les périphériques ci-dessus pour ajouter les à la liste des périphériques sélectionnés en haut à gauche. Une fois que vous les avez tous, nous allons générer un code de support périphérique.

Système

  • Sélectionnez horloge système : INTOSC
  • Sélection de fréquence > horloge interne : 16MHz_HF
  • CONFIG1 > fonction broche MCLR sélectionnez [MCLRE OFF]

TMR1

  • Source de l’horloge : FOSC/4
  • Prédiviseur : minuterie de 1:8
  • Période : 100 ms
  • Activer les interruptions : vérifier
  • Taux de fonction de rappel : 30 x (3P) - délai d’attente pour recentrer la tourelle

TMR2

  • Prédiviseur: 1: 64
  • Période de minuterie : 4ms
  • Démarrer la minuterie après initialisation : vérifier
  • Activez le Timer Interrupt : vérifier
  • Taux de fonction de rappel: 5 fois (20 ms) - pour la conduite des servos, plupart des servos collaborera également avec une période de 12ms.

PWM2, PWM3

  • Activez PWM : vérifier
  • Activer la sortie Pin PWM : vérifier
  • Polarité PWM : Inversé (période 4ms)

MSSP::I2C

  • MASTER Enable I2C : vérifié
  • Activer la sortie de Bus SM: vérifié
  • Slew Rate Control : Grande vitesse SDA
  • Indisponibilité : 100 ns
  • Fréquence d’horloge I2C : 400KHz
  • Adresse de l’esclave: 7 bits
  • Taille du tampon de lecture : 10 - selon le nombre d’octets vous attendez en retour de l’appareil on parle, dans ce cas, pour la configuration la plus simple, le camerawill de Pixart retourner 10 octets.
  • Écrire la taille de mémoire tampon: 2 - nous allons parler à la caméra de Pixart 2 octets à la fois.

Ajoutez votre propre

Maintenant la plupart du code pour le projet est généré, mais nous avons encore de déclarer certaines variables et les constantes et ajouter du code supplémentaire, dont quatre les méthodes mentionnées ci-dessus.

main.c

Trouvez cette ligne :

Ajoutez le code suivant sous l’il

Activer les interruptions et ajoutez le code suivant à la fonction principale :

TMR2.c

Servos utilisent une impulsion de.5 à 2,5 ms dans une période de 20 ms pour déterminer leur position de la cible. Notre configuration donne TImer2 un 4ms période, ce qui est excellent pour ce qui nous donne beaucoup de précision au sein de cet usage de la période, mais trop court pour servo. Donc, nous utilisons une fonction de rappel qui s’exécute à chaque fois 5e Timer2 déborde. Nous gardons PWM désactivé jusqu'à la 5e passe, ce qui nous donne une période de 20 ms avec une durée d’impulsion de précision supérieur. Cela nous donne un mouvement dans le suivi et la meilleure réponse aux petits mouvements. Descendre aux fonctions Interrupt Service Routine (ISR) et de rappel et modifiez-les à regarder comme suit.

TMR1.c

J’ai juste ajouté ceci à recentrer la tourelle si il ne voit rien pendant 3 secondes. Nous devons déclarer la variable CountCallBack comme mondial. Trouvez cette ligne :

Ajouter ligne ths situé en dessous :

Maintenant descendre aux fonctions Interrupt Service Routine (ISR) et de rappel et modifiez-les à regarder comme suit.

TMR1.h

Trouvez cette ligne

Ajoutez cette ligne située en dessous

Maintenant, tout le code est en place et w peut construire et programmer l’appareil.

Nettoyer et construire le projet, puis Make et programmateur. Le PIC est prêt à brancher dans la prise sur le circuit imprimé.

Articles Liés

Construction d’une tourelle de Portal avec audio mouvement contrôlé et éclairage

Construction d’une tourelle de Portal avec audio mouvement contrôlé et éclairage

dans ce Instructable je vais vous montrer comment je suis allé sur la création de ma propre vie taille parler portail tourelle de bout en bout. Il s'agit d'une profondeur assez en projet qui permettra de couvrir toutes les étapes de construction et t
Suivi d’une Source de lumière avec un actionneur

Suivi d’une Source de lumière avec un actionneur

.. .ou peut-être, elle devrait s'appeler « À l'aide d'une ancienne cellule solaire d'une lumière de jardin complètement corrodée comme un capteur de lumière ». :)Dans ce instructable, je vais construire sur mon précédent et vous montrer comment vous
Amusez-vous avec PIC Assembly - Episode 22

Amusez-vous avec PIC Assembly - Episode 22

Le dicton est que « la nécessité est la mère de l'invention ». En réalité, cependant, il y a beaucoup de « mères » de l'invention. Mon préféré est « paresse » mais parfois trucs obtient inventé juste parce que c'est un plaisir au défi de comprendre u
Amusez-vous avec PIC Assembly - épisode 23

Amusez-vous avec PIC Assembly - épisode 23

Comme j'ai mentionné dans les épisodes précédents, je suis bénévole au centre de recyclage local à but non lucratif. Certains des trucs électronique qui obtient déposa de genre de fait me sentent comme un archéologue de la technologie et j'ai un fant
Auto-tourelle avec Pixy et Nerf Gun

Auto-tourelle avec Pixy et Nerf Gun

Avec le projet de la tourelle-Auto, vous pouvez automatiquement traquer et tirer sur vos ennemis ! Ce projet utilise un module de caméra Pixy, une base RobotGeek pan/tilt, un pistolet à fléchettes mousse et un Geekduino pour coordonner les composants
Construire une tourelle de Portal d’un œuf Kinder

Construire une tourelle de Portal d’un œuf Kinder

fois ma copine réussi Portal 1, tous les deux nous imploraient d'en avoir un de ces tourelles mignons, peu sur nos bureaux. Nous sommes arrivés avec des œufs Kinder (http://en.wikipedia.org/wiki/Kinder_Surprise ) parce qu'ils ont à peu près parfaitem
Amusez-vous avec PIC Assembly - Episode 20

Amusez-vous avec PIC Assembly - Episode 20

Dans l'Episode 19 que je l'ai mentionné en passant qu'il serait assez facile au port de la conception à la 16F1837 plus moderne que nous avons utilisé dans l'épisode 13 pour l'affichage de graphiques. Qui pourrait nous sortir de devoir copier les cha
Amusez-vous avec PIC Assembly - épisode 3

Amusez-vous avec PIC Assembly - épisode 3

Après que j'avais été jouer avec les photos pendant un certain temps j'ai remarqué que le web était plein de conseils de petite interface qui pourraient faire une variété de tâches intéressantes. Mieux encore, ils étaient moins cher que d'essayer de
Amusez-vous avec PIC Assembly - Episode 7

Amusez-vous avec PIC Assembly - Episode 7

Avez-vous jamais souhaité que vous aviez un réveil qui vous me réveillais toutes les quelques minutes alors que vous pourriez faire quelque chose de rapide et puis se pour rendormir ? Non, moi ou l'autre. Mais dans le monde du microcontrôleur, une te
Amusez-vous avec PIC Assembly - Episode 4

Amusez-vous avec PIC Assembly - Episode 4

Comme j'ai mentionné dans l'épisode 3, j'ai acheté une petite variété de modules pour interfacer les PICs. Un de ceux-ci est un Bluetooth Module. Durant toutes ces années que j'avais connu sur la technologie Bluetooth, j'ai avais jamais réellement vé
Amusez-vous avec PIC Assembly - Episode 2

Amusez-vous avec PIC Assembly - Episode 2

Bien Episode 1 a été un succès retentissant parce que quelqu'un d'autre que moi en fait le regarda. Alors allons-y avec l'épisode 2. Dans ce Instructable nous recherchons quelques données réelles d'entrée pour envoyer à l'écran LCD de 1602 que nous a
Amusez-vous avec PIC Assembly - Episode 21

Amusez-vous avec PIC Assembly - Episode 21

Je ne suis pas un voyageur du monde, mais j'ai été à un certain nombre d'endroits qui diffèrent radicalement de température et d'humidité. Je n'aime pas qu'on en dise, « chaleur sèche » ne veut rien dire lorsque le thermomètre est supérieure à 110 de
Amusez-vous avec PIC Assembly - Episode 5

Amusez-vous avec PIC Assembly - Episode 5

Comme j'ai mentionné dans l'épisode 4, c'est la continuation de notre exploration du module Bluetooth. Dans cet épisode, nous allons configurer le PIC à conduire une petite voiture et steer en utilisant Bluetooth commandes envoyés à partir d'un télép
Amusez-vous avec PIC Assembly - Episode 18

Amusez-vous avec PIC Assembly - Episode 18

Mots à la mode et les slogans sont toujours être générés, principalement dans les domaines de la technologie ou de la politique. Dilbert même reçu la tendance avec « Buzzword Bingo » en de la 90. Une des phrases actuellement chauds est « Internet des