Modules techniques/Flashage STM32 sans-fil

De Polybot Grenoble
Sauter à la navigation Sauter à la recherche

Présentation

Lors de nos phases de test, nous nous sommes rendus compte que brancher la STM32, changer le jumper pour changer l'alimentation de batterie à USB, charger le nouveau programme sur la STM32, débrancher le câble et permuter le jumper est un processus long à réaliser. Il est à effectuer à chaque fois que nous voulons mettre un nouveau programme sur le robot, et cela arrive souvent quand vous faites des essais. De plus, chaque manipulation du robot augmente le risque de l’abîmer, de débrancher des connectiques etc.

Nous voulons pouvoir flasher la STM32 présentes sur le robot de manière sans-fil. Pour cela, nous embarquerons une raspberry Pi sur le robot. Notre STM32 sera branchée sur la raspberry Pi. Nous serons connectés en Wi-Fi avec cette dernière sur nos ordinateurs personnels via un réseau local. Par le biais d'une liaison SSH et des scripts, nous pourrons envoyer directement notre exécutable binaire sur la STM32.

Un travail avait déjà été réalisé par d'anciens membres de Polybot: Ulysse Gaffet et Andy Robin lors de leurs projets d'IESE4 en 2016/2017. Nous avons repris leur travail en le simplifiant car notre application était plus simple.

Le travail effectué est destiné à simplifier notre travail pour la coupe de France de robotique, mais est utilisable pour n'importe quel projet.

Participant

Prénom & Nom Filière
Justin RUAUX IESE
Yassir ZRAIGUI IESE

Documentations et travaux réalisés

Le but final de ce projet est de pouvoir communiquer avec le Raspberry depuis n'importe quel pc et d'y envoyer le fichier binaire créer lors de la compilation du programme. Afin d'exécuter le programme, il suffira de mettre ce fichier sur le port USB de la Stm32 à partir du Raspberry. En bref:

PC -> Raspberry -> Stm32

Étape 1 : Configurer le Raspberry pi en tant que serveur

Avant toute chose, assurez-vous que le Raspberry et le pc client sont connectés sur le même réseau (wifi-campus ne fonctionne pas. Effectuez un partage réseau depuis votre mobile si le réseau local n'est pas configuré.)

Rien de bien compliqué, il suffit de rentrer quelques lignes de commande sur le terminal :

1) Télécharger le packet openssh-server <syntaxhighlight lang="dos"> sudo apt-get install openssh-server </syntaxhighlight>

2) Démarrer le serveur : <syntaxhighlight lang="dos"> sudo /etc/init.d/ssh start </syntaxhighlight>

3) Identifier l'adresse IP du Raspberry <syntaxhighlight lang="dos"> hostname -I </syntaxhighlight>

Étape 2 : Connecter votre pc au Raspberry

Sur Linux

Il suffit de rentrer la commande suivante : <syntaxhighlight lang="dos"> ssh login@ip </syntaxhighlight> en remplaçant "login" par "pi" et "ip" par l'adresse IP du Raspberry. Après quelques secondes, on vous demandera le mot de passe, par défaut, c'est : "raspberry"

Sur Windows

Il vous faudra télécharger le logiciel "Putty", disponible gratuitement sur Internet. Ouvrez-le, vérifiez que la case SSH est bien cochée, le port devrait être 22. Entrez ensuite l'adresse IP du Raspberry. Une fenêtre devrait s'ouvrir, et au bout de quelques secondes, on vous demandera l'identifiant, entrez "pi". On vous demandera ensuite le mot de passe, c'est "rapsberry" par défaut.

Étape 3 : Envoie du fichier binaire sur le Raspberry

1) Éditez le fichier Transfert.bat (Disponible sur le drive) et modifiez l'adresse IP. Si besoin modifiez aussi le nucleo de la carte (Par défaut F446RE).

Si vous n'avez pas le fichier à votre disposition, simplement copier le bout de code ci-dessous dans un bloc-note et sauvegardez-le en .bat.

<syntaxhighlight lang="dos"> ECHO OFF

set /p arg1=Entrer le nom du fichier: echo user entered %arg1%

scp %arg1%.bin pi@192.168.43.98:/media/pi/NODE_F446RE </syntaxhighlight>

2) Glisser ce fichier dans le répertoire "Debug" de votre projet

  Par défaut, il se trouve dans
C:\Utilisateurs\"Votre_compte_utilisateur"\STM32CubeIDE\"Votre_espace_de_travail"\"Votre_projet"\

3) Vérifier que le fichier "Votre_projet".bin s'y situe

4) Exécuter le fichier .bat

5) Entrez le nom de votre projet

6) Entrez le mot de passe ("raspberry" par défaut)

Si tout ce passe bien, votre code a dû être compilé.