Table des matières:

Environnement de développement du ghetto : 5 étapes
Environnement de développement du ghetto : 5 étapes

Vidéo: Environnement de développement du ghetto : 5 étapes

Vidéo: Environnement de développement du ghetto : 5 étapes
Vidéo: Lancement de la série de 4 formations gratuites en environnement et en développement durable 2024, Juillet
Anonim
Environnement de développement du ghetto
Environnement de développement du ghetto

Il y a quelque temps, j'ai publié une méthode "el cheapo" rapide et sale pour commencer à programmer les puces de la série Atmel AVR: Ghetto Programmer (version 1.0) Depuis lors, j'ai vampé, relooké et amélioré ma configuration. J'ai pensé que ce serait bien de le documenter. L'objectif était d'obtenir un environnement de prototypage de microcontrôleur AVR flexible, compact, portable, utilisable partout. Sur le bon marché (ish). Alors sans plus tarder, voici le Ghetto Development Environment (GDE) (version 1.2).

Étape 1: La trousse

La trousse
La trousse

Le kit de base contient les éléments suivants: programmeur USB. Parce que vous voulez pouvoir programmer des microcontrôleurs depuis votre ordinateur portable n'importe où. Et parce que l'USB est une source très pratique de +5v. Berceaux de programmation. Un pour chaque type de jeton avec lequel vous jouez. Pour moi, cela signifie un avec 8 broches (ATtiny13, 15), un avec 20 broches (ATtiny 2313) et un avec 28 broches (ATmega8). Clignotants. Lorsque quelque chose ne va pas avec votre code, rien ne l'éclaire comme allumer des lumières pour diagnostiquer. De plus, le programme de clignotant LED est le "Hello World" des microcontrôleurs. Planche à pain. C'est un kit de développement, après tout.

Étape 2: Le programmeur USB

Le programmeur USB
Le programmeur USB
Le programmeur USB
Le programmeur USB

Dans Ghetto Programmer (v.1.0), j'ai utilisé un programmeur de port parallèle. C'est génial parce que c'est simple, pas cher et rapide. Mais mon ordinateur portable n'a pas de port parallèle. J'ai joué un peu à faire des programmeurs de port série, mais honnêtement, ils sont tout aussi compliqués que la version USB et même les ports série se raréfient. En effet, mon ordinateur portable n'a vraiment que l'USB. Donc c'est USB. En regardant autour de vous, le programmeur USBTiny est assez simple et fonctionne avec les outils gratuits GNU/AVR-GCC. Faites-le vous-même ou achetez un kit ? La méthode du bricolage est bonne si vous pouvez déjà programmer un ATTiny2313 (avec programmeur parallèle) et disposer d'un cristal de 12 MHz. USBTiny Page présente les bases. Il termine le câble de programmation avec un port parallèle, mais je le finirais dans un en-tête standard à 6 broches si je commençais à nouveau. (Pourquoi ? Parce que c'est standard.) Voici ses brochages, et vérifiez l'image ci-dessous pour la disposition des câbles. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSISi vous créez le vôtre, veuillez tirer parti de mon expérience et le mettre dans une jolie boîte en plastique. Si vous ne le faites pas, cela finira par échouer lorsque le cristal de 12 MHz se brisera. C'est pourquoi j'utilise maintenant… Le moyen rapide et élégant est le kit USBtinyISP de Ladyada. Cela vous coûtera 22 $, mais vous obtenez un joli PCB, un ATTiny2313 préprogrammé et une boîte propre avec de beaux câbles. Les pièces brutes coûtent de toute façon entre 15 et 16 $, et vous n'avez pas à appeler Digikey et à vous soucier ensuite de programmer votre propre 2313. Il faut 30 minutes à 1 heure pour tout souder ensemble. Faire des folies. Croyez-moi. (Aucune affiliation, client satisfait) Et je viens de voir ce lien: Tutoriel AVR de Ladyada qui me semble plutôt bien. (Et notez que la conception de Ladyada et l'USBTiny d'origine utilisent des codes d'identification de produit USB différents - vous devrez trouver les chaînes d'identification et recompiler avrGCC si vous basculez entre les deux. Je pense qu'il y a des instructions sur les pages Web respectives.)

Si vous utilisez un système Linux Ubuntu et que vous utilisez le programmeur USBTiny, voici les commandes qui permettront à toute la chaîne d'outils de fonctionner: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude(tested sur Hardy Heron) Si vous avez un arc AMD64, vous aurez peut-être aussi besoin de: byacc libusb-dev flex bison libc6-devand puis de compiler AVRdude à la main: (wget https://download.savannah.gnu.org/releases/avrdude/ avrdude-5.5.tar.gz tar xvzf avrdude-5.5.tar.gz cd avrdude-5.5 ## Patch nécessaire pour AMD64: wget https://savannah.nongnu.org/patch/download.php?file_id=14754 patch -p1 < avrdude-5.5.usbtiny.64bit.patch./configure make && make install sudo avrdude -p attiny2313 -c usbtiny ## to test) Si vous voyez quelque chose comme "avrdude: appareil AVR initialisé et prêt à accepter les instructions", alors vous' refait. Oh oui, et merci à Wendel Oskay pour le schéma des brochages standard du programmeur.

Étape 3: Le berceau de programmation

Le berceau de programmation
Le berceau de programmation
Le berceau de programmation
Le berceau de programmation
Le berceau de programmation
Le berceau de programmation

Dans Ghetto Programmer v.1.0, j'ai utilisé un socle de programmation avec une entrée de broche non standard et avec des en-têtes de broche femelles pour y insérer des éléments. Les broches non standard sont une mauvaise idée car vous ne pourrez pas utiliser votre station d'accueil avec le programmeur de quelqu'un d'autre, et vice-versa. Les en-têtes femelles étaient amusants parce que vous pouviez y brancher directement des LED, mais quand je commençais à faire quelque chose de plus complexe, je finissais quand même par le câbler dans une maquette. Avec le nouveau berceau, j'ai supprimé l'intermédiaire. Moins de câblage manuel = mieux. Mais le plus grand avantage de cette conception de berceau est que vous pouvez brancher le berceau presque partout où vous pouvez brancher la puce AVR. Cela s'avère énorme. Au lieu de concevoir des circuits ISP dans votre robot ou autre, vous collez simplement cette chose de berceau dans la prise IC. Ensuite, vous pouvez programmer/reprogrammer le cerveau de votre robot en circuit. Lorsque vous avez terminé le développement, branchez l'AVR directement et vous êtes sur le suivant. Faire les berceaux est assez facile - tout ce que vous avez à faire est de connecter les broches de l'en-tête à 6 broches aux bons endroits sur les puces. Cette fois, j'ai utilisé des PCB gravés. Vous pouvez tout aussi bien câbler le tout à la main sur un panneau perforé. Le berceau ATTiny13/15 est composé d'une prise enroulée à 8 broches. Je les adore. Il est facile d'insérer la puce dans ses jolis trous ronds et les longues pattes offrent un espace supplémentaire sur la planche à pain. J'ai fait les traces de PCB à main levée avec un Sharpie. Le berceau ATTiny2313 a été fabriqué avec Eagle et la méthode de transfert de toner papier laser. Je n'ai pas pu trouver de sockets à 20 broches, j'ai donc dû recourir à un socket ordinaire à 20 broches soudé sur 2 en-têtes à 10 broches. Cela se termine par un berceau avec des jambes plus courtes, mais cela fonctionne. Le schéma et le PDF que j'ai utilisé pour le circuit sont ci-dessous. Sur les deux, j'ai dû câbler à la main une ligne supplémentaire. C'est la vie.

Étape 4: Clignotements

Blinkenlights
Blinkenlights
Blinkenlights
Blinkenlights

La simplicité même. Je ne les mentionnerais pas du tout s'ils n'étaient pas si pratiques.

Soudez une résistance (150-220 ohms est une bonne valeur.) directement sur le fil négatif de certaines LED. Il s'allumera à partir d'environ 2v-6v sans s'éteindre. Et la résistance vous aide à vous rappeler de quel côté est négatif. Collez-les là où vous voulez savoir qu'il y a de l'électricité. Déterminez si ce transistor est grillé. Transformez une batterie Nicad en une veilleuse longue durée. Utilisez une interface à code clignotant pour lire les valeurs de votre microprocesseur (lentement). Ou faites-en 8 et vous avez un affichage d'un octet (plus l'ingrédient actif dans les yeux Cylon.) Faites-les. Faites-en plusieurs. Faites-les maintenant.

Étape 5: La fin

La fin
La fin

Ce "système" répond donc à presque tous mes besoins de développement. Il est modulaire, évolutif, compact et portable.

Par exemple, j'ai élaboré les routines pour faire défiler les messages sur l'affichage à 4 chiffres (page d'introduction) dans l'avion en route pour le mariage d'un ami. Fait un bon brise-glace avec les agents de bord. Ce potentiomètre -> ADC -> ampèremètre piloté par PWM a été conçu, codé et débogué entièrement entre mon canapé et ma table à manger, et se nettoie en 2 minutes environ lorsque des amis viennent. (C'est la partie de réglage de l'heure de l'alarme de ce qui va être un compteur.) J'apporte la configuration au travail parfois quand j'ai envie de jouer au hooky. Ajoutez un petit sac de goodies (quelques condensateurs et résistances, fil de branchement, transistors, haut-parleur piézo, photodiodes, microphones, petits moteurs, etc.) et vous serez tellement en avance sur MacGuyver que ce n'est même pas drôle.

Conseillé: