mars 23

RadioPi

But: transformer un vieux poste radio a lampes HS des années 60/70 récupéré en vide grenier en poste mp3 avec un raspberry Pi.

Au niveau Matériel :
– un vieux poste radio a lampes HS des années 60/70
– un Raspberry Pi
– un ampli 2.1 20W
– 3 HP 5W
– un Afficheur 128×128 pixels
– deux encodeurs rotatifs
– un disque dur SSD avec adaptateur USB
– horloge RTC en I2C
– bande de led RGB
– deux alimentations 220v/5V  ( une pour la partie Audio , l’autre pour la partie “numérique” 5A) et conneteur alimentation et interrupteur M/A
– un ventilateur 5V avec grille
– un disque dur SSD ( dans mon cas un 120Go)

ou trouvez les divers éléments :
1 x Raspberry Pi
2 x 3-inch-Full-Range-Speaker-4ohm-5W
1 x 4-Pouces Haut-Parleur-4-Ohm-15-W graves
1x Ampli 2.1 20W 5V
2 x Encodeur rotatif
1 x Horloge I2C 
2 x alimentation 220v -5v 3A
2 x câble USB
1 x câble réseau
1 x ventilateur 5v+1 x grille 60mm
1 x interrupteur + 1 x connecteur alimentation

 

Au niveau logiciel :
– Raspbian lite dernière version
– daemon mpd
– python3
– scripts divers ( gestion des encodeurs rotatif en émulation clavier UP,DOWN,LEFT,RIGHT,ENTER,PLAUY/PAUSE).

 

Photos de la transformation :

bon j’avoue en étant électronicien / informaticien , je déteste la partie “mécanique” ( boitier et autre ) , c’est donc mon beau-frère qui s’occupe de cette partie en plus ayant son Fablab perso il a tous les outils nécessaire

pour remplacer la lampe de “l’Œil magique” un afficheur 1.44” SPI  de 128×128 pixels qui permettra d’afficher divers menu et aussi la pochette de la piste en cours a base de st7735 / ili9163

 

câblage des GPIO ( provisoire)

Name Usage Board Usage Name
3.3V RTC.VCC 01 | | 02 LED.VCC 5V
GPIO02 RTC.SDA 03 | | 04 LCD.VCC 5V
GPIO03 RTC.SCL 05 | | 06 GND
GPIO04 07 | | 08 U_TXD GPIO14
GND RTC.GND 09 | | 10 U_RXD GPIO15
GPIO17 ENC1.B 11 | | 12 SPI1_CE0 GPIO18
GPIO27 ENC1.A 13 | | 14 LCD.GND GND
GPIO22 ENC1.SW 15 | | 16 LCD.LED GPIO23
3.3V 17 | | 18 LCD.A0 GPIO24
GPIO10 LCD.SDA 19 | | 20 GND
GPIO09 21 | | 22 LCD.RST GPIO25
GPIO11 LCD.SCK 23 | | 24 LCD.CS GPIO08
GND ENC1.GND 25 | | 26 GPIO07
ID_SD0 * 27 | | 28 * ID_SC1
GPIO05 ENC2.A 29 | | 30 FAN.GND GND
GPIO06 ENC2.B 31 | | 32 FAN.PWM GPIO12
GPIO13 ENC2.SW 33 | | 34 LED.GND GND
GPIO19 SPI1_MISO 35 | | 36 GPIO16
GPIO26 37 | | 38 LED.DI GPIO20
GND ENC2.GND 39 | | 40 SPI1_SCLK GPIO21

installation logicielle , j’ai décidé de me passer de carte SD sur le Raspberry et booter directement sur le SSD ( voir  article frambroise 314 )

j’ai fait 3 partions sur le hdd (/dev/sda1 vfat 100M , /dev/sda2 ext4 8Go , /dev/sda3  ext4 le reste du disque pour stockage des fichiers audios )
mon /etc/fstab

une fois raspbian lite installé et le raspberry pi en route on commence a installer les paquets nécessaire :

fichier a créer / modifier

  • /etc/modprobe.d/fbtft.conf

  • /etc/modules-load.d/fbtft.conf

  • /etc/modules-load.d/RotaryKey.conf

logiciels a installer /compiler , je met tous dans /opt/scripts

  • Automatic library-wide shuffle for mpd ( gestion playlist aléatoire )

  • mpd Album Art

  • gestion du clavier virtuel depuis les 2 encodeurs rotatifs
    • /opt/scripts/RadioKey.py ( script pour gerer le “clavier”) pour l’instant un seul encodeur géré UP,DOWN,ENTER

       
    • Service RadioKey ( deamon clavier ) : /etc/systemd/system/RadioKey.service
    • activation du service
    • test du clavier virtuel
  • script au démarrage qui affiche l’IP du pi sur l’afficheur 128×128 ( /opt/scripts/ip.py) pendant 10 secondes
  • interface web pour playlist (https://www.ympd.org/ )
  • partage dossier réseau ( /etc/samba/smb.conf )

     
  • gestion de led RGB ws2812 , pour cela on va activer le 2eme port SPI ( raspberry pi 3
    dans /boot/config.txt ajouter/modifier

    ensuite on vas ajouter py-spidev et  ws2812-spi

    en fonction du Pi utilisé il faut modifier le fichier ws2812.py , dans def write2812_numpy4(spi,data): commenter toutes les lignes spi.xfer  et de-commenter celle ci : spi.xfer(tx.tolist(), int(4/.55e-6))
    ensuite

    on vas tester le bandeau :

    dans mon cas il y auras 20 led RGB ws2812 donc :

    puis python loop.py
  • (en cours de dev …….)  gestion du bandeau lumineux en fonction de la musique ( basé sur https://github.com/nvbn/soundlights)


    fichier /opt/scripts/soundlights.py

    puis on teste en lançant :

     
  • version alpha partie affichage covertArt piste en cours et passer piste suivante/précédente

     

pour l’instant partie “mécanique” finis à 90¨% , et partie Electronique / dev finis a 70%

lorsque le soft seras terminé a 100% , je mettrais dispo les sources de tous les fichiers/scripts utilisés

la suite bientôt ……..

 

Articles qui m’on servis pour développer
https://github.com/petervflocke/rotaryencoder_rpi
https://www.instructables.com/id/PWM-Regulated-Fan-Based-on-CPU-Temperature-for-Ras/
https://www.pihomeserver.fr/2014/03/08/raspberry-pi-home-server-ajouter-une-horloge-rtc-ds1307-sur-le-bus-i2c/
http://blog.gegg.us/2017/01/setting-up-a-gpio-button-keyboard-on-a-raspberry-pi/
https://blog.oddbit.com/2019/01/19/pipower-a-raspberry-pi-ups/https://github.com/joshkunz/ashuffle
https://github.com/joosteto/ws2812-spi
https://github.com/nvbn/soundlights

 

Catégorie : Hardware, Software | Commentaires fermés sur RadioPi
août 12

Serveur Tvheadend avec stockage ( Partie 1 – installation tvheadend et epg )

  • Objectif : faire un serveur de diffusion / stockage des chaines TNT
  • Materiel :
    • Un Raspberry PI2 ou PI3
    • un disque dur USB ( dans mon cas un WD PiDrive 314 Go )
    • un ou plusieurs adaptateur TNT USB ( dans mon cas 3 x R820T DVB-T => ebay)
    • et si plusieurs adaptateur TNT , un Répartiteur Adaptateur Antenne
    • un boitier avec alimentation 5V , mini 3A ( interne ou externe selon boitier )
  • Logiciels :
    • la dernière version de raspbian-lite
    • tvheadend
    • samba

== Préparation du Raspberry pi

  • installer dernière version raspbian lite
    avec raspi-config :

    • passer langue français , timezone Europe …..
    • changer mot de passer user : pi
  • autoriser root ssh :
    • dans /etc/ssh/sshd_config
      • remplacer : PermitRootLogin without-password
      • par : PermitRootLogin yes
  • dans /boot/cmdline.txt ajouter
    • logo.nologo loglevel=3
  • dans /boot/config.txt ajouter :
    • disable_splash=1
    • max_usb_current=1
  • mise a jour système :

  • Installation des firmwares supplémentaires des récepteurs TNT :

  • ajout des paquets pour compiler tvheadend et utilitaires divers:

  • puis installation :

  • changement dur port http par defaut 9981 :

    remplacer TVH_HTTP_PORT=”” par TVH_HTTP_PORT=”80″
  • puis relancer tvheadend :

  • installation de la version 4.2 ou si vous voulez pas compiler a partir des sources

puis :

  • gestion de l’EPG , se connecter avec le user hts

et entrez votre Userash ( creation du compte sur https://www.kazer.org/ )

  • Installation afficheur 320×240 TFT SPI ( a base de ili9341) , câblage de l’afficheur :
    TFT Screen Raspberry Pin
     VCC 3.3V #1
    GND GND #9
    CS GPIO8 #24
    RESET GPIO23 #22
    DC\RS GPIO24 #18
    SD1\MOSI GPIO10 #19
    SCK GPIO11 #23
    LED GPIO18 #12
    SD0\MISO GPIO9 #21

    on edite le fichier config.txt pour ajouter la gestion de l’afficheur au démarrage


    et on rajoute :

    ( rotate=90 a adapter selon position afficheur ) .On edite aussi cmdline.txt

    et on ajoute en fin de ligne :

    on reboote et normalement l’afficheur fonctionne , si ne marche pas bien vérifier le câblage et que c’est bien un ili9341
    Pour tester  le rétro-éclairage (1:OFF , 0:ON) : ( pour plus d’info voir : https://github.com/notro/fbtft/wiki/Backlight )

     
  • Installation de samba et HDD USB ( en cours ………)
  • ………….
  • …………………
Catégorie : Hardware, Software | Commentaires fermés sur Serveur Tvheadend avec stockage ( Partie 1 – installation tvheadend et epg )
août 15

Bus CAN

Création d’un carte avec horloge en temps réel (I2C ) et contrôleur de bus CAN (SPI)  , avec connecteur pour port série / I2c et SPI utilisable .

photo du proto ( les cartes viennent d’arriver de chez seeedstudio , vais commencer a en monter une )
PI-canPI-can2

La suite quand j’aurais finis de monter et tester la carte et développé le soft qui vas avec ( deja dispo fichier au format sketchup )

Catégorie : Hardware, Software | Commentaires fermés sur Bus CAN
août 1

Shutdown Raspberry PI par gpio

Encore un petit manque dans le monde du raspberry pi , un bouton arrêt ( propre , pas en coupant  a la sauvage l’alimentation du PI ).
besoin d’avoir python et rpi.gpio installé , un boutton poussoir (dans cet exemple cablé entre le GPIO17  et gnd )

 

installation de rpi.gpio
1- Paquets debian :

2- install depuis sources :

script pour attendre appuie sur le bouton et lancer shutdown lorsque l’on appuie sur le bouton  : pishutdown.py =>

script qui va se lancer au demérrage du PI : pishutdown.sh =>

puis chmod +x pishutdown.sh

on édite le fichier /etc/rc.local

a rajouter avant la ligne exit 0 , a adapter selon l’endroit ou vous copiez les 2 fichiers ( pishutdown.py , pishutdown.sh) et du gpio utilisé .

Catégorie : Hardware, Software | Commentaires fermés sur Shutdown Raspberry PI par gpio
juillet 26

Domoticz

Installation de domoticz a partir des sources et depuis une image debian minimum ( pas de GUI , a l’ancienne en ligne de commande ) , l’image minimum est a télécharger ici. L’image viens de chez Minibian , image mise à jour en debian jessie et kernel 4.09

Une fois l’image récupérée et copié sur une carte SD de 8Go. on boote le raspberry PI B (B+) , login/mdp : root /pi . le Raspberry est en dhcp donc vérifiez qu’il y a un serveur dchp sur le reseau sinon modifier le fichier /etc/network/interfaces :

ici dans mon cas  , la box en 192.168.0.1 et le raspberry en 192.168.0.221

maintenant on passe aux choses sérieuses ( installation des outils dev/compilation , wiringPi , OpenZWave et enfin domoticz )
on se connecte sur le pi en root / mot de passe pi

installation des outils nécessaires a la compilations de tous les soft utilisés :

edition fichier sudo pour acces utilisateur sans mot de passe

remplacer :
%sudo ALL=(ALL:ALL) ALL
par
%sudo ALL=(ALL) NOPASSWD:ALL

creation utilisateur pi / mot de passe pi

utilisateur pi membre de sudo et de dialout ( si besoin d’utiliser le port serie , par ex si on ajoute un arduino a domoticz :

maintenant on se connecte sur le pi en utilisateur pi et on commence par compiler wiringpi (site du tuto )

maintenant le Support de OpenZWave

comme dans l’image minibian il n’y a pas de swap on vas en créer un tempo pour la compilation :

puis nano /etc/dphys-swapfile
et mettre : CONF_SWAPSIZE=350

puis

maintenant on passe a la compilation de domoticz :

attention sur un B/B+ la compilation prends quelques temps ( 1 apero prolongé + 1 bbq + café ) .

maintenant si pas de pb de compilation , lancement de domoticz au démarrage du systeme :

si vous voulez modifier l’utilisateur qui lance domoticz , le port web utilisé ( 8080 par défaut )

on va désactiver et supprimer le swap

maintenant on vas lancer domoticz

et on peux se connecter depuis un navigateur aux adresses suivante :

– http://adr_ip_du_pi:8080
– https://adr_ip_du_pi

et on accède a l’interface web de domoticz . il y auras bientôt un autre article sur la configuration / gestion de domoticz , en attendant il y a plusieurs tuto sur le net ( google est ton amis ! )

peux ceux qui n’ont pas envie d’attendre des heures les compilations ( et surtout avoir des erreurs ) . j’ai fait une image que vous trouverez içi

Catégorie : Software | Commentaires fermés sur Domoticz
avril 14

Compilation croisée (cross-compiling ) du Kernel pour le PI et PI2

compiler le kernel directement sur le raspberry prend “un certain temps” , je me suis décidé a automatiser l’opération sur mon Pc ( sous debian jessie) .

1er temps récupération des outils , sources du kernel et comme j’utilise aussi des afficheur TFT en SPI , intégration des modules pour les afficheurs

je place tous ces elements dans /home/Raid5/partage/raspberry et je récupère la dernière branche (rpi-4.2.y actuellement 4.2-rc5)

les fichiers compilé seront placé dans /home/Raid5/partage/raspberry/build

note : depuis le 19/01/2015 les drivers TFT sont intégrés dans le noyeau .

*****************
make menuconfig pour ajouter les drivers fbtft
*****************

on vas editer le .bashrc pour ajouter le chemin du compilateur:
nano ~/.bashrc
on ajoute :/home/Raid5/partage/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin ( si vous etes en 64 bits )
a export PATH

2eme temp compilation :
– Pour le Raspberry PI A, A+, B, B+ :

– Pour le Raspberry PI2 :

Aprés un apéro prolongé et/ou plusieurs café , une fois terminé

ou pour un Raspeberry PI2

les modules se trouvent dans

ou pour le Raspberry PI2

et un petit script qui fait tout ( a copier dans /home/Raid5/partage/raspberry/build/build.sh) :

 

……………………. en cours d’écriture , la suite bientôt/V2

Catégorie : Software | Commentaires fermés sur Compilation croisée (cross-compiling ) du Kernel pour le PI et PI2
août 2

Projet Mystère

OAuthException: Error validating application. Application has been deleted.

– I ) Installer l’image de base voir ‘Image de Base Raspberry PI’

– II ) mettre a jour le firmware et le kernel avec support Afficheur TFT intégré dans le noyau :

– III ) Afficheur TFT , j’utilise une afficheur SPI 2.2″ (320×240) avec controleur ILI9341
teouvé sur ebay : http://www.ebay.fr/itm/2-2-TFT-serie-SPI-affichage-du-module-LCD-240×320-ILI9341-PCB-adaptateur-SD-/121336464100

$_57

Modidifation de /boot.cmdline.txt pour que l’afficheur soit reconnu au boot : ( Attention tous doit etre sur une seule ligne )

…………………………..
…………………………..
…………………………..

 – XX) En cours de Dev …………………..

Catégorie : Hardware, Software | Commentaires fermés sur Projet Mystère
juillet 29

(Raspberry PI + PC linux + PC Windows ) x XBMC=Médiatheque Commune

Ayant déjà des PC Linux avec XBMC et une base données/fichiers commune , rajouter le pi dans ce réseau n’a pas posé de problème .
Par contre pour Windows c’est un un peu plus compliqué , en effet dans la base de données les chemins complets des fichiers audio/video sont stockés

Mon réseau :

– serveur linux : cerebra ( ip:192.168.0.252 ) , serveur de partage de fichiers et base de données MySql

– poste linux :  xbmc (ip : 192.168.0.53 , salon  ) , et xbmc2 (192.168.0.13 , chambre) , raspberry pi ( ip 192.168.0.170 , veranda) , blackbird (ip 192.168.0.4 , portable) , dreambox1 (ip : 192.168.0.50 ) , dreambox2 (ip : 192.168.0.52)

– poste Windows : phenix ( p 192.168.0.3, chambre )
je passe la partie installation serveur , postes xbmc linux , poste xbmc windows , je parlerai seulement des paramétrages  .
La seule chose a vérifier et d’installer la même version de XBMC sur chaque postes ( 14.2 dans mon cas ) .

Pensez Aussi a modifier dans tous le tuto mot_de_passe par votre mot de passe MySql et changer 192.168.0.252 par l’adresse de votre serveur fichiers/MySql

 

– Paramétrage Serveur :

a) Installer le serveur NFS , je suppose que MySql / PhpMyadmin est déjà installé

modification du fichier /etc/host.allow , ajouter :

b) création des dossiers de partage dans dans mon cas :

/home/Raid5/NAS contient mes dossier ou je stocke films , serie TV et musique
/home/Raid5/Mediatheque : dossier vrac pas encore trié ou j’ai des films et Serie TV

on Édite le fichier /etc/exports

Redémarrer le serveur.

– Parametrage 1Er poste Linux :

a )  Client NFS et montage partage
en étant connecté avec l’utilisateur xbmc en ssh :

en étant connecté avec l’utilisateur root en ssh :

Client NFS :

modification /etc/fstab pour montage automatique des partages NFS :

attention depuis le passage a systemd sur les dernieres versions debian/ubuntu le fichier /etc/fstab est a modifier comme ci dessous :

 

puis vérification que les montages fonctionnent :

b) lancer une 1ere fois XBMC sur le poste linux , pour qu’il crée les paramètres par défaut  ( je suppose que l’utilisateur qui lance xbmc est xbmc , a changer si ce n’est pas le cas ) , sortir de xbmc et en ssh se connecter avec xbmc comme utilisateur

c) en etant connecté en ssh avec l’utilisateur xbmc

effacer les fichier suivants ( si ils existent )  :  profiles.xml , sources.xml , advancedsettings.xml

supprimer le dossier Thumbnails puis création du lien qui va pointer sur le nouveau dossier

création sources.xml : nano   sources.xml

création profiles.xml : nano profiles.xml

creation advancedsettings.xml : nano advancedsettings.xml

remplacer dans  <pass>mot_de_passe</pass>  par votre mot de passe MySql

d) copier dans /home/xbmc/nfsdata/Videos/TV quelques épisodes de séries

par défaut je crée un dossier par serie TV  par ex mkdir -p “/home/xbmc/nfsdata/Videos/TV/Doctor Who (2005)”

au niveau fichier ils sont tous de la forme: nom_de_la_serie.saisonxnumero_episode.le_nom_episode

par ex : Doctor.Who.(2005).1×01.Rose.avi.mkv  , Doctor.Who.(2005).7×13.Le.Nom.Du.Docteur.mkv

e) redemarrer le poste et verifier que tout fonctionne

– Parametrage autres postes Linux et Raspberry PI :

a) faire les etapes a) , b) , c) , e) de – Parametrage 1Er poste Linux 

b) relancer la machine , normalement affiche les même medias que pour le 1er Poste

– Parametrage Poste Windows :

a) installer xbmc , le lancer pour la 1ere Fois  et quitter .

b ) installer “client NFS pour windows” , panneau de config , programmes et fonctionnalité , activer ou désactiver des fonctionnalités windows

c) ajouter les lettres réseau dans poste de travail “connecter un lecteur réseau ”
Lecteur  :  T   ,  dossier : 192.168.0.252:/home/Raid5/Mediatheque
Lecteur :  U , dossier : 192.168.0.252:/home/Raid5/NAS

d) repérer dossier de stockage paramètres de xbmc  C:\Users\thierry\AppData\Roaming\XBMC

remplacer thierry par ne nom de l’utilisateur qui a ouvert la session .

et copier les fichiers xml de l’etape – Parametrage 1Er poste Linux c)
sauf le fichier advancedsettings.xml qui doit contenir

pareil remplacer mot_de_passe par votre mot de passe MySql

 

Catégorie : Software, XBMC | Commentaires fermés sur (Raspberry PI + PC linux + PC Windows ) x XBMC=Médiatheque Commune
juillet 28

XBMC + Télécomande ATI remote wonder (RF)

 

remote_wonder

Ayant retrouvé une vielle télécommande ATI en version RF ( Radio ) et pas infrarouge . Me suis décidé de faire un XBMC avec le Raspberry Pi et cette télécommande . Dans un prochain article , XBMC avec Télécommande Infrarouge .

– I ) Image de départ :

Installer l’image de base voir ‘Image de Base Raspberry PI’

en ssh :

passer la mémoire vidéo en 128M ou 256M

– II) XBMC :

Rajouter dépôt pour xbmc : nano /etc/apt/sources.list.d/mene.list

puis

Editez /etc/udev/rules.d/99-input.rules

Démarrer xbmc au démarrage editez /etc/default/xbmc

Utilisateur xbmc sudo sans mot de passe  , visudo et modifier :

 

– III ) Télécomande ATI + lirc :

1Er problème rencontré , la télécommande est reconnue nativement et tant que clavier / souris , mais seulement quelques touches fonctionnent ( curseur et boutons souris et touches 0-9 ) .

On va  donc désactiver les pilotes natif en editant: /etc/modprobe.d/lircd.conf

ensuite installation de lirc  et effacement des fichiers par défauts :

création du fichier de config de la télécommande : /etc/lirc/lircd.conf

puis /etc/lirc/hardware.conf :

ensuite  on se connecte en ssh avec utilisateur xbmc et on edite ~/.xbmc/userdata/advancedsettings.xml , pour ajouter un délai pour éviter d’avoir répétition de la touche appuyé :

et aussi ~/.xbmc/userdata/Lircmap.xml  pour la correspondance entre les touches de la télécommande et les actions de xbmc

– IV) SAMBA pour accéder au dossier xbmc : 

on efface le fichier  /etc/samba/smb.conf  et on remplace par celui ci :

 

 – V ) VNC (en option) :

pendant la phase de mise au point j’avais besoin d’accéder a l’interface ( mais télécomande pas encore activée et voulais pas brancher de clavier )

Pour lancer le serveur tapez dans une session ssh :

ensuite depuis un pc lancer vncwiewer tapez l’adresse ip du PI , se connecte automatiquement sans mot de passe .

 

– VI)  image de la carte SD :

fichier de l’image de la carte SD moebius-xbmc-ati-2g

 

 

Catégorie : Software, XBMC | Commentaires fermés sur XBMC + Télécomande ATI remote wonder (RF)