Installation de Poppy Ergo Jr

À la date de l’installation, mon PC est sous Debian 11.

Officiel : Documentation / GitHub / Poppy Forum

1/ Préparer la carte SD

Télécharger le fichier image pour la Raspberry Pi 2 :
https://github.com/poppy-project/poppy-ergo-jr/releases

Décompresser le fichier téléchargé pour obtenir le fichier image.

Version 4.0.1 :
2021-10-20-poppy-ergo-jr.img.7z
MD5 sums : ce648d0eba1099520e982032b0a9ca86
2021-10-20-poppy-ergo-jr.img
MD5 sums : bc87deb721ee851ccd8cc06311cba514

Transférer l’image sur la carte SD :

sudo fdisk -l (pour avoir la liste des disques)
cd Téléchargements
sudo dd if=2021-10-20-poppy-ergo-jr.img of=/dev/sdf bs=1M status=progress (à adapter)

À adapter : On indique en sortie le nom d’un périphérique (ici sdf), pas celui d’une partition comme sdf1. Il faut attendre quelques minutes pour que l’opération se finisse.

On met la carte SD dans la Raspberry Pi, on connecte le robot au réseau local et on branche le transformateur (7,5 V / 2 A) sur la carte Pixl prévue pour le robot Poppy Ergo Jr. Le + de la prise du transformateur est au centre, le – à l’extérieur.

2/ Améliorer la sécurité

Par défaut, pour se connecter à Poppy :
login : poppy / password : poppy
Il existe aussi un autre mode administrateur :
login : pi / password : raspoppy
On va modifier leur mot de passe.

ssh pi@192.168.0.xxx (à adapter)
passwd pi (pour modifier le mot de passe)
sudo passwd poppy (pour modifier le mot de passe)

3/ Modifier la configuration

Dans la console :

sudo raspi-config

Network Options > Hostname (modifier poppy en POPPY)
Localisation Options > Change Locale : fr_FR.UTF8 UTF-8
                     > Change TimeZone : Europe > Paris
                     > Change Keyboard Layout
Advanced Options > Expand Filesystem

Network Options modifie les fichiers :
/etc/hostname
/etc/hosts

4/ Ports à ouvrir sur le routeur / firewall à l’adresse du robot et à destination de mon ordinateur

nmap -p- -v 192.168.0.xxx (à adapter)

Nmap scan report for 192.168.0.xxx :
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
80/tcp   open  http
2280/tcp open  lnvpoller
4000/tcp open  remoteanything
6969/tcp open  acmsoda
8000/tcp open  http-alt
8080/tcp open  http-proxy
8888/tcp open  sun-answerbook
9009/tcp open  pichat

5/ Utiliser Poppy en le connectant directement sur un PC

En général, on utilise Poppy en le branchant sur un routeur, mais on peut vouloir être indépendant de tout réseau, soit parce qu’il n’y a tout simplement pas de réseau, soit parce que Poppy n’est pas reconnu. La solution est donc de brancher directement Poppy sur un PC en utilisant un câble RJ45 croisé (chez moi, ça fonctionne aussi avec un câble droit).

sudo nano /boot/cmdline.txt

Rajouter à la fin de la première ligne : ip=192.168.0.xxx (à adapter).
Pour repérer les cartes réseaux :
ip addr (ou ip a)
On donne une adresse ip à la carte Ethernet du PC :
sudo ifconfig eth0 192.168.0.yyy up (eth0 et adresse ip à adapter)
On teste la connection avec Poppy :
ping 192.168.0.xxx (à adapter)

Remarque : Pour avoir accès à ifconfig, il faut installer sous Debian 11 le paquet net-tools :
sudo apt-get install net-tools

Dans le navigateur Internet, on accède à l’interface Poppy par : http://192.168.0.xxx (à adapter).

Alpha Rex 2.1

Programmation en NXC (extraits) :

// Jambe droite : Moteur B + Capteur de contact 1
#define RIGHT_MOTOR         OUT_B
#define RIGHT_TOUCH         S1
#define RIGHT_TOUCH_VAL     SENSOR_1  // Valeur de S1

// Jambe gauche : Moteur C + Capteur de contact 2
#define LEFT_MOTOR          OUT_C
#define LEFT_TOUCH          S2
#define LEFT_TOUCH_VAL      SENSOR_2  // Valeur de S2

// Les 2 jambes à la fois
#define MOTORS              OUT_BC

// Marche avant / arrière
#define FORWARDS 1
#define BACKWARDS 2

// Les autres capteurs utilisés ///////////////////////////////

// Capteur ultrasonique
#define ULTRASONIC          S4
#define ACTIVE_DISTANCE 30

// IMU (Inertial Motion Unit)
// https://www.dexterindustries.com/manual/imu-sensor/
#define IMU                 S3
#define IMU_ACC_ADDR 0x3A
#define IMU_GYR_ADDR 0xD2

// Les autres capteurs potentiels /////////////////////////////

// Capteur de couleurs
#define COLOR               S3
#define COLOR_VAL           SENSOR_3  // Valeur de S3

// Capteur de sons
#define SOUND               S4
#define SOUND_VAL           SENSOR_4  // Valeur de S4
void walkAngle (int direction, long angle) {
  
  ResetTachoCount(MOTORS);
  switch (direction) {
    case FORWARDS:
      // Les moteurs avancent synchronisés à la vitesse de 50 %
      OnFwdReg(MOTORS, 50, OUT_REGMODE_SYNC);
      while (MotorTachoCount(RIGHT_MOTOR) != angle);
      break;
    case BACKWARDS:
      // Les moteurs reculent synchronisés à la vitesse de 50 %
      OnRevReg(MOTORS, 50, OUT_REGMODE_SYNC);
      while (MotorTachoCount(RIGHT_MOTOR) != -angle);
      break;
  }
  Off(MOTORS);
}
void walkDuration (int direction, unsigned long duration) {

  unsigned long t0 = CurrentTick();  // Renvoie le temps en ms
  switch (direction) {
    case FORWARDS:
      // Les moteurs avancent synchronisés à la vitesse de 50 %
      OnFwdReg(MOTORS, 50, OUT_REGMODE_SYNC);
      while (CurrentTick () - t0 < duration);
      break;
    case BACKWARDS:
      // Les moteurs reculent synchronisés à la vitesse de 50 %
      OnRevReg(MOTORS, 50, OUT_REGMODE_SYNC);
      while (CurrentTick () - t0 < duration);
      break;
  }
  Off(MOTORS);
}

NXC et Geany sous Debian 11

NXC est un langage de programmation spécifique au robot Lego Mindstorms NXT. Il est basé sur le NBC, un langage assembleur.

Dans la console :
sudo apt-get install nbc

On va paramétrer Geany pour pouvoir compiler aussi bien des fichiers nxc que nbc. De plus on se basera sur la coloration syntaxique du langage C.

Dans ~/.config/geany, modifier le fichier filetype_extensions.conf :

#~ # Filetype extension configuration file for Geany
#~ # Insert as many items as you want, separate them with a ";".
#~ # See Geany's main documentation for details.
[Extensions]
NXC=*.nxc;*.nbc;

Dans ~/.config/geany/filedefs, créer un fichier filetypes.NXC.conf :

# For complete documentation of this file, please see Geany's main documentation

[styling=C]

[keywords=C]

[lexer_properties=C]

[settings]
lexer_filetype=C

# default extension used when saving files
extension=nxc

# single comments, like # in this file
comment_single=//
# multiline comments
comment_open=/*
comment_close=*/

[indentation]
width=2
# 0 is spaces, 1 is tabs, 2 is tab & spaces
type=0

[build-menu]
# %f will be replaced by the complete filename
# %e will be replaced by the filename without extension
# (use only one of it at one time)
FT_00_LB=Vérifier / Compiler
FT_00_CM=nbc %e.n*c
FT_00_WD=
FT_01_LB=Téléverser
FT_01_CM=nbc -S=usb -d %e.n*c
FT_01_WD=
FT_02_LB=
FT_02_CM=
FT_02_WD=
EX_00_LB=
EX_00_CM=
EX_00_WD=

Dans ~/.config/geany/templates/files, créer un fichier program.nxc :

// Lego Mindstorms NXT

Enregistrer les fichiers sources au format nxc, puis compiler (touche F8). Le téléversement sur la brique NXT se fait avec la touche F9 (ne pas oublier de vérifier que la brique NXT est allumée, sinon Geany indique « Compilation échouée »).

Remarque : Depuis que j’ai mis à jour Debian, le tiret bas (du 8) ne s’affiche plus dans Geany. La solution est de modifier la police de caractères dans Éditer > Préférences > Interface > Polices Éditeur (par exemple Liberation Mono Regular à la place de Monospace Regular).

VICE : Émulateur C64 sous Debian 11

Afin de préserver mon Commodore 64, j’ai installé l’émulateur VICE (version 3.5 sous Debian 11) : sudo apt-get install vice
Télécharger la ROM du C64 sur www.zimmers.net > Commodore > FTP Files Area > crossplatform > emulators > VICE > VICE 3.5 source code (vice-3.5.tar.gz).
Décompresser l’archive.

cd ~/Téléchargements
sudo cp -vR vice-3.5/data/* /usr/share/vice

Pour pouvoir sauvegarder ses programmes dans un répertoire personnel sous Debian, aller dans Settings > Settings … > Peripheral devices > Drive settings puis cocher IEC Device. Dans Filesystem Device, sélectionner le répertoire désiré en cliquant sur Browse. Puis aller dans Settings > Save settings.

Aide mémoire :
ALT D : Pour passer en plein écran et revenir en fenêtré.
ALT J : Pour inverser Joystick.
Pour lire un fichier .D64 : LOAD "*",8 puis éventuellement RUN.
RUN/STOP du C64 correspond à la touche ESC du PC.
Pour lire un fichier .TAP : LOAD

Commodore 64 : Guide de référence du programmeur

Installation de DOSBox sous Debian 11

DOSBox est un émulateur simulant un environnement compatible MS-DOS dans le but d’exécuter des programmes développés autrefois pour ce système.

Dans la console :
sudo apt-get install dosbox
mkdir ~/DOSBox (ou un autre chemin)
nano ~/.dosbox/dosbox-0.74-3.conf

Modifier le fichier dosbox-0.74-3.conf :
[cpu]
cycles=max
(à la place de cycles=auto)
[dos]
keyboardlayout=fr
(à la place de keyboardlayout=auto)
[autoexec]
mount c ~/DOSBox
(pour un chemin qui contient des espaces, mettre le chemin entre guillements : " ")

Lancer DOSBox depuis la console :
dosbox

Dans DOSBox :
c:
dir

Pour basculer entre le mode fenêtré et le mode plein écran, presser Alt-Entrée. Pour libérer le curseur de la souris, presser Ctrl-F10.


Complément personnel à mettre dans le fichier dosbox-0.74-3.conf dont il est question ci-dessus :

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c "/media/eric/Fichiers Eric/Programmation/DOSBox/"
c:

### OPEN WATCOM 1.9 ###
path=%path%;c:\watcom\binw       
set include=c:\watcom\h
set watcom=c:\watcom
set edpath=c:\watcom\eddat
set wipfc=c:\watcom\wipfc

### TURBO PASCAL 7.0 ###
path=%path%;c:\tp7\bin

### NASM 2.15.05 ###
path=%path%;c:\nasm

Outils de développement que j’installe :
Open Watcom C/C++ 1.9 => Lien intéressant pour l’installation
Turbo Pascal 7.0
NASM 2.15.05 => Manuel en ligne

Installer Mednum Offline Player sous Debian 11

Site : https://vod.mediatheque-numerique.com
Version du lecteur VOD : 4.5.0

Dans la console :

Si le répertoire Mednum Offline Player n’existe pas déjà, je le crée :
sudo mkdir /usr/share/mednum-offline-player

Je télécharge l’application : mednum-offline-player.AppImage

J’installe l’application à l’endroit voulu :
cd Téléchargements
sudo mv mednum-offline-player.AppImage /usr/share/mednum-offline-player

Je rends le fichier exécutable :
sudo chmod +x /usr/share/mednum-offline-player/mednum-offline-player.AppImage

Pour intégrer le programme au menu de Mate, je crée un fichier mednum-offline-player.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano mednum-offline-player.desktop

[Desktop Entry]
Type=Application
Name=Mednum Offline Player
Comment=Arte VOD
Exec=/usr/share/mednum-offline-player/mednum-offline-player.AppImage
Icon=appimagekit-mednum offline player
X-AppImage-Version=4.5.0
Terminal=false
Categories=AudioVideo;Player;

Pour effacer une version précédente de Mednum Offline Player (à adapter) :
sudo rm -rf /usr/share/mednum-offline-player/mednum-offline-player.AppImage

Calculatrice Numworks et Debian 11

Sous Debian 11, pour mettre à jour la calculatrice NumWorks, il faut au préalable installer sur son ordinateur le fichier 50-numworks-calculator.rules dans le répertoire /etc/udev/rules.d/.

Dans la console, on tape :
wget https://cdn.numworks.com/f2be8a48/50-numworks-calculator.rules
sudo mv 50-numworks-calculator.rules /etc/udev/rules.d/50-numworks-calculator.rules

La mise à jour se fait depuis le Workshop.

Installation de VirtualBox 6.1.38 dans Debian 11

Au préalable, aller dans le BIOS :
Avancé > Configuration Processeur > Technologie Intel Virtualization > Active

Site officiel : https://www.virtualbox.org

Télécharger VirtualBox (6.1.38) et VirtualBox Extension Pack (6.1.38) :
=> https://download.virtualbox.org/virtualbox/6.1.38/virtualbox-6.1_6.1.38-153438~Debian~bullseye_amd64.deb
=> https://download.virtualbox.org/virtualbox/6.1.38/Oracle_VM_VirtualBox_Extension_Pack-6.1.38.vbox-extpack

Dans la console :

cd Téléchargements
sudo gdebi virtualbox-*.deb

Ouvrir VirtualBox et installer l’extension téléchargée précédemment :
Paramètres > Extensions > Ajoute une nouvelle extension

Dans la console :

Pour connaître les versions installées de headers / image :
uname -a
apt policy linux-headers-amd64 linux-image-amd64
Installation :
sudo apt-get install linux-headers-amd64
sudo apt-get install linux-image-amd64

Redémarrer l’ordinateur.

Dans la console :

cd /sbin
sudo ./vboxconfig

On peut maintenant installer des machines virtuelles…

Si besoin, installer les Additions invité sur la machine virtuelle (permet notamment le partage de dossiers entre l’hôte et l’invité).

Installer Molotov 4.5.1 sous Debian 11

Dans la console :

Si le répertoire Molotov n’existe pas déjà, je le crée :
sudo mkdir /usr/share/molotov

Je télécharge l’application : Molotov-4.5.1.AppImage

J’installe l’application à l’endroit voulu :
cd Téléchargements
sudo mv Molotov-*.AppImage /usr/share/molotov

Je rends le fichier exécutable :
sudo chmod +x /usr/share/molotov/Molotov-*.AppImage

Je télécharge l’icône Molotov et l’installe à l’endroit voulu :
wget http://entropie.org/3615/download/molotov.png
sudo mv molotov.png /usr/share/molotov

Pour effacer une version précédente de Molotov (à adapter) :
sudo rm -rf /usr/share/molotov/Molotov-*.AppImage

Pour intégrer le programme au menu de Mate, je crée un fichier molotov.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano molotov.desktop

[Desktop Entry]
Type=Application
Name=Molotov
Comment=TV
Exec=/usr/share/molotov/Molotov-4.5.1.AppImage --no-sandbox
Icon=/usr/share/molotov/molotov.png
Terminal=false
Categories=AudioVideo;Player;