Le bricolage moderne n’exclue aucune discipline et pour apprendre à utiliser une nouvelle technique, le plus simple est de regarder des exemples et tutoriels sur internet. Parfois il est difficile de trouver un point de départ. Cette page contient quelques liens thématiques pour bien démarrer. Plus bas, des sites de ventes sont cités pour trouver tout ce qu’il faut pour bricoler.

Microcontrôleurs

Les microcontrôleurs permettent de créer des objets programmées, c’est à dire des objets exécutant des séquences d’actions complexes ou même réagir à des événements. Ils existent deux types de microcontrôleurs :

  • les calculateurs (ARM, x86, …)
    Forte puissance de calcul. Bus d’adresses et bus de données. Peu de périphériques I/O. Modules spécifiques de calcul (p.ex. pour virgule flottante, trigonométrie, etc.).
  • les contrôleurs embarqués
    Faible puissance de calcul (quoique…). Périphériques spécifiques pour la communication série (SPI, I2C, UART, USB, Ethernet, CAN, LIN, Flexray, …), la capture d’événements (input capture), la génération de signaux à modulation de largeur d’impulsions PWM (output compare, compteurs, comparateurs), la conversion de signaux analogiques en numériques (ADC), et autres. Mémoire interne (RAM et ROM, parfois EEPROM).

Dans le développement de matériel embarqué on peut aujourd’hui trouver les deux types de microcontrôleurs, parfois un à coté de l’autre. La force des microcontrôleurs spécifiques pour l’embarqué est leur capacité de connexion avec le monde extérieur (signaux physiques) et leur possibilité de réagir en temps réel.

Cartes contrôleurs en vente

La conception d’un ordinateur n’est pas simple et la création d’une carte électronique peut devenir vite très cher. Heureusement, plusieurs solutions open source sont disponible à faible coût.

Arduino

L’Arduino est une famille de cartes contrôleurs open source basée sur les microcontrôleurs ATMEL. On y trouve des petites cartes à partir de moins de 20€ et pleins de modules d’extension (GPS, carte SD, Ethernet, Wifi, contrôle moteur, …).

J’utilise un peu le modèle Arduino UNO, qui est peu onéreux et qui propose déjà un processeur correcte (Atmel AtMega328P à 16MHz, avec quelques compteurs/comparateurs et ADC).

Arduino UNO R3 Front

La famille Arduino se programme d’une manière générale en C++ utilisant les librairies Arduino. Ces librairies ne sont pas très économique en temps de calcul et en utilisation de mémoire, mais très facile à utiliser. On arrive très rapidement à créer des programmes complexes et vu le coût d’une carte Arduino plus grande (avec un processeur plus performant), il est préférable d’investir dans un Arduino Mega ou 32 bit que de se mettre dans la bouille du code C et ASM fait maison pour un seul objet crée (ça sera différent pour une production de masse).

Plus d’infos sur l’Arduino: http://www.arduino.cc/

Raspberry PI

Le Raspberry PI est un petit ordinateur qui tient sur une main. Il se base sur un processeur de la famille ARM qui tourne à 1GHz. En fonction des modèles il contient entre 256 et 512Mo de RAM, propose plusieurs ports USB et une sortie HDMI. Le système d’exploitation est chargé d’une carte SD, et par défaut il s’agit de Raspbian, une distribution Linux.

Raspberry PI B+

En connectant ce fameux RPI sur un écran, on peut faire tourner pleins de choses dessus, utilisant un clavier et une souris. Pour travailler sérieusement avec c’est trop lent, mais le RPI est très répandu comme serveur pour l’impression, mini serveur web etc.

On peut connecter un peu d’électronique sur les ports GPIO (general purpose I/O, des entrées et sorties ‘tout-ou-rien’), mais il n’y a pas de compteurs/comparateurs comme sur un Arduino.

Certains s’amusent à combiner le Raspberry PI avec un Arduino pour plus de moyens d’utilisation en développement embarqué.

Le Raspberry PI se programme en Python, mais aussi pleins d’autre langages hautes.

Plus d’infos sur le Raspberry PI: http://www.raspberrypi.org/

Imprimer, découper etc.

Je n’ai pas (encore) d’imprimante 3D, et de tout de façon il y aura toujours du matériel que je ne peux (veux) pas m’acheter, mais qui peut ponctuellement aider d’accomplir une tâche particulière. J’ai la chance d’avoir un FabLab à quelques kilomètres de chez moi : http://fablablux.org/.

Un FabLab est un atelier ouvert au publique qui dispose d’un certain nombre de machines pour fabriquer des objets. Des volontaires proposent de formations pour utiliser des machines. Les modalités d’utilisation peut différer, mais le coût est faible ou nul et fonction de la nature des projets.

Où acheter le matériel

La meilleure adresse pour regarder ce qui se fait est http://www.adafruit.com/. Adafruit se situe aux États-Unis, il faut donc compter sur les droits de douane et en envoi un peu cher. Mais la qualité des produits est excellente, et la documentation superbe.

En France, beaucoup de choses s’achètent chez http://www.lextronic.fr/.

J’achète les composants de préférence en Allemagne chez http://www.reichelt.de/. Une autre option (un peu plus cher) est http://www.conrad.fr.

Se former

Les bases de la programmation d’un Arduino se trouvent sur le site http://www.arduino.cc. L’éditeur Arduino contient aussi de multiples exemples.

Pour connecter des modules existants, le site d’Adafruit propose de multiples tutoriels : https://learn.adafruit.com/. D’une manière générale c’est un bon point de départ.

En papier je connais 3 revues intéressantes :

  • Elektor – La revue d’électronique par excellence. Disponible un peu partout, relativement complexe, très avancé.
  • Make – Revue anglaise très à la mode. Bons tutoriels et bon site.
  • c’t Hacks – La revue Make allemande (change son nom en Make en ce moment).

Pour l’électronique c’est un peu plus compliqué. J’ai fait des études d’ingénieur en électronique/électrotechnique, j’ai donc appris les bases à l’école. Je pense que c’est bien de bouquiner chez Adafruit et autres et ensuite chercher des détails chez Wikipedia.