Micro-ordinateur pour la pédagogie

De Wiki d'activités IMA
Révision datée du 1 avril 2020 à 15:49 par Xyan (discussion | contributions) (Réalisation)

Présentation générale

  • Nom du projet : Micro-ordinateur pour la pédagogie
  • Stagiaire : Xuelu YAN
  • Encadrant : Xavier REDON

Projet

Objectif

Concevoir et réaliser un ordinateur du même type que les ordinateurs familiaux des années 1980. L'ordinateur sera donc à base de micro-contrôleur mais avec clavier, écran et périphérique de sauvegarde.

Description

Le but de ce projet est de réaliser un ordinateur peu puissant mais en le concevant de A à Z. Concernant le matériel :

1.Le coeur doit être un micro-contrôleur, un processeur étant trop complexe à maîtriser, même si un AVR est envisageable, il serait préférable de partir vers un Cortex-M pour bénéficier d'une mémoire plus importante ;

2.Pour les périphériques d'entrée, il faut utiliser un clavier USB et éventuellement une souris USB, ce qui implique de choisir un micro-contrôleur avec gestion USB ;

3.Plusieurs choix sont possibles pour l'écran, un choix est de partir sur la génération de signaux VGA, il semble même envisageable d'utiliser une puce HDMI et enfin il existe le choix de l'écran LCD avec contrôleur intégré, choix fait par les concepteurs de la calculatrice NumWorks ;

4.Pour le stockage, une carte micro-SD semble adaptée ;

5.Une interface réseau est probablement indispensable qu'elle soit Ethernet ou WiFi.

Le travail effectué

Semaine 1 & 2 : 9 Mars - 22 Mars

Les tâches pour semaine 1

-Essayer la ATXMEGA384C3-XPLN

-Tester le programme intégré

-Ecrire un programme de clignotement de LED

-Charger le programme par DFU si possible

-Trouver le bootloader de l'ATXMEGA384C3, le téléchargeur pour le AVR DRAGON

-Compiler micropython par un ATXMEGA384C3

-Téléverser micropython sur l'ATXMEGA384C3

-Tester micropython sur l'ATXMEGA384C3

Réalisation

Tout d'abord, j'ai essayé la carte ATXMEGA384C3 et testé le programme original. Il y a un micro-écran sur la carte, après connecté sur l'ordinateur, il a affiché les informations (température...).

Atxmegac3.jpg

Ensuite, avant d'écrire le programme de clignotement des LEDs, il faut changer le mode en DFU. J'ai trouvé le méthode pour changer le mode en DFU avec le lien :

https://www.mouser.com/datasheet/2/268/doc8429-1066104.pdf

Le chargeur de démarrage Atmel ATxmegaA3BU par défaut est configuré de sorte qu'il est possible d'activer le chargeur de démarrage DFU en utilisant le bouton-poussoir SW0 sur le kit Atmel XMEGA-A3BU Xplained. Pour activer le mode DFU, appuyez sur SW0 tout en connectant le kit à l'USB.

Et puis, afin d'écrire le programme de clignotement des LEDs, j'ai réfère le datasheet de la carte pour déterminer les pins des LEDs. Dans ce cas, on peut ajuster le clignotement des LEDs.

LEDs.jpg

Selon le formulaire, on peut déterminer les pins des LEDs: PR0x01, PR0x02, PD0x10, PD0x20.

DR.jpg

Semaine 3 & 4 : 23 Mars - 5 Avril

Après avoir vérifié le port série, micro-python n'implante pas le port série pour les atxmega. Il faut donc le faire avec l'example Virtualserial de la Lufa. Ensuite, j'ai trouvé la dernière version de la bibliothèque LUFA avec le lien : http://www.fourwalledcubicle.com/LUFA.php

Ensuite, j'ai récupéré le bibliothèque Lufa sur le pc avec les commandes :

mount /dev/sda2 /mnt
cp -r /mnt/lufa-LUFA-170418 /home/pifou

Et puis, M.RENON m'envoyé le fichier VirtualSerial qui est modifié pour l'atxmega384c3. Il faut mettre ce fichier sous le répertoire PolytechLille qui se trouve dans le répertoire lufa-LUFA-170418 :

mkdir PolytechLille    (dans le répertoire lufa-LUFA-170418)
mount /dev/sda2 /mnt
cp -r /mnt/Serial /home/pifou/lufa-LUFA-170418/PolytechLille

Et puis dans le répertoire Serial, j'ai obtenue le fichier VirtualSerial.hex avec la commande 'make'. Pour envoyer le fichier sur la carte :

dru-programmer atxmega384c3 erase
dru-programmer atxmega384c3 flash VirtualSerial.hex
dru-programmer atxmega384c3 reset

Ensuite il faut rebrancher la carte et vérifier le port série avec la commande :

ls -l /dev/tty*

J'ai trouvé le port série /dev/tty/ACM0. Enfin, j'ai changé le port série à /dev/tty/ACM0 dans minicom pour réaliser la configuration. Après sortir, j'ai testé la carte dans minicom et il a affiché :

Minicom3.jpg