66 votes

Comment démarrer la programmation d'un microcontrôleur?

J'ai développé des logiciels en C ++, Java, PHP, .NET et je suis maintenant intéressant d'apprendre à programmer des choses importantes. Je souhaite programmer un système pouvant interagir avec les infrarouges et les écrans à cristaux liquides et pouvoir réutiliser les anciens moteurs d'imprimante pour l'utiliser, etc.

Mon problème est, par où commencer? J'ai effectué des recherches sur le Web et trouvé une carte Open Source appelée Arduino, mais comment rassembler d'autres composants électroniques? Quel livre ou tutoriel dois-je faire pour pouvoir créer un petit projet?

55voto

davr Points 9556

La parallaxe est notoirement hors de prix. Ils sortir avec elle parce qu'ils vendent leur truc aux établissements d'enseignement qui ne savent pas mieux.

L'Arduino est un bon début, aller à travers quelques exemples (cliquez sur "l'Apprentissage" sur le site Arduino) et voir ce que les pièces dont ils ont besoin. Mon passe-temps favori de l'électronique boutique en ligne est sparkfun.com. Ils ont des tonnes de pièces conçues pour l'interface avec des choses comme l'Arduino.

Vous pouvez les programmer en C, C++, ou AVR Assemblée. Personnellement, je dirais d'éviter les la BASE, ils sont beaucoup plus lent et si vous êtes déjà dans la programmation, il n'en vaut pas la peine.

(Pour info, l'Arduino est fondamentalement un conseil et une bibliothèque de logiciels conçus autour de la magnifique microcontrôleur AVR)

30voto

CMPalmer Points 4760

Je serais certainement la deuxième, l'Arduino suggestion. Ils sont bon marché, il existe plusieurs fournisseurs puisque le matériel est open source (bien que le nom n'est pas), l'IDE est gratuit, tu programme en C, et ils sont faciles à accrocher à quoi que ce soit. Le conseil d'administration a 12 digital I/O pins (dont deux doubles en série de broches de communication) et de six à 12 bits convertisseur A/n I/O pins (qui peut également être configuré en tant que broches numériques). Il peut gérer la modulation de largeur d'impulsion (PWM) pour le moteur et le servo de contrôle, les interruptions, les interfaces I2C, et la plupart des conseils d'administration peut soit fonctionner de manière autonome ou de désactiver le port USB. La Communication de l'ordinateur est géré par une série FTDI USB driver.

En plus Sparkfun.com, découvrez également www.adafruit.com pour certains à bas prix, petit USB "Boarduino" conseils et plusieurs bons de prototypage boucliers pour la totalité de la taille d'Arduino.

Le principal site Arduino (Arduino.cc) a à peu près chaque référence et tutoriel vous aurez besoin pour commencer.

Ici est le "Hello, World!" de l'Arduino programmation comme un exemple de comment il est facile. Le programme clignote LED fixé au numérique broche 13:

int ledPin = 13;                 // LED connected to digital pin 13

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}

Fondamentalement, chaque Arduino programme setup() fonction qui s'exécute lorsque la puissance est appliquée ou le conseil d'administration est remise à zéro et une boucle() fonction qui s'exécute jamais. Bien sûr, vous avez aussi des chronomètres et de l'interruption de fonctions, ou vous pouvez utiliser le loop() l'interrogation des entrées et alors appel à d'autres fonctions. L'IDE Arduino est assis sur le dessus de la GCC et utilise les mêmes bibliothèques et comprend que vous pourriez utiliser si vous écriviez un barebones programme pour le microcontrôleur Atmega. Cela signifie que (a) il cache les parties dures aussi longtemps que vous le souhaitez (chargeurs, fusibles,...), (b) vous pouvez obtenir à l'intérieur du programme si vous le souhaitez, et (c) vous pouvez utiliser une grande sélection de bibliothèques qui sont là pour cette famille de microcontrôleurs.

21voto

dguaraglia Points 3113

Ainsi, le domaine des microcontrôleurs est assez grand. Vous avez plusieurs marques, chacun arborant une gamme complète de contrôleurs, avec divers degrés de capacité, de la complexité et de la capacité.

Cela dit, la façon de commencer avec la plupart des microcontrôleurs est en lisant les fabricants de manuel. Par opposition à la "normale" de la programmation, où la plupart des programmeurs aller par des normes et des règles et des bonnes pratiques et de cadres, etc. la programmation du microcontrôleur se fait encore à peu près comme la programmation a été faite au début des années 1980: à la lecture d'un contrôleur manuel, de reproduire des exemples, et s'étendant à partir de là.

Microchip manuels, par exemple, sont excellents. Ils ont aussi une très bonne communauté, et de fournir un certain nombre de bibliothèques "standard" des fonctions que vous aimeriez l'utiliser (comme les maths, I/O, en faisant de série I/O à l'aide de deux broches, et ainsi de suite). Beaucoup de gens qui travaillent avec des PICs est très ouvert et l'habitude de partager leur code source si ils pensent que cela pourrait être utile à quelqu'un d'autre.

Il ya des choix que vous avez à faire avant de commencer. Le premier est quelle est la langue que vous allez utiliser. Vous avez trois options:

  1. Assemblée: la Plupart des fabricants fournissent gratuitement ou à très bas prix des kits de développement pour leur microcontrôleurs (Mcu). C'est le plus puissant de l'option, et celui que vous devez utiliser si vous vous sentez à l'aise. Il sera également vous apprendre beaucoup sur les ordinateurs en général.
  2. Autre chose: Si vous préférez utiliser quelque chose comme C, vous aurez à payer un peu d'argent pour le compilateur (bien qu'il y est au moins une option open source de certains de l'appareil), et vous avez à considérer le code produit par les langages de haut niveau prend normalement beaucoup d'espace de la mémoire dans l'appareil. Aussi, en fonction de la bibliothèque standard, vous retrouverez la programmation d'un montant équitable de la fonctionnalité vous-même de toute façon.
  3. De base/Pascal-comme le langage: certains Microcontrôleurs disposent d'une Base/Pascal-comme interprète. Ce sont de grands pour commencer à faire des "jouet" des projets, et obtenir le sentiment de la façon dont ces choses fonctionnent.

Ensuite, vous devez décider quel type d'appareil que vous souhaitez utiliser. Les prix unitaires varient considérablement selon le fabricant, s'il est PROM, EPROM, EEPROM, de combien de mémoire, il a, en l'espace de stockage qu'il a, nombre programmable de pins, etc.

Ma recommandation, pour commencer, serait:

  1. Essayez de trouver un "brûleur" sur Internet, si vous voulez éprouver le frisson de la programmation des Microcontrôleurs à l'aide de quelque chose que vous avez construit. Il ya beaucoup disponibles là-bas, il suffit de google pour de "simples PIC brûleur" ou similaire. Si ce n'est pas une obligation, vous pouvez alors acheter un graveur, mais il vous en coûtera un peu juste de l'argent.
  2. Obtenir une EEPROM version de la MCU vous pensez que vous allez utiliser le plus. Cela vous évitera le problème d'avoir à jeter un $5 pièces de matériel juste parce que vous avez un bug dans votre code.
  3. Acheter un tas de BAL version de la MCU. Ils sont peu coûteux, et vous aurez besoin d'eux. Et une fois que vous commencer, vous aurez envie de mettre un MCU partout.
  4. Apprendre à utiliser L'Émulateur. La plupart des Kits sont livrés avec un émulateur que vous pouvez utiliser pour tester vos idées avant de les valider à la PROM.
  5. Trouvez-vous une simple et intéressante premier projet. Je me dois de souligner le SIMPLE . Si vous essayez de venir avec un moyen de contrôler votre four à micro-ondes à l'aide d'une télécommande tout de suite, pour être prêt pour une longue période d'apprentissage.

Eh bien, espérons que cela vous aide! Si vous souhaitez plus d'informations, je suis dans le coin, il suffit de siffler! :)

12voto

Eric Lathrop Points 990

J'ai récemment commencé à apprendre la programmation du microcontrôleur à l'aide de l'Arduino. J'ai acheté un Arduino Starter Pack à partir de adafruit.com et marchait à travers leur introduction des tutoriels. Leur kit est livré avec certains de base de l'électronique (Led, boutons, photorésistance) qui vous donner quelques choses à expérimenter droit au large de la chauve-souris.

Si vous connaissez déjà le C/C++, vous serez en mesure de commencer la création d'utile et d'intéressant dans les projets dans les heures qui suivent.

L'Arduino est aussi grande, car une fois que vous vous familiariser avec elle, vous pouvez étendre à l'écriture de C brutes sur les Atmel AVR ligne de microcontrôleurs avec facilité.

Je recommande également L'Électronique Mine d'or où vous pouvez acheter des gammes de l'électronique pour d'assez bon marché pour obtenir un bon point de départ pour travailler avec.

3voto

John Dyer Points 1134

Le timbre de BASE de la série est très intéressante. Ils ont beaucoup de simple et agréable, les cartes de contrôle pour vous aider à démarrer et la programmation de la saleté simple. Le contrôleur exécute de BASE. Bien que cela puisse ne pas exciter beaucoup de gens, l'écriture microcontrôleur code prend du temps pour obtenir le coup de lui. Ce système est idéal pour obtenir vos pieds humides. Alors quand vous avez une belle fraîcheur (et simple) projet en cours d'exécution, vous pouvez passer à d'autres plus difficiles contrôleurs. Ils seront plus susceptibles de l'assemblée ou C programmé. Débogage sera votre plus grand défi.

La parallaxe BASIC Stamp

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X