Commande à distance d’un robot mobile

Processeur ARM Cortex du Raspberry Pi

Le processeur qui anime le système Raspberry Pi est un processeur multimédia Broadcom BCM2835‬ de type SoC ((System-on-Chip), tout le système sur un seul circuit). Cela signifie que la plupart des composants du système (unité centrale, coprocesseur graphique, matériel audio et vidéo) sont réunis dans un seul composant, qui est physiquement caché sous le circuit mémoire de 256, 512 Mo ou 1 Go qui est implanté au centre de la plaque.

Le processeur BCM2835 ne se distingue pas seulement des processeurs pour PC de bureau par cette conception intégrée SoC. Plus important encore, il utilise un autre jeu d’instructions machine (ISA, Instruction Set Architecture) nommé ARM.

Elle n’est pas très répandue dans le monde des ordinateurs de bureau, mais elle l’est beaucoup plus dans l’univers des appareils nomades, de nombreux modèles de smartphones fonctionnent avec un processeur ARM. Cette architecture utilise un jeu d’instructions machine réduit (RISC). La faible consommation électrique des circuits ARM leur donne un net avantage par rapport aux processeurs des ordinateurs de bureau qui se basent sur un jeu d’instructions complexes (CISC).

C’est grâce à ce circuit ARM BCM2835 que le Raspberry Pi peut fonctionner avec une alimentation 5V 1A, et donc être alimenté par le port micro USB de la carte. Si vous cherchez, vous ne trouverez aucun radiateur, car la consommation du circuit rend ce genre de dissipateur de chaleur inutile, même dans les périodes de forte charge du processeur.

En revanche, puisque le Raspberry Pi se base sur un jeu d’instructions machine différent, les programmes ne sont pas compatibles avec ceux des PC. En effet, les logiciels conçus pour les ordinateurs de bureau et portables ciblent l’architecture x86 qui est celle des processeurs AMD, Intel et VIA. Tous ces programmes ne fonctionnent donc pas sur le Raspberry Pi et son processeur ARM.

Le BCM2835 fait partie de la génération de processeurs ARM nommée ARM11, qui utilise la version de l’architecture du jeu d’instructions ARMv6. Il est important de le savoir, car ARMv6 est une architecture légère tout en étant puissante, mais légèrement inférieure à l’architecture ARMv7 adoptée par la famille de processeurs ARM Cortex. Les logiciels conçus pour ARMv7, comme ceux pour les x86, ne sont pas compatibles avec le processeur.

Les différentes distributions Linux pour le Raspberry Pi

Comme nous l’avons dit précédemment, le Raspberry Pi fonctionne généralement avec un système d’exploitation basé sur Linux. Techniquement parlant, Linux n’est qu’un noyau alors qu’un système d’exploitation est un ensemble de différents éléments (drivers, services et applications). Il existe de nombreuses distributions Linux, très diversifiées et qui évoluent au fil des années. Les distributions les plus courantes sur les ordinateurs de bureau sont Ubuntu, Debian, Fedora et Arch. Chacune d’entre elles est adaptée à des applications spécifiques et possède sa propre communauté d’utilisateurs.

Comme le Pi est basé sur un SoC pour appareil mobile, il n’utilise pas les mêmes logiciels qu’un ordinateur de bureau. Tandis que la plupart des ordinateurs offrent plusieurs gigaoctets de RAM et des centaines de gigaoctets de stockage, le Raspberry Pi est quant à lui plus limité dans ces deux domaines. On trouve de plus en plus de distributions Linux développées ou adaptées spécifiquement pour le Raspberry Pi, les plus connues sont les suivantes.

Raspbian

C’est une distribution basée sur Debian Wheezy qui comporte plus de 35000 paquets. Par défaut elle est installée avec le bureau LXDE. C’est la distribution recommandée par la fondation Raspberry Pi.

Arch Linux

La célèbre distribution pour le Raspberry Pi. Elle est réservée aux utilisateurs expérimentés de Linux. Elle ne propose aucun bureau graphique.

Risc Os

Un système d’exploitation conçu par Acorn en 1988. Pauvre par le nombre de logiciels.

Pidora

Une version de Fedora pour les processeurs ARM.

Raspberry Pi Linux version éducative d’Adafruit (Occidentalis)‬

La distribution d’Adafruit basée sur Raspbian contient un certain nombre d’outils et de drivers utiles pour apprendre l’électronique.

NOOBS

Le programme d’installation NOOBS (New Out Of Box Software) permet de faire cela. Par défaut il contient six distributions officielles de la fondation Raspberry Pi (Raspbian, Arch, Pidora, RiscOS, openELEC et Raspbmc).

Préparation de la carte SD

Téléchargement du Raspbian

La première étape consiste à télécharger Raspbian à partir de la page de téléchargements http://www.raspberrypi.org/downloads, puis téléchargez l’image compressée (fichier.zip). On décompresse le fichier.zip. Nous obtenons alors un fichier de 2 Go environ. En suite, on a vérifiez l’intégrité de notre image disque d’origine. Pour cela, nous pouvons utiliser un logiciel de signature numérique pour calculer la signature SHA (Secure Hash Algorithm) de l’image et on compare le résultat à l’empreinte de 40 caractères avec qui est dans la page de téléchargements.

Écrire une carte SD

Les périphériques nécessaires

Une carte SD

Il faut utiliser carte d’une capacité d’au moins 4 Go et de classe 4 (ou plus) de préférence parce que les cartes de classe 4 sont capables de transférer au moins 4 Mo par seconde. Une carte micro SD dans un adaptateur convient également. Lecteur de carte micro SD pour port USB Utiliser pour installer le système d’exploitation sur une carte SD.

L’installation du système Raspbian sur la carte SD

(1)‬. Téléchargez et installez le programme Win32DiskImager https://launchpad.net/win32-image-writer.
(2)‬. Insérez la carte SD dans son lecteur, puis sur le PC (a) et notez la lettre du lecteur qui lui a été assignée par l’explorateur de fichiers (b).
(3)‬. Lancez le programme Win32DiskImager et sélectionnez le fichier contenant l’image à installer (coleur jaune) et choisissez la lettre correspondant à votre carte SD (coleur rouge), puis cliquez sur Write.
(4)‬. Une fois la copie terminée, éjectez la carte et insérez-la dans votre Raspberry Pi. Figure II-30. La fenêtre qui affiche la fin d’écriture sur la carte.
Chapitre II Le Raspberry Pi

Démarrage et la configuration du Raspberry Pi

Démarrage du Raspberry Pi

Suivez ces étapes pour démarrer votre Raspberry Pi pour la première fois.
1. Insérez la carte SD dans son support.
2. Branchez un clavier USB et une souris, connectez la sortie HDMI à votre téléviseur au Raspberry Pi, et en suite l’alimentation. De manière générale, vérifiez que tous les autres éléments sont bien branchés avant de connecter l’alimentation.

Pour l’alimentation

Vous devez impérativement utiliser une fiche micro USB, capable de fournir au moins 700 mA de courant. Une alimentation de 1A est recommandée. Enfin, Voilà notre système finale pour débuter à configurer le Raspberry Pi.
Si tout se passe correctement, vous verrez une liste de messages défiler à l’écran. Ces messages de log montrent tous les processus du système d’exploitation qui se lancent au démarrage de votre Raspberry Pi.
Au tout premier démarrage de notre Raspberry Pi, l’outil raspi-config se lancera automatiquement pour personnaliser notre carte (figure II-34).

La configuration du Raspberry Pi

Nous allons à présent passer en revue les différents paramètres de base et distinguer ceux qui sont essentiels de ceux qui pourront être réglés par la suite.
Dans l’outil raspi-config, utilisez les flèches de direction du clavier haut et bas pour naviguer dans la liste. La barre d’espacement permet de sélectionner une option et la touche Tab de passer d’un champ à un autre ou de déplacer le curseur en bas de l’écran pour quitter.
Les options disponibles sont les suivantes : expand_rootfs : vous devez toujours choisir cette option, qui agrandit le système de fichiers Linux, afin d’utiliser l’intégralité d’une carte SD. Par exemple, si vous disposez d’une carte SD de 4 Go, Linux pourra accéder à 2 Go supplémentaires.
Overscan : si vous possédez un moniteur haute définition, il est possible que du texte dépasse de votre écran. Pour résoudre ce problème, activez L’option overscan et modifiez les valeurs

Chapitre II Le Raspberry Pi

pour que l’image s’adapte à la taille de votre écran. Entrez des valeurs positives si l’image sort de l’écran, des valeurs négatives si des marges noires apparaissent sur les côtés. Keyboard : par défaut, les paramètres du clavier sont réglés pour un clavier britannique (QWERTY). Pour que les bonnes lettres soient saisies lorsque vous tapez sur les touches correspondantes, vous devez choisir le type de clavier approprié. Heureusement, Linux supporte énormément de langues et de dispositions de touches.
Password : nous vous conseillons de modifier le mot de passe par défaut (raspberry) pour le rendre plus fiable.
Change_locale : pour activer notre langue et nos préférences d’encodage des caractères. Le paramètre par défaut est l’anglais (en) britannique (UK) avec un encodage de caractères en UTF-8.
Change_timezone : modifiez cette option pour sélectionner le fuseau horaire correspondant au lieu où vous vous trouvez.
memory_split : cette option vous permet de changer la quantité de mémoire allouée à l’affichage.
Overclock : vous avez la possibilité de faire tourner le processeur à des vitesses supérieures à 700 MHz. Pour votre premier démarrage, conservez les paramètres par défaut. Si par la suite vous devez modifier ce paramètre, essayez les valeurs Medium ou Modest. Le mode Turbo permet de monter à 1GHz avec un dissipateur. ssh (Secure Shell)‬ : cette option active l’accès au shell sécurisé, ce qui vous permet de vous connecter à votre Raspberry Pi en passant par le réseau.
boot_behaviour : cette option est sélectionnée par défaut et active le démarrage automatique de l’environnement de bureau graphique. Si vous sélectionnez No, le Pi restera en mode texte.
Vous pourrez toujours lancer l’interface graphique manuellement, comme suit :
raspberrypi login : pi
Password : raspberry (ou le mot de passe que vous venez de paramétrer).
pi@raspberrypi ~ $ startx
Quand vous êtes dans l’interface graphique, il n’y a plus de ligne de commande.
Vous pouvez en obtenir une ou plusieurs en lançant un programme de terminal.
Pour cela, cliquez sur le menu Bureau en bas à gauche et choisissez Accessoires>LXTerminal.
Update : si vous êtes connecté à Internet, cette option vous permettra de mettre à jour l’utilitaire de configuration.
Une fois la configuration terminée, sélectionnez Finish (accédé avec la touche Tab). Selon les options que vous aurez modifiées, il se peut que l’outil raspi-config redémarre le système.
Sinon, vous serez redirigé vers la ligne de commande sur laquelle vous saisirez :
pi@raspberrypi ~ $ sudo reboot afin que votre Raspberry Pi redémarre et prenne en compte vos nouveaux paramètres.

Éteindre le Raspberry Pi

Il n’existe pas de bouton d’alimentation sur le Raspberry Pi, quoique les nouvelles cartes soient équipées d’une broche permettant d’accueillir un bouton de réinitialisation. Pour éteindre correctement le système d’exploitation, allez dans le menu Logout de l’interface graphique et sélectionnez shutdown.
Veillez bien à arrêter le système d’exploitation comme indiqué ici et à ne pas débrancher sauvagement votre Raspberry Pi. Si vous coupez le courant sans arrêter le système correctement, vous risquez d’endommager la carte SD [15].

Linux

Pour profiter au mieux de toutes les possibilités offertes par notre Raspberry Pi, il est souhaitable de connaître un peu Linux.
Linux est un système d’exploitation open source. Ce logiciel a été écrit dans le cadre d’un projet communautaire pour ceux qui recherchaient une alternative au monopole de Microsoft Windows et d’Apple OS X. C’est un système d’exploitation complet, basé sur les mêmes concepts robustes d’Unix qui est apparu au début de l’informatique. Il a de nombreux partisans fidèles et serviables et s’est transformé en un système d’exploitation puissant et facile à utiliser.

Brève histoire

En 1984, Richard Matthew Stallman, chercheur en informatique du MIT quitte son poste et se consacre à l’écriture d’un système d’exploitation libre du nom de GNU.
Le projet GNU arrive en 1991 avec de très nombreux outils libres, mais il lui manque un élément central, le noyau. Cet élément est essentiel car il gère la mémoire, le microprocesseur, les périphériques comme le clavier, la souris, les disques durs…etc. C’est à cette époque qu’un étudiant finlandais, Linus Torvalds, commence à développer un noyau et demande aux personnes intéressées d’y contribuer.
Le système d’exploitation actuellement connu est donc un assemblage des outils GNU fonctionnant sur un noyau Linux, on parle donc de GNU/Linux avec le slash, « / » pour « GNU sur Linux ».

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Listes des tableaux
Listes des abréviations
Introduction générale
Chapitre I : Les systèmes embarqués
I.1 Introduction
I.2 Générations et l’histoire des systèmes embarqués
I.2.1 Première génération : 1945 – 1955
I.2.2 Deuxième génération : 1955 – 1965
I.2.3 Troixième génération : 1965 – 1970
I.2.4 Quatrième génération : 1970 – 2000
I.2.5 Cinquième génération : 2000 – Aujourd’hui
I.2.6 Sexième génération : 2010 – L’avenir
I.2.6.1 Internet des Objets (Internet Of Things)
I.2.6.2 Systèmes Cyber Physiques (SCP )
I.3 Architecture générale et modes de fonctionnement des systèmes embarqués
I.3.1 Caractéristiques principales d’un système embarqué
I.3.2 Domaines d’application d’un système embarqué
I.4 Systèmes embarqués temps réel
I.4.1 Les contraintes de temps et les systèmes embarqués
I.4.1.1 Contraintes temporelles strictes ou dures ou critiques (hard real-time)
I.4.1.2 Contraintes temporelles relatives ou lâches (temps réel souple : soft real-time)
I.4.1.3 Contraintes temporelles fermes (temps réel ferme : firm real-time)
I.4.2 Caractéristiques temporelles des systèmes temps réel
I.4.3 Principales caractéristiques des systèmes embarqués temps réel
I.4.4 Exemples d’applications des systèmes embarqués temps réel
I.5 Les logiciels libres et les systèmes embarqués
I.6 Les systèmes cyberphysiques et l’Internet des objets dans les systèmes embarqués
I.6.1 Les systèmes cyberphysiques
I.6.1.1 Caractéristiques d’un CPS
I.6.1.2 Classification des CPS
I.6.1.3 Exemples d’application
I.6.2 Internet des Objets
I.7 Big Data
I.8 Conclusion
Chapitre II : Le Raspberry Pi
II.1 Introduction
II.2 Raspberry Pi
II.2.1 Un peu d’histoire
II.2.2 Description de la carte Raspberry Pi
II.2.3 Modèles de Raspberry Pi
II.2.4 Les composantes du Raspberry Pi
II.2.4.1 Le processeur (Broadcom BCM 2835‬)
II.2.4.2 Le support de carte SD (Secure Digital)
II.2.4.3 La prise USB
II.2.4.4 La prise Ethernet
II.2.4.5‬ La prise HDMI
II.2.4.6 Les LED d’état
II.2.4.7 La sortie vidéo composite
II.2.4.8 Le connecteur d’alimentation
II.2.4.9 Les broches d’entrées-sorties (GPIO)
II.2.4.10 Le connecteur Display Serial Interface (DSI)
II.2.4.11 Le connecteur Camera Serial Interface (CSI)
II.2.4.12 La sortie audio analogique
II.2.5‬ Processeur ARM Cortex du Raspberry Pi
II.3 Les différentes distributions Linux pour le Raspberry Pi
II.3.1 Raspbian
II.3.2 Arch Linux
II.3.3 Risc Os
II.3.4 Pidora
II.3.5‬ Raspberry Pi Linux version éducative d’Adafruit (Occidentalis)
II.3.6 NOOBS
II.4 Préparation de la carte SD
II.4.1 Téléchargement du Raspbian
II.4.2 Écrire une carte SD
II.4.2.1 Les périphériques nécéssaires
II.4.2.2 L’installation du système Raspbian sur la carte SD
II.5 Démarrage et la configuration du Raspberry Pi
II.5.1 Démarrage du Raspberry Pi
II.5.2 La configuration du Raspberry Pi
II.5.3 Éteindre le Raspberry Pi
II.6 Linux
II.6.1 Brève histoire
II.6.2 Raspbian
II.6.2.1 Découvrir l’interface graphique
II.6.2.2 Les fichiers et le système de fichiers
II.6.2.3 Le shell
II.6.2.4 Droit d’accès sous Linux
II.6.2.5 Le répertoire /etc
II.6.2.6 Réglage de la date et de l’heure
II.6.2.7 Installation de nouveaux logiciels
II.7 Les broches d’entrées-sorties sur Raspberry Pi
II.8 Programmation des GPIO en Python
II.8.1 Langage de programmation Python
II.8.2 Installation du module Python GPIO
II.8.3 Faire clignoter une LED via interface graphique sous Python
II.8.3.1 Présentation de Tkinter
II.8.3.2 Montage
II.8.3.3 Code en Python
II.9 Conclusion
Chapitre III : Commande à distance d’un robot mobile
III.1 Introduction
III.2 Description du kit de robot
III.3 Partie électronique
III.3.1 Première étape
III.3.1.1 Le pont en H
III.3.1.2 Présentation du module L298N
III.3.1.3 Description du module L298N
III.3.2 Deuxième étape
III.3.3 Troisième étape
III.3.3.1 Connecteur de commande du contrôleur servo-PWM
III.3.3.2 Alimentation externe du contrôleur servo-PWM
III.3.4 Quatrième étape
III.3.5 Cinquième étape
III.3.6 Sixième étape
III.3.7 Septième étape
III.3 Partie informatique
III.3.1 Connexion à distance du robot via SSH
III.3.2 Communication entre les différentes modules du robot et le Raspberry Pi
III.3.2.1 Configuration du protocole I2C sur le Raspberry Pi
III.3.2.2 Installation du module noyau I2C
III.3.3 Communication sans fil
III.3.3.1 Configuration du WiFi sur le Raspberry Pi via la ligne de commande
III.3.4 Visualisation du flux vidéo de la webcam embarquée dans le robot
III.3.5 Commander le robot via une application desktop sous Python
III.3.5.1 Côté serveur ( Raspberry Pi)
III.3.6 Commander le robot via une application Android
III.3.6.1 Partie serveur (site Web Django sous Raspberry Pi)
III.3.6.2 Partie Client (depuis un navigateur)
III.3.6.3 Partie Client (Développement de l’application Android sous App Inventor2)
III.3.7 Contrôler le robot via une page web PHP
III.3.7.1 Le Raspberry Pi comme un serveur web Apache
III.3.7.2 Installation du serveur Apache
III.3.7.3 Installation de PHP sur le Raspberry Pi
III.3.7.4 Une base de données MySQL pour notre serveur
III.3.7.5 Les différentes étapes pour conception de notre site web PHP
III.4 Application de capture d’images via le robot
III.5 Conclusion
Conclusion générale
Bibliographie
Annexe
Résumé

Commande à distance d'un robot mobileTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *