P20 Conception d'un périphérique USB de type "gadget"

De Wiki de Projets IMA

Présentation du projet

Objectif

L'objectif du projet est la création d'un périphérique USB ludique du type catapulte ou lance-billes. La carte de contrôle est à réaliser à l'aide d'un micro-contrôleur.

Description du projet

Après entretien avec M.Redon le 07/10/2016, j'ai pu établir un descriptif plus détaillé du projet.

Le but de ce projet est de réaliser un gadget USB constitué d'une partie mécanique et d'une carte électronique de contrôle. La carte de contrôle doit permettre au gadget d'être reconnu par l'ordinateur comme un périphérique USB (USB device) sur un bus USB géré par un contrôleur USB (USB Host).

Le premier travail est d'étudier les chips d'un Arduino UNO et plus précisément celui qui gère l'USB : l'ATMega16u2. L'objectif est de le programmer pour le faire apparaître non pas comme un convertisseur USB/Série (ce qui est le cas pour le UNO) mais comme un USB-Gadget de Linux.

Une fois l'ATMega16u2 reconnu ainsi par l'ordinateur, le deuxième travail sera de réaliser la carte électronique en rajoutant des fonctions permettant de lui faire gérer quelques servo-moteurs par rapport aux commandes reçues du contrôleur USB. Le périphérique doit donc présenter des points d'accès en écriture, par exemple pour commander la rotation de l'objet, mais aussi des points d'accès en lecture, par exemple pour savoir si la rotation est bloquée en fin de course. Pour la version de production, il est demandé de programmer l'ATMega avec avr-gcc.

Pour finir, le dernier travail sera de réaliser la structure du gadget voulue en contre-plaqué usiné à la découpeuse laser.

Cahier des charges

  • Partie électronique
    • Carte de contrôle et de communication USB
    • Carte de gestion mécanique du gadget
  • Partie logicielle
    • Programme de reconnaissance USB
    • Programme de gestion des servo-moteurs

Planning prévisionnel

Diagramme de Gantt en cours de réalisation.

Liste de composants

Quantité Description Vendeur Fabricant Référence Fabricant URL
1 Atmega16U2-AU Farnell Atmel ATMEGA16U2-AU http://fr.farnell.com/atmel/atmega16u2-au/mcu-8bit-megaavr-16mhz-tqfp-32/dp/1841607
1 Quartz 16MHz 12.5PF Farnell Epson Q22FA23800181 FA-238 http://fr.farnell.com/epson/q22fa23800181-fa-238-16-mhz-12-5pf/quartz-fa-238-16mhz-50ppm-12pf/dp/1712816
1 Régulateur de tension 5V Farnell Texas Instruments UA78M05IDCY http://fr.farnell.com/texas-instruments/ua78m05idcy/regulateur-5v-0-5a-78m05-sot-223/dp/1494947
2 Leds vertes CMS Farnell Kingbright KPH-1608CGCK http://fr.farnell.com/kingbright/kph-1608cgck/led-50mcd-vert-570nm/dp/2426210
1 Leds rouges CMS Farnell Kingbright KPH-1608SURCK http://fr.farnell.com/kingbright/kph-1608surck/led-80mcd-rouge-630nm/dp/2426216
2 Diodes Farnell Multicomp S1A http://fr.farnell.com/multicomp/s1a/diode-1-0a-50v/dp/7277920
1 Connecteur USB Farnell Lumberg 2411 02 http://fr.farnell.com/lumberg/2411-02/embase-usb-2-0-type-b-tht/dp/1177885
1 Connecteur d'alimentation DC femelle Farnell Cliff Electronic FC681465P http://fr.farnell.com/cliff-electronic-components/fc681465p/embase-dc-double-2-1-2-5mm-pcb/dp/1854512
2 Connecteur 8 broches Farnell Samtec SSM-108-L-SV-TR http://fr.farnell.com/samtec/ssm-108-l-sv-tr/embase-2-54mm-vert-8-voies/dp/2418196
1 Connecteur 10 broches Farnell Samtec SSM-110-L-SV http://fr.farnell.com/samtec/ssm-110-l-sv/embase-2-54mm-vert-10voies/dp/1668264
1 Connecteur 6 broches Farnell Samtec SSM-106-L-SV http://fr.farnell.com/samtec/ssm-106-l-sv/embase-2-54mm-vert-6voies/dp/1668257
2 Connecteur 2x3 mâle Farnell TE Connectivity 5-146130-2 http://fr.farnell.com/te-connectivity/5-146130-2/connecteur-male-2-54mm-6-voies/dp/2311147
2 Servo-moteurs Ecole
1 Bouton poussoir Farnell C&K Components PVB6 EE 300 NS LFS http://fr.farnell.com/c-k-components/pvb6-ee-300-ns-lfs/commutateur-bouton-poussoir-spdt/dp/2435332

Etude d'un Arduino UNO

Plusieurs recherches préalables ont été effectuée pour étudier le fonctionnement d'un Arduino UNO en tant que gadget USB. Des tests sur un Arduino UNO réel, prêté par l'école, vont être réalisés pour le faire reconnaître par un ordinateur en tant que périphérique USB.

Recherches préalables

Le kit Arduino UNO utilise 2 micro-contrôleur : un ATMega328 et un ATMega16U. La liaison USB est gérée par l'ATMega16U, au détriment du circuit FTDI classique. Cela permet donc de faire évoluer la connectivité USB du kit Arduino à souhait en programmant le circuit ATMega16U avec la connectivité USB que l’on souhaite. L'objectif est donc de programmer le ATMega328 avec un programme transmettant l’état d’un gadget USB, sous la forme d’une liaison série vers le circuit 16U.

NB: Une fois le 16U modifié, il est impossible de reprogrammer le ATMega328 sans remettre le firmware initial dans le 16U.

Tests de reconnaissance USB

Réalisation de la carte

Schématique et PCB

La réalisation du schéma électrique et du PCB de la carte ont été faits à l'aide du logiciel Fritzing. Les images du PCB sont disponibles dans les fichiers sources.

Alimentation

Pour le fonctionnement du gadget, il est nécessaire d'alimenter le micro-contrôleur en 5V, les 2 servomoteurs en 5V, ainsi que tous les composants annexes. L'alimentation en 5V fournie par le câble USB relié à l'ordinateur ne sera pas suffisante pour tous ces éléments. J'ai donc rajouté une batterie externe sous forme de boitier à pile 9V combiné à un régulateur de tension 5V à découpage, ce qui permet d'éviter un câble supplémentaire et ainsi fournir plus de mobilité au gadget. La batterie alimente la partie mécanique, à savoir les servomoteurs, tandis que la connexion USB alimente la partie contrôle avec le microcontrôleur.

Alimentation de la carte

Partie contrôle et connexions

Comme indiqué dans le cahier des charges, la carte utilise comme micro-contrôleur ATMega16u2, permettant de prendre en compte des données transmises par l'ordinateur via USB. La carte comporte donc un connecteur USB utilisant les entrées/sorties D+ et D- pour l'échange de données, et VBUS fournissant du 5V au microcontrôleur. Afin de pouvoir programmer la carte avec un Arduino, il est également nécessaire d'avoir un connecteur ISP. La fonction RESET de l'ATMega est contrôlée par un bouton poussoir. Pour finir, les servomoteurs seront reliées à la carte via un connecteur femelle 6 broches (5V, masses et signaux de commande). La commande des servos sera assurée par les signaux PWM de l'ATMega16u.

Schéma de contrôle et des connexions de la carte


Réalisation de la catapulte

Documents sources

Rapport mi-projet

Fichier:Rapport mi-projet - Florian GIOVANNANGELI.pdf


Schématique et PCB - Fritzing

PCB face supérieure
PCB face inférieure