# Simius

SiMiUS est une carte qui fut créée au sein du service d'électronique et de microélectronique de l'UMons (anciennement "Faculté Polytechnique de Mons") (Belgique) pour un système embarqué afin de tester la possibilité de gérer un GPS et un accéléromètre dans le cadre d'un projet pour la mesure de déplacement en temps réel.
Cette carte fut pensée pour qu'elle soit en partie universelle de manière à pouvoir accepter d'autres capteurs (lumière, température, et autres) qui se connectent principalement sur le bus I2C ou SPI afin de réduire le nombre de connexions vers la carte. La carte Simius contribue aussi à la réalisation de divers petits projets d'étudiants dans le cours de microprocesseur et de système embarqué afin de mettre en pratique les divers exercices et exemples qui leur sont donnés afin qu'ils puissent se familiariser avec ce type de système.

## Description
### Matériel

Cette carte est équipée d'un microcontrôleur PIC du type 16F876 de Microchip avec un oscillateur à quartz de 20 MHz ce qui donne 5 Mips. Le micro-contrôleur Pic peut être programmé en Assembleur comme avec d'autres langages plus évolués comme le 'C', le 'Mikro Basic', le 'Mikro Pascal', ce qui permet une utilisation assez souple de la carte. Celle-ci est pourvue d'un connecteur pour programmer le Pic, mais il est aussi possible d'implanter un Bootloader et de programmer le micro-contrôleur via l'interface série.
Elle est capable d'acquérir des informations en temps réel par le biais du bus I2C ou de l'interface série et de les afficher sur un écran LCD qui peut y être ajouté sur le connecteur approprié.
Sur Simius, plusieurs modes de communications sont utilisés : la communication série en norme RS-232 (Via Max232) en logique 12 volts ainsi qu'en TTL 5 volts, la communication sur bus I2C et la communication parallèle (I/O).
Elle peut évoluer avec les différents modes de connexion utilisés sur ce module, il est possible dans le futur, d’y ajouter d’autres périphériques du genre : connexion ZigBee, Bluetooth, carte mémoire Sécure Digitale SD ou MMC et même d’utiliser cette carte à d’autres fins que la capture de trame GPS sur le bus série.
La carte Simius Version 1.5 contient donc:
* une double alimentation (5 V et 3,3 V);
* un micro-contrôleur PIC de la famille 16F876 pour gérer les périphériques;
* une interface RS-232;
* un afficheur LCD pour visualiser les informations;
* un accéléromètre sur le bus I2C;
* un bus I2C ou SPI.

## Projets
### Carte Mini Simius

Le dernier projet en date, testé avec le module SiMiUS, est un projet qui demandait d’agir sur des moteurs/vibreurs en fonction d’informations transmises par une application externe au module. Dans un environnement virtuel donné, cette application envoie des commandes aux moteurs/vibreurs collés sur un gant porté par l’utilisateur. Des vibrations donnent alors, à ce dernier, des indications sur cet environnement.

### Projet Robot DS-X4L

Ce projet consiste en une plate-forme de type 'DS-X4L" qui est une base robotique tout terrain équipée de 4 roues motrices avec pneus gommes, capable d'emprunter des chemins accidentés et très inclinés. Conçue sur la base d'un châssis aluminium solide, elle vous permettra la réalisation de robots ludiques très performants.

### Afficheur LCD sur le bus I2C

Il est toujours plus facile, lorsque l'on fait du développement sur des circuits à microcontrôleurs, d'afficher certaines variables ou état sur un afficheur LCD pour permettre un débogage plus facile, mais dans le cas des afficheurs les plus courants et les moins cher, ceux-ci ne sont pourvus que de lignes parallèles (bus de donnée et lignes de contrôles) ce qui implique beaucoup de connexions ainsi qu'une grande consommation de ligne E/S sur le microcontrôleur.
Une solution simple existe afin de réduire fortement ces connexions, l'utilisation du bus I2c, ce bus que la plupart des microcontrôleurs possèdent et qui est assez facile à mettre en œuvre car il ne comporte que deux lignes (SCL, SDA) ainsi que l'alimentation (+5V, GND).
Dans notre cas, nous allons donc réaliser une interface parallèle de 8 lignes vers un bus I2c. Cette interface aura la possibilité de 8 E/S lesquelles pourront être programmées via le bus I2C et ainsi nous aurons, par le biais de cette interface, la possibilité de contrôler un afficheur, un clavier, des relais, des LED et encore bien d'autres choses.
Pour ce faire, nous allons donc utiliser un circuit intégré du type PCF8574 qui existe en plusieurs versions avec des plages d'adresse différentes. Ce qui va nous permettre de placer sur le bus I2c, plusieurs de ces modules afin de contrôler plusieurs afficheurs ou d'autres périphériques interfacés.

### Clavier sur le bus I2C

Il est toujours plus facile de communiquer avec une carte à micro-contrôleur par le biais de boutons-poussoirs et même par un clavier.
Dans ce chapitre nous allons utiliser un périphérique à base de PCF8574 que nous avons déjà utilisé avec notre afficheur LCD et dont nous maîtrisons mieux le fonctionnement.
Dans le cas de l'afficheur, ce périphérique était seulement utilisé en sortie, mais ici avec le clavier, nous allons l'utiliser dans les deux sens, nous aurons donc 4 lignes en sorties et 4 lignes en entrée, ce qui nous permettra d'utiliser un clavier matriciel 4x4 (quatre colonnes et quatre lignes), nous aurons même la possibilité d'utiliser une ligne venant du PCF8574 (INT) comme ligne d'interruption qui activera une routine d'interruption dès qu'une touche sera pressée.

## Développeurs

Simius a été développé par Daniel Binon et Carlos Valderrama de l'Université de Mons (Belgique)