Machines numériques

Niveau I

1. Architecture des machines (8h)

Quelle est la "mécanique" d’une machine numérique ? quels sont ses composants ? Cette unité vise à identifier le rôle des constituants d'un ordinateur et à "dérouler" l'exécution d'une séquence d'instructions simples de type langage machine. Cette unité vise à acquérir les compétences pour décrire et expliquer le fonctionnement d’un système numérique.

Cours 1 : matériel

  • Structure d'un processeur : mémoire, unité arithmétique et logique, contrôleur, entrée/sorties.
  • Interfaces et bus.
  • Périphériques : capteurs et actionneurs, orientés hommes (clavier, souris, écran) ou physique (CCDs, microphones, accéléromètres, ...).
  • Interactions de bas niveau.

Cours 2 : notion de système d’exploitation

  • Qu’est ce qu’un système d’exploitation ? Différents types de systèmes d'exploitation.
  • Composants du noyau : mémoire, système de fichiers, pilotes de périphériques, unité centrale.
  • Notion de multi-tâches : processus, synchronisation des processus, gestion des processus.
  • Interface programmes/noyau : appel système, abstraction de périphérique.
  • Interfaces noyau/matériel : interruptions, projection d'entrées-sorties en mémoire.
  • Illustration avec le système Unix : processus, utilisateurs et fichiers.

2. Initiation à la communication numérique (4h)

Outre le calcul, les machines numériques communiquent également. Les compétences acquises par cette unité porte sur:

  • Etablir une communication directe entre deux machines numériques;
  • Capturer et analyser le trafic de données échangées entre machines numériques

Cette unité présente les principes de la communication numérique à savoir :

  • Définition de la transmission numérique.
  • Rôle et utilité d’un modem.
  • Notion de multiplexage.
  • Structuration en couches et notion d’encapsulation.
  • Cas du support multipoint : Ethernet.
  • Pratique : analyser le trafic sur une liaison Ethernet.

Niveau II

2. Réseaux (4h)

Les besoins de communications entre ordinateurs ont donné naissance à un réseau spécifique: l'Internet. Cette unité présente les principes de fonctionnement de l'Internet et  les moyens à mettre en oeuvre pour qu'une application puisse communiquer. Les compétences acquises développées par cette unité sont:

  • Comprendre le fonctionnement des réseaux à commutation de paquets
  • Installer une connectivité Internet
  • Développer une application client-serveur à l'aide de l'interface Socket.

Les savoirs présentés porteront sur les thèmes suivants:

  • Qu'est ce que l'Internet ?
  • Comment les paquets sont acheminer dans l'Internet ? Comment effectuer la configuration d'un ordinateur pour être connecté à l'Internet ? Nous illustrerons la configuration à l'aide d'un atelier avec Netkit.
  • Comment les données d'une application sont transportées et remise à la destination ?  Nous verrons dans cette partie les caractéristiques du service offert par l'Internet aux applications. Ce service dépend de nos jours des protocoles standards que sont UDP et TCP.
  • Comment faire pour qu'une application émet et reçoit des données ? La programmation d’application réseau en python sera présentée. Les travaux s'appuierons sur l'interface socket.

2. Nano ordinateur (4h)

Dans cette unité nous présentons le principe d’installation et d’utilisation d'un système GNU/Linux sur un nano-ordinateur tel que le Raspberry Pi.Les compétences développées sont :

  • Interagir par le langage de commandes d'Unix avec le Raspeberry Pi ;
  • Installer et configurer un système GNU/Linux ;
  • Communiquer avec l'extérieur à l'aide du langage Python.

Les savoirs développés sont :

  • Installation du système d'exploitation Raspbian ;
  • Étapes du démarrage et configuration de Raspbian ; 
  • Installation et configuration d'un serveur Web (Apache) et d'un serveur FTP (PureFTP) ;
  • Programmation du port de communication GPIO en langage Python.

3. Initiation à la robotique (4h)

Les nettoyeurs autonomes (piscine, aspirateur) ont aujourd'hui fait leur place dans les foyers. Ces robots "tout public" sont des précurseurs qui sont encore cantonnés à des tâches bien spécifiques. Ils seront très bientôt rejoints par des robots aux fonctionnalités plus ouvertes, avec une morphologie proche de la notre (humanoïde) qui leur permettra d'évoluer naturellement dans notre environnement. Les premiers d'entre eux, les robots compagnons et des robots d'assistance sont actuellement en cours d'étude.

Cette unité propose une initiation à la robotique par la pratique : découverte du robot Thymio II, qui est un robot éducatif, à prix abordable qui se base sur trois piliers:

  • une grande quantité de capteurs et d'actuateurs,
  • une interactivité éducative basée sur la lumière et le touché,
  • une programmation simple dans un environnement et un langage spécifique

Thymio II est un projet open source et open hardware, dont le design est disponible sous licence creative commons et son code source et environnement de programmation sont disponibles en licence LGPL.

Nous nous proposons d'illustrer les fondamentaux de l'algorithmique à l'aide de manipulations du robot obtenues par programmation.
En effet, l’intérêt pédagogique du robot réside dans le fait qu'au travers de ses actuateurs, l'élève peut observer directement les effets de la modification d'un code à travers des actions simples, constater et essayer de comprendre les différences entre ce qu'il projetait de faire et le comportement du robot.
Il s'agira au départ de comprendre les variables prédéfinies associées aux capteurs, de décrire le type de ces variables et de définir les plages dans lesquelles elles varient.
En faisant tourner quelques programmes d'exemples sur le robot, il s'agira de comprendre le principe de programmation du robot en observant notamment à travers ces exemples :

  • la déclaration des variables
  • l'utilisation des timers
  • l'animation de leds
  •  la détection d'évènements (évènement buttons, prox)

Télécharger les ressources de ce module.