====== Micro-contrôleurs et robotique ====== ===== Micro-contrôleurs ===== [{{ :images:general:intel_p8048h.jpg?250|Le premier micro-contrôleur au monde: Intel 8048}}] Le micro-contrôleur est fondamentalement un ordinateur qui est placé sur une simple puce de circuit intégré. Il est composé d'une mémoire, d'un processeur aussi bien que des interfaces d'entrée/sortie. Le microcontrôleur est programmé pour exécuter certaines tâches, ce qui signifie que s'il y a un besoin de changer ou améliorer cette fonctionnalité, il suffit d'installer un nouveau programme sur la puce. Les aspects qui différencient les micro-contrôleurs d'autres ordinateurs (le PC, l'ordinateur portable, le serveur, etc) sont : * Toutes les fonctions sont placées sur une simple puce sur une échelle plus compacte et plus petite. * Il est programmé pour exécuter certaines tâches, afin de changer ses fonctionnalités on doit installer un nouveau programme. * Il ne consomme que très peu d'énergie, parce que ses caractéristiques physiques sont plus petites et moins gourmande en énergie qu'un PC classique, un ordinateur portable ou un serveur. Habituellement les développeurs de micro-contrôleurs se concentrent sur la basse consommation d'énergie, ce qui permet d'utiliser plus longtemps les batteries des applications mobiles. * Single purpose inputs and outputs. Les micro-contrôleurs ont des périphériques, qui établissent la connexion entre le micro-contrôleur et d'autres micro-contrôleurs ou des ordinateurs (par exemple USB, PEUT, UART), aidant à comprendre les processus dans le monde physique réel (par exemple les interrupteurs, la mesure de température, etc) et aidant à contrôler l'environnement (par exemple pour contrôler le moteur, déclencher une alerte etc). Les micro-contrôleurs peuvent être trouvés dans une variété d'appareils quotidiens : appareils électroménagers (par exemple four à micro-ondes, téléviseurs), jouets (Lego NXT, poupées parlantes), véhicules (voitures, engins de levage), etc. La très large utilisation des micro-contrôleurs est possible parce qu'ils sont faciles à programmer et ont un grand choix de fonctionnalités, il est donc assez facile d'ajouter de nouvelles fonctions et mettre à niveau l'intelligence afin de correspondre à l'appareil dans lequel ils sont. ===== Robotique ===== La robotique est la science qui combine la technologie et la connaissance nécessaire à la construction des robots. En raison du développement rapide des technologies la définition du terme "robot", telle une machine automatique qui remplace l'homme, n'est pas si clair désormais. Le robot n'est désormais plus seulement le robot humanoïde, une main robotisée sur la chaîne de montage de l'industrie automobile, le pilote automatique dans l'avion, l'intelligence artificielle construite de neurones vivants ou le simple robot de nettoyage, ce sont toutes sortes d'ordinateurs qui remplissent les tâches de l'homme. On conçoit que les robots sont construits pour remplacer des gens pour certaines tâches. Il y a beaucoup de raisons de cela : des conditions de travail dangereuses, une production plus rentable, le travail monotone qui peut être à l'origine d'erreurs humaines, de nouveaux systèmes si complexes et le temps critique, que le système automatique prend de meilleures décisions que l'homme. ===== Micro-contrôleurs en robotique ===== Vu l'aspect tellement vaste de la robotique, nous considérerons alors la robotique comme un passe temps, les systèmes ne seront pas très complexes et il sera possible de les fabriquer soi-même. Les micro-contrôleurs courant sont: * Les micro-contrôleurs Atmel AVR (ATmega, ATtiny, etc.) * Les micro-contrôleurs PIC de technologie micro-puce (PIC16, PIC24, etc.) * Les micro-contrôleurs basés sur la technologie ARM. Le plus souvent trois groupes sont à l'origine de la création des cartes de développement et des environnements basés sur les micro-contrôleurs évoqués ci-dessus. Par exemple: Arduino (AVR), BASIC Stamp (PIC) et Lego NXT (ARM). L'ensemble des développements pour le //HomeLab// sont basés sur un micro-contrôleur AVR ATmega128. Les questions les plus classiques en ce qui concerne les micro-contrôleurs et les cartes de développement sont: comment définir le plus approprié? Habituellement nous les classons selon ces quatre propriétés: le prix, les caractéristiques physiques, l'environnement de développement et le support utilisateur. Les caractéristiques principales sont: * fréquence d'opération du processeur - qui détermine la vitesse d'opération de la puce * capacité de la mémoire – qui détermine la taille maximale du programme qui peut être intégré à la puce * capacité de mémorisation des données – combien de données peuvent être utilisées dans le programme * nombre de broches entrée/sortie et leurs fonctions – différentes broches ont différentes fonctions * nombre de timers – important pour le critère de poursuite du temps * consommation d'énergie – important pour les applications portables Ici l'environnement de développement est un logiciel PC, qui permet de créer et de compiler des programmes, en téléchargeant les programmes aux micro-contrôleurs et permettant de détecter en temps réel les éventuelles erreurs. Facile et confortable il doit faire tout ce qui devient décisif, parce que pendant la phase de démarrage du programme ce sera le secteur de travail principal. Tout cela mène à la quatrième caractéristique, le support client. Il est important que recevoir de l'aide et de l'assistance pour répondre aux questions possibles soit aussi facile que possible. En considérant toutes ces quatre propriétés mentionnées, il devrait être possible de trouver la carte de développement nécessaire.