[Tutoriel] Créer un système de commande vocale avec Orange Pi

(Le son émis par Snips n’est pas disponible car il n’y a pas de haut-parleur)

Sur la base du système Open Source Snips, il est possible de créer un système de commande vocale hors ligne. Afin de le créer, il est nécessaire d’avoir un PC, une carte Orange Pi Zéro Plus 2 H3, son shield et une carte SD dont la capacité est d’au moins 4Go. La carte est conçue par Xunlong.

Etape 1: Faire un setup du PC

Sous Linux :
La plateforme Snips est basée sur Linux terminal. Il n’est pas nécessaire de faire un setup.

Sous Windows :
Il faut quelques étapes préparatoires pour simuler l’environnement Linux afin d’utiliser Snips.

  1. Ouvrez Windows PowerShell en tant qu’administrateur (touche Win + x, a) et tapez la commande suivante :

    > Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  2. Choisissez la distribution de Linux depuis le Microsoft Store

  3. Tapez « bash » dans un barre d’adresse.

  4. Changez le mot de passe pour utiliser la commande sudo :

    Cf. https://docs.microsoft.com/en-us/windows/wsl/user-support

(Source : https://docs.microsoft.com/en-us/windows/wsl/install-win10)

Etape 2: Faire un setup de la carte

La première tâche est d’installer un système d’exploitation dans la carte Orange Pi. Puis, formatez la carte SD.

Sous Windows 10, utilisez le logiciel SD Memory Card Formatter fourni par SD Association pour formater la carte puis Win32DiskImager  pour écrire l’image fourni ci-dessous:
OPi_Snips.img (4Go)

Sous Linux, utilisez gparted pour formater la carte en format FAT32 puis saisissez:
dd if=/[CHEMIN]/OPi_Snips.img of= /dev/sdX
« /dev/sdX » est votre carte SD. Identifiez-la avec la commande « sudo fdisk -l« .

Actuellement, il n’y a que Armbian Stretch dans laquelle plateforme Snips fonctionne correctement.

Etape 3: Utilisation de l’assistant vocal :

Dites Hey Snips”. Après un bip sonore ou un peu de temps, dites « Allumer la lumière » ou « Eteindre la lumière » et le pin GPIO 12(PA12) sera allumé (3.3V) ou éteint.

Pour modifier l’action,
Modifiez :
/var/lib/snips/skills/Snips-ContactSec-Opi/action-contact.sec.py

Puis,
lancez :
$ sudo service snips-skill-server restart

Pour manipuler des pins multiples,
Ajoutez dans le script :
OPiGPIO.gpio_config([NUMERO_PIN])
pour allumer un pin GPIO :
OPiGPIO.gpio_on([NUMERO_PIN])
ou
pour éteindre un pin GPIO :
OPiGPIO.gpio_off([NUMERO_PIN])
OPiGPIO.gpio_unexport([NUMERO_PIN])

Example:
#Pour allumer un pin GPIO 7
OPiGPIO.gpio_config(7)
OPiGPIO.gpio_on(7)
OPiGPIO.gpio_unexport(7)

 
Source : https://stackoverflow.com/questions/46463724/accessing-gpio-on-orangepi-pc-plus-h3-on-armbian-3-4-113-and-newer

NUMERO_PIN : (la position d’une lettre – 1) * 32 + le numéro de pin.

Par exemple, le NUMERO_PIN de PA12 est calculé dans la manière suivante :

A = 1ère position

Le numéro de pin = 12

Alors, NUMERO_PIN = (1 – 1) * 32 + 12 = 12

Pour aller plus loin, vous pouvez regarder la documentation sur notre Github.

[Tuto] Rétro Pi sur Raspberry Pi 2

Aujourd’hui nous ajoutons au catalogue des manettes rétros de NES, l’occasion parfait de vous parler de Rétro Pi.

Rétro Pi est une distribution pour Raspberry Pi ayant pour but d’émuler d’anciennes consoles de jeux vidéos. Ces distributions sont compatibles tous Raspberry Pi, et permettent de gérer les manettes USB comme les extensions pour boutons d’arcades et joysticks. Nous allons l’installer sur un Raspberry Pi 2 avec 2 manettes NES en USB.

Première étape: Télécharger l’image Retro Pi

Le site Rétro Pi propose une page pour télécharger les différentes images existantes: https://retropie.org.uk/download/

Comme d’habitude, choisissez une carte SD suffisamment grande (4Go dans notre cas), formatez la et gravez l’image dessus.

Deuxième étape: Paramétrer les manettes

Au démarrage de votre Raspberry Pi, celui-ci détecte les manettes et vous propose de les paramètrer.

welcomescreen

Troisième étape: Ajouter quelques ROMs

Pour cela de nombreux sites permettent de télécharger les ROMs de vos jeux favoris. En voici un exemple: http://www.freeroms.com

Pour les ajouter à votre Retro Pi, voici les étapes à suivre:

  • Formater une clé USB (FAT32)
  • Créer un répertoire « retropie » avec votre ordinateur
  • Brancher la clé au Raspberry Pi
  • Attendre qu’elle arrête de clignoter
  • Débrancher du Raspberry Pi et rebrancher à votre ordinateur
  • Des répertoires ont dû être créés, vous pouvez vos ROMS dans « retropie/roms » (attention à bien choisir la console en question)
  • Rebrancher la clé au Raspberry Pi
  • Attendre qu’elle arrête de clignoter
  • Redémarrer la console (Menu « restart emulationstation »)

Profitez!

retropie-original-flat-outline

[Tuto] Gobot framework avec Arduino, Raspberry et de nombreuses autres plateformes

Gobot est un framework spécialisé dans les objets connectés (IOT). Il permet, à partir d’une machine hôte, de contrôler plusieurs plateformes tels qu’Arduino et de les lier les uns aux autres à l’aide d’un seul langage le « Golang » (langage de programmation crée par Google en 2009)

Voici l’architecture de Gobot:

Capture

Ainsi dans cette architecture seul l’hôte est programmé en Golang, au niveau des microcontrôleurs ils auront un programme initial indépendant de l’hôte et des capteurs/ actionneurs qui lui sont connectés.

Il faut savoir que certaines plateformes ont à la fois la possibilité d’être en hôte (ex: Pc sous windows) mais aussi certaine intègre une partie microcontrôleurs qui leur permet d’être reliés directement au capteurs/actionneurs (ex: Raspberry, CHIP) ainsi vous pourrez programmer votre carte en Golang pour communiquer avec ces capteurs/actionneurs.

Exemple de plateforme:

A partir d’ici il va être décrit une méthode qui permet de configurer votre ordinateur sous Windows en tant qu’hôte pour ensuite exécuter un programme en Golang, l’exemple qui suit consiste à faire clignoter la LED 13 de l’Arduino Uno mais bien entendu une fois que vous aurez pris en main ce langage vous pourrez faire de nombreuse choses.

Matériels nécessaire:

1 – Téléchargement des sources nécessaires

2 – Procédure d’installation

Gort

  • Décompresser Gort dans un dossier que vous nommerez Go
  • Ouvrir votre invite de commande en administrateur
  • Aller dans le dossier Go avec les commande « CD » et « LS »
  • Taper la commande, « gort arduino install »
  • Vous devriez voir apparaître une fenêtre d’installation, finalisez l’installation

Git

  • Installer GITHUB

Configuration du PC

  • Aller dans « panneau de configuration -> système et sécurité -> système -> Paramètre système avancés » ajouter la variable d’environnement suivante : nom de la variable :GOPATH , valeur de la variable: mettre le chemin jusqu’au dossier GO
  • Ouvrir l’invite de commande :
  • Taper : go get github.com/tarm/goserial
  • Taper go get -u github.com/hybridgroup/gobot && go install github.com/hybridgroup/gobot/platform/firmata

Configuration de l’arduino

  • Ouvrez l’IDE arduino
  • Aller dans fichier -> exemples -> firmata -> StandardFirmata
  • Téléverser le programme dans l’arduino Mega
  • Relever le numéro de port COM de votre arduino nécessaire pour la suite

3 – Exécution du programme Go

  • Ouvrez le fichier firmata_blink.go
  • Modifiez à la ligne 14 « /dev/ttyACM0 » par le port « COMX »relevé dans l’étape précédente
  • Ouvrir l’invité de commande
  • Taper : go run firmata_blink.go
  • Vous pouvez maintenant observer la LED L de l’Arduino clignoter

Maintenant à vous de réaliser de superbes projets.

Ressources:

GOBOT IO

[Tuto] Passer le Raspberry Pi en mode Kiosque

Le mode Kiosque permet d’utiliser son Raspberry comme une tablette ayant une seule application sans avoir les accès à la partie bureau du Raspberry. C’est par exemple l’idée sur des produits comme des distributeurs ou des systèmes équivalents. Cet article est basé sur l’idée de mettre en place plusieurs modifications à la configuration dans ce sens.

Les distributions Linux offrent plusieurs possibilités pour placer ses paramétrages pour les réglages à mettre en oeuvre au démarrage. En voici quelques uns:

  • sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
  • sudo nano /etc/xdg/lxsession/LXDE/autostart
  • sudo nano ~/.config/lxsession/LXDE-pi/autostart
  • sudo nano ~/.config/lxsession/LXDE/autostart

Les paramètrages de bases sont:

@lxpanel –profile LXDE
@pcmanfm –desktop –profile LXDE
@xscreensaver -no-splash

Ils vont:

  • Afficher les panels
  • Gérer la navigation
  • Enlever l’économiseur d’écran

Lancer automatiquement une application

Vous pouvez ensuite lancer des applications. Par exemple:

@epiphany http://localhost/

Pour démarrer le navigateur sur la page locale

Supprimer le mode veille

Il existe l’utilitaire xset pour cela:

@xset -dpms

@xset s off

@xset s noblank

Permet de supprimer toute veille.

Supprimer le curseur de la souris

Pour cela, on utilise une application spécifique. Il suffit donc simplement de l’installer avec la commande sudo apt-get install unclutter

Créer un serveur d’impression 3D avec Octopi

L’impression 3D est une technologie émergente. De nombreux services émergent avec elle. Nous avons chercher un service de gestionnaire d’impression à mettre en place avec notre Prusa i3. Nous avons trouvé Octopi un système fonctionnant sur Raspberry Pi et permettant de superviser les impressions au travers d’une interface Web.

Tuto installation serveur d’impression 3D octoPi sur RaspberryPi

Requirements

Etape 1 : formater sa carte SD

Tapez la commande sudo fdisk -l pour lister vos partitions

Chez moi cela affiche :

sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 têtes, 63 secteurs/piste, 121601 cylindres, total 1953525168 secteurs

Unités = secteurs de 1 * 512 = 512 octets

Taille de secteur (logique / physique) : 512 octets / 4096 octets

taille d’E/S (minimale / optimale) : 4096 octets / 4096 octets

Identifiant de disque : 0x0070ab58

Périphérique Amorçage  Début         Fin      Blocs    Id. Système

/dev/sda1               1  1953525167   976762583+  ee  GPT

La partition 1 ne commence pas sur une frontière de cylindre physique.

Disque /dev/sdb : 7958 Mo, 7958691840 octets

245 têtes, 62 secteurs/piste, 1023 cylindres, total 15544320 secteurs

Unités = secteurs de 1 * 512 = 512 octets

Taille de secteur (logique / physique) : 512 octets / 512 octets

taille d’E/S (minimale / optimale) : 512 octets / 512 octets

Identifiant de disque : 0x000b5098

Périphérique Amorçage  Début         Fin      Blocs    Id. Système

/dev/sdb1            8192      122879       57344    c  W95 FAT32 (LBA)

/dev/sdb2          122880     5785599     2831360   83  Linux

Ma carte sd est sur /dev/sdb. Pour être sur, je vous conseil de faire un premier fdisk -l sans votre carte sd dans l’ordinateur, puis un second avec la carte, pour bien voir la différence.

Maintenant que vous connaissez l’emplacement de vorte carte sd nous allons la sélectionner :

sudo fdisk /dev/sdb

Vous êtes à présent dans l’utilitaire fdisk. Tapez p pour lister les partitions de votre périphérique :

Commande (m pour l’aide) : p

Disque /dev/sdb : 7958 Mo, 7958691840 octets

245 têtes, 62 secteurs/piste, 1023 cylindres, total 15544320 secteurs

Unités = secteurs de 1 * 512 = 512 octets

Taille de secteur (logique / physique) : 512 octets / 512 octets

taille d’E/S (minimale / optimale) : 512 octets / 512 octets

Identifiant de disque : 0x000b5098

Périphérique Amorçage  Début         Fin      Blocs    Id. Système

/dev/sdb1            2048    15544319     7771136    b  W95 FAT32

Cela vous donne un ensemble d’informations sur vos partitions, leur taille, leur systeme de fichiers, etc.

Pour supprimer la partition existante tapez : d , puis sélectionnez la partition : 1.

Si votre carte contient plusieurs partitions, supprimez les toutes en répétant l’opération.

Ensuite créez la nouvelle partition avec la suite de commande :

  • n
  • Indiquez le type de partition : p
  • Son numéro : 1
  • valeur par défaut : appuyez sur <entrer>
  • valeur par défaut : appuyez sur <entrer>

Le résultat chez moi :

Commande (m pour l’aide) : n

Partition type:

  p   primary (0 primary, 0 extended, 4 free)

  e   extended

Select (default p): p

Numéro de partition (1-4, 1 par défaut) : 1

Premier secteur (2048-15544319, 2048 par défaut) :

Utilisation de la valeur 2048 par défaut

Dernier secteur, +secteurs ou +taille{K,M,G} (2048-15544319, 15544319 par défaut) :

Utilisation de la valeur 15544319 par défaut

Vous pouvez relancer la commande : p , pour vérifier que votre partition a bien été créée.

Commande (m pour l’aide) : p

Disque /dev/sdb : 7958 Mo, 7958691840 octets

245 têtes, 62 secteurs/piste, 1023 cylindres, total 15544320 secteurs

Unités = secteurs de 1 * 512 = 512 octets

Taille de secteur (logique / physique) : 512 octets / 512 octets

taille d’E/S (minimale / optimale) : 512 octets / 512 octets

Identifiant de disque : 0x000b5098

Périphérique Amorçage  Début         Fin      Blocs    Id. Système

/dev/sdb1            2048    15544319     7771136   83  Linux

Il faut maintenant changer son filesysteme en FAT32 avec les commandes :

  • t
  • b

Résultat :

Commande (m pour l’aide) : t

Partition sélectionnée 1

Code Hexa (taper L pour lister les codes): b

Type système de partition modifié de 1 à b (W95 FAT32)

Pour terminer tapez la commande : w. C’est l’étape finale qui va écrire la nouvelle table de partition sur votre carte SD.

Résultat :

Commande (m pour l’aide) : w

La table de partitions a été altérée.

Attention : si vous avez créé ou modifié une partition DOS 6.x,

veuillez consulter les pages du manuel de fdisk pour des informations

complémentaires.

Synchronisation des disques.

Etape 2 : copier le .img sur la carte SD

Cela se traduit en une commande :

sudo dd if=~/2014-06-20-wheezy-octopi-0.9.0.img of=/dev/sdb

Mettez après le if= le chemin vers le .img présent sur votre ordinateur et après le of= le chemin vers votre carte SD.

ATTENTION, après le of=, ne pas indiquer le chemin vers la partition, mais bien vers le périphérique.

Pas d’inquiétude si la commande semble ne plus répondre, cela peut prendre de longues minutes pour copier l’ensemble de l’image (qui fait quand même 3Go) vers la carte SD.

Etape 3 : Configurer le raspberry

Une très bonne vidéo sur l’installation d’octoPi est visionnable ici : https://www.youtube.com/watch?v=EHzN_MwunmE

Démarrage de Raspbian :

Au premier démarrage, vous arriverez par défaut sur l’interface clavier de configuration du raspberry.

Sélectionnez “Expand filesystem” pour que le système puisse utiliser toute la mémoire disponible sur votre carte SD.

Puis sélectionnez “finish”.

Le raspberry va vous proposer de redémarrer, pour pouvoir prendre en compte les nouveaux paramètres que vous venez de configurer.

Pour modifier le layout du clavier en français, modifiez le fichier /etc/default/keyboard comme ceci :

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL= »pc105″

XKBLAYOUT= »fr »

XKBVARIANT= »latin9″

XKBOPTIONS= » »

BACKSPACE= »guess »

Si vous utilisez un rasperry relié au reseau par ethernet vous pouvez sauter la fin de l’étape.

Configuration de la wifi :

Le processus d’installation dépend du modèle de votre dongle wifi. La liste des dongles compatibles avec le raspberry est disponible ici :  http://elinux.org/RPi_USB_Wi-Fi_Adapters

Branchez votre dongle wifi au raspberry.

Pour connaître les détails de son dongle, qui permettront d’installer les drivers correspondant tapez la commande : lsusb. Chez moi, le résultat est :

Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 003: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB

Bus 001 Device 004: ID 413c:2003 Dell Computer Corp. Keyboard

Bus 001 Device 005: ID 0bda:8179 Realtek Semiconductor Corp

Mon dongle wifi est le device 5, qui a pour id : 0bda:8179

Si c’est aussi votre cas, vous trouverez les drivers correspondant ainsi que les instructions pour l’installer à l‘adresse : http://www.fars-robotics.net/

Sinon, faites une recherche google du genre “[id de votre dongle usb] drivers raspberry” pour trouver les instructions appropriées.

Une fois les drivers installés, il faut configurer les paramètres de connexion au réseau dans le fichier /etc/network/interfaces.

Editez le fichier : sudo nano /etc/network/interfaces

Avec les paramètres suivants :

auto lo

iface lo inet loopback

iface eth0 inet dhcp

allow-hotplug wlan0

iface wlan0 inet manual

wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp

Puis éditez le fichier /etc/wpa_supplicant/wpa_supplicant.conf :

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Avec les paramètres suivants :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

network={

   ssid= »le_nom_de_mon_reseau »

   proto=RSN

   key_mgmt=WPA-PSK

   pairwise=CCMP TKIP

   group=CCMP TKIP

   psk= »mon_mot_de_passe »

}

Votre réseau est maintenant configuré. Il devrait se connecter à chaque démarrage sur le réseau défini.

Si il ne se connecte pas automatiquement, forcez le démarrage de la wifi au boot en modifiant le fichier /etc/rc.local

sudo nano /etc/rc.local

ajouter la ligne suivante avant le exit0 :

sudo ifconfig wlan0 up

Il vous suffit maintenant d’ouvrir un navigateur et de visiter l‘url : octopi.local pour accéder à l’interface octoPi 🙂

[Tuto] Airplay et Raspbian

Il y a quelques jours, nous vous présentions comment installer le Airplay sur un Raspberry grace à l’option inclue dans XBMC (Voir le tuto ici). Aujourd’hui nous allons vous montrer comment l’ajouter sur un Raspberry Pi fonctionnant sous Raspbian.

Pour cela, une fois votre Raspbian installé et configuré selon vos préférences (Pour rappel Raspbian est dispo ici seul ou inclu dans NOOBS), lancez le terminal en mode ROOT et saisissez les commandes suivantes:

sudo aptitude install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils
git clone https://github.com/albertz/shairport.git shairport
cd shairport
make
sudo make install

Pour tester Shairport, il suffit de le lancer:

/shairport.pl -a ShairPort

Si vous êtes confrontés à l’erreur:

Can't locate Net/SDP.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ./shairport.pl line 48.
BEGIN failed--compilation aborted at ./shairport.pl line 48.

Il vous faudra ajouter:

sudo cpan install Net::SDP

Si vous souhaitez automatiser son démarrage n’hésitez pas à ajouter:

sudo cp ./shairport.init.sample /etc/init.d/shairport
sudo chmod a+x /etc/init.d/shairport

Il est possible de changer le nom de la borne Airplay en modifiant l’option -a dans le script par:

DAEMON_ARGS="-w $PIDFILE -a ShairPort"

ou en allant modifier le fichier «  » dans /etc/init.d/shairport » à la ligne « NAME= »

Il ne reste plus qu’à le lancer:

sudo update-rc.d shairport defaults
sudo service shairport start

L’installation est achevée. Pour tester son bon fonctionnement prenez votre iphone/ipad and enjoy!

Merci à Nico Largo pour la source: http://blog.nicolargo.com/2013/03/utiliser-votre-raspberry-pi-comme-borne-airplay.html

 

Fixer un Raspberry Pi au dos d’une télé

Voici une petite astuce pour fixer votre Raspberry Pi au dos d’un écran plat. Pour cela, il faut utiliser les embases prévues pour fixer l’écran au mur et y visser la partie amovible du boitier de Raspberry Pi.

IMG_1807
IMG_1808

[Tuto] Mettre le Airplay sur un Raspberry Pi

Le tuto d’aujourd’hui consiste à mettre le Airplay (Protocole de diffusion de son d’Apple) sur un Raspberry Pi.

Les premières étapes se déroulent sur un autre ordinateur ayant un accés internet.

Télécharger l’OS pour Raspberry Pi ici NOOBS v 1.3.3 (http://www.raspberrypi.org/downloads)

Télécharger un formateur de carte SD (https://www.sdcard.org/downloads/formatter_4/). Avec SDFormatter 4 lancer le logiciel, sélectionner la lettre correspondant à votre carte SD et cliquer sur « Format »

Copier coller l’OS NOOBS sur la carte SD

Vous pouvez passer ces étapes en achetant une carte pré-installée comme proposé en boutique.

Introduisez maintenant la carte SD dans le Raspberry Pi. Dans notre cas nous connectons au Raspberry un clavier, une souris, un écran sur le port HDMI, des enceintes sur le port Jack, le réseau via Ethernet et l’alimentation par le port micro-usb.

Au démarrage, NOOBS se met en place de lui même. Plusieurs OS vous sont proposer. Le plus simple est de choisir Raspbmc. Ceci est un mediacenter contenant déjà une option pour activer le Airplay. Sélectionnez donc Raspbmc et lancer l’installation.

IMG_1809

Celle-ci va prendre quelques minutes.

IMG_1810

Durant l’installation, pensez à choisir la langue et le type de clavier (en bas de page).

Une fois l’installation terminée cliquez sur OK et laissez redémarrer le Raspberry.

IMG_1811

Laisser l’installation de XBMC se terminer d’elle-même. Cela va prendre plusieurs minutes.

Une fois lancé XBMC va vous demander de choisir votre langue puis redémarrer.

IMG_1812

Pour activer le Airplay, allez dans « System » / « Setting »

IMG_1813

Allez ensuite dans l’onglet « AirPlay »

IMG_1814

Cliquez sur « Allow XBMC to receive AirPlay content »

IMG_1815

Fermer ensuite la fenêtre en cliquant sur la maison en bas à droite

Désormais depuis votre iphone vous pouvez diffuser votre music

IMG_1819
IMG_1818
IMG_1817