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
mars 7

Compute Module

profitant d’une annonce sur ebay , je me suis pris un compute module , reste plus qu’a tester ça .

Catégorie : Hardware | Commentaires fermés sur Compute Module
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 14

RTC et TFT 1.8″ SPI ( 128×160)

OAuthException: Error validating application. Application has been deleted.

Nouveau projet , ajouter une horloge RTC et un ecran TFT 1.8″ (128×160) Attention petite Erreur sur le typon de la Rev 1.0 , Rev 1.1 en cours

– Schéma au format Eagle : Rev 1.0

– Fichier Gerber : Rev 1.0

– Vue 3D (Sketchup) : (en cours de Dev…)

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

– Activer l’horloge RTC DS1307 :

Editer /etc/modules et rajouter :

Lancer i2cdetect -y 0 et i2cdetect -y 1 , pour savoir sur quel Bus se trouve l’horloge I2C ( adr 68) , puis Editer  /etc/rc.local

ou

Vérifier l’heure/date du Raspberry en tapant: date , Pour assigner la date/heure courante a la RTC tapez : hwclock -w .

Pour vérifier tapez date et ensuite hwclock -r , a 1 sec près on devrait avoir la même date/heure

– activer les modules pour afficheurs TFT en fonction de son afficheur ( voir https://github.com/notro/fbtft/wiki) , en éditant /etc/modules :

Définir l’afficheur TFT par défaut  , Editez le fichier /boot/cmdline.txt et ajouter a la fin de la ligne : fbcon=map:10 fbcon=font:ProFont6x11

Editez /etc/inittab

remplacer root par votre utilisateur

pour tester l’afficheur copiez un fichier JPG dans /home et lancer

l’image devrait s’afficher .Rebooter le système et après quelque secondes , l’afficheur vas fonctionner

 

Catégorie : Hardware | Commentaires fermés sur RTC et TFT 1.8″ SPI ( 128×160)
juillet 12

Pikeyd : Pi GPIO keyboard daemon i2c MCP3017

– Schéma au format Eagle Rev 1.0 16 touches , Rev 1.0 32 touches

– Fichier Gerber V16 touches , V32 touches

– Vue 3D (Sketchup) : pikey16 et pikey32

– cablage
cablage_16E cablage_32E

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

– sources du daemon pikeyd sur : https://github.com/mmoller2k/pikeyd

– lancement automatique du daemon (dans mon cas le daemon est situé dans /home/pikey) , editer le fichier ~/.bashrc

– examples de configuration ( a copier dans ~/.pikeyd.conf ou /etc/pikeyd.conf)

fichier de configuration pour 16 touches ( version avec 1 seul mcp23017 )

fichier configuration pour 2×16 touches ( version avec 2 mcp23017 )

– Photos : Version 16 touches

PIKEY_16_001PIKEYD_16_002

Version 32 touches
PIKEYD_32_001PIKEYD32_PI

Catégorie : Hardware | Commentaires fermés sur Pikeyd : Pi GPIO keyboard daemon i2c MCP3017