Étape 1: V-USB
Quel est le problème ?
De nombreux microcontrôleurs AVR disposent d’un UART, qui permet la communication série avec d’autres puces ou un ordinateur via le port série. Toutefois, pas beaucoup les ordinateurs récents sont équipés par un port série de nos jours, munis à la place de ports USB. Il est possible de communiquer avec une puce AVR via USB à l’aide d’une puce de conversion comme le FTDI FT232RL trouvé sur l’Arduino, mais si vous utilisez un câbleou un Conseil , vous ajoutez coût et la complexité de votre projet. Si seulement il y avait un moyen facile de parler à la puce AVR directement via USB...
Entrez V-USB
Alors, quel est V-USB ? Sur leur site (http://www.obdev.at/products/vusb/index.html) :
V-USB est une implémentation logicielle d’un périphérique USB de basse vitesse pour le domaine des microcontrôleurs Atmel AVR®, rendant possible la construction d’un périphérique USB avec presque n’importe quel Microcontrôleur AVR®, ne nécessitant ne pas de n’importe quel morceau supplémentaire.
Sonne bien ! Alors, que devons-nous commencer ?
- Une copie du code V-USB, vous pouvez récupérer depuis la page de Téléchargement de la société ou leur page de github .
- Une version du fichier usbconfig.h , modifié pour notre projet spécifique (plus sur cela plus tard).
- Un microcontrôleur AVR au moins 2 Ko de mémoire Flash, 128 octets RAM, qui peut fonctionner à 12 MHz, 15 MHz, 16 MHz ou 20 MHz (avec un cristal) ou à 12,8 MHz ou 16,5 MHz (avec un oscillateur RC interne).
Choisir un microcontrôleur
Outre les exigences ci-dessus, notre microcontrôleur doit également 3 canaux PWM, de contrôler chacune des couleurs RVB. J’ai choisi d’utiliser l’ATmega168 parce que j’ai eu un qui traînent, mais il y a quelques options différentes (par exemple le ATtiny2313). Si vous choisissez un microcontrôleur différent, veillez à modifier le code du microprogramme fourni.