MyTnyBx

My Tiny Box

Lightberry + Raspberry Pi 2 + OpenElec + Freebox HD

02/06/2015 à 12:58:42 - Aucun commentaire

Notes relatives à l'installation et à la configuration d'un Lightberry sur un Raspberry Pi 2 sous OpenElec.

Hyperion n'est pas disponible sous OpenElec 5.0.8, pour l'installer:

https://github.com/tvdzwan/hyperion/wiki/Installation-on-RPi-with-OpenELEC

Après branchement, je constate que mes LED restent désespérément éteintes.
Solution: ajouter dtparam=spi=on au config.txt d'OpenElec
(cf http://wiki.openelec.tv/index.php/Config.txt ).

Pour générer le fichier de configuration (hyperion.config.json), j'ai utilisé HyperCon, pratique pour définir le nombre de LED et leur placement à l'arrière de l'écran.

Pour bénéficier du Lightberry hors Kodi, j'ai utilisé le grabber USB vendu sur Lightberry.eu. La Freebox HD fournit le signal à la fois sur la sortie HDMI et sur la sortie Composite. J'ai donc relié cette dernière au grabber, que j'ai ensuite branché en USB au Raspberry Pi pour qu'Hyperion puisse utiliser les images pour alimenter les LED.

Attention, l'utilisation du grabber directement sur le Raspberry Pi provoquait des avertissements de sous-tension (logo "arc-en-ciel" en haut à droite de l'écran). J'ai donc utilisé un hub USB auto-alimenté pour le brancher.

Pour qu'hyperion utilise le grabber USB, il faut ajouter ce qui suit au fichier de configuration hyperion.config.json :


"grabber-v4l2" :
{
"device" : "/dev/video0",
"input" : 0,
"standard" : "PAL",
"width" : 640,
"height" : 480,
"frameDecimation" : 2,
"sizeDecimation" : 8,
"priority" : 1000,
"mode" : "2D",
"cropLeft" : 26,
"cropRight" : 27,
"cropTop" : 20,
"cropBottom" : 20,
"redSignalThreshold" : 0.1,
"greenSignalThreshold" : 0.1,
"blueSignalThreshold" : 0.1
},

La partie grabber-v4l2 du fichier de configuration sert au grabber USB, tandis que la partie framegrabber sert directement à la lecture sous Kodi. J'ai donc ces deux sections dans mon fichier de configuration.
Il est du coup nécessaire d'éteindre la Freebox HD lors de la lecture d'une vidéo sous Kodi, faute de quoi hyperion envoie les deux signaux aux LED, qui se mettent à clignoter frénétiquement.

Finalement, je trouvais le rendu des LED beaucoup trop bleu, j'ai donc réduit les white-level bleus et verts à 0.75, comme suit:


"red" :
{
"threshold"  : 0.0000,
"gamma"  : 1.0000,
"blacklevel" : 0.0000,
"whitelevel" : 1.0000
},
"green" :
{
"threshold"  : 0.0000,
"gamma"  : 1.0000,
"blacklevel" : 0.0000,
"whitelevel" : 0.7500
},
"blue" :
{
"threshold"  : 0.0000,
"gamma"  : 1.0000,
"blacklevel" : 0.0000,
"whitelevel" : 0.7500
}

Lightberry, Raspberry Pi

config.txt avec Raspbmc

09/10/2013 à 17:40:00 - Aucun commentaire

Sur un Raspberry Pi avec 256Mo de RAM, voici mon /boot/config.txt pour Raspbmc:

# Allouer au moins 128 Mo au GPU est souvent recommandé, mais personnellement je ne vois pas de différence dans le décodage avec 96Mo, et ça laisse plus de RAM pour l'interface.
gpu_mem=96

# Cette option permet de ne pas réveiller la TV quand le Pi redémarre. À utiliser avec l'option adéquate au sein d'XBMC pour ne pas réveiller la TV quand c'est uniquement XMBC qui redémarre.
hdmi_ignore_cec_init=1

# Mes paramètres d'overclocking:
arm_freq=850
gpu_freq=325
sdram_freq=500

Raspberry Pi

Raspberry Pi + Webcam = sonnette

30/09/2012 à 22:26:20 - Aucun commentaire

Problématique: quand j'écoute de la musique chez moi, je n'entends pas toujours la sonnette. Contexte: j'ai acheté un Raspberry Pi sans trop savoir ce que j'allais en faire. Résultat: une sonnette améliorée !

Le matériel

Un Raspberry Pi avec Raspbian comme système d'exploitation.
Une Webcam qui trainaît dans un tiroir (en l'occurence un EyeToy de Playstation 2, qui fonctionne directement sous Raspbian).

Le résultat

La webcam est branchée sur le Raspberry Pi, et est pointée en direction de la porte d'entrée, au travers d'une fenêtre adjacente à celle-ci. Quand quelqu'un se présente devant ma porte d'entrée, l'évènement est détecté, et une notification s'affiche directement sur mon bureau KDE.

La mise en place

Motion est utilisé pour détecter les mouvements.
Il se configure dans /etc/motion/motion.conf. Pour éviter les faux-positifs, j'ai modifié les paramètres suivants:
threshold 3000
lightswitch 70

Pour pouvoir me connecter au flux vidéo depuis mon portable:
webcam_localhost off

Pour lancer la notification quand un évènement est détecté:
on_event_start /home/motion/bin/motionnotify.sh

Une fois l'évènement détecté, la commande notify-send (du paquet libnotify-bin) permet d'afficher la notification.

Notify-send ne fonctionnant qu'en local, les scripts python suivants permettent de l'utiliser en réseau:

http://ubuntuforums.org/showthread.php?t=1222502

Le client (/home/motion/bin/notifyclient.sh):

#!/usr/bin/env python

#network notify-send

import socket
import sys

host = '192.168.1.10' #server IP
port = 50000
size = 1024
title = sys.argv[1]
message = sys.argv[2]

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('\"' + title + '\" \"' +message+'"')
data = s.recv(size)
s.close()

Le serveur (/home/utilisateur/bin/notifyserver.sh):

#!/usr/bin/env python

# Network Listener for notify-send

import socket
import os

host = ''
port = 50000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
client, address = s.accept()
data = client.recv(size)
if data:
client.send(data)
cmd = 'notify-send ' + data
os.system(cmd)
client.close()

Un petit script qui va appeler le client, avec un lien vers le flux vidéo, pour voir qui se trouve devant la porte (/home/motion/bin/motionnotify.sh):

#!/bin/sh
logger "Motion detected"
/home/motion/bin/notifyclient.sh "Porte" "Il y a quelqu'un à la porte.\<br /\>\<br /\>\<a href=\"http://raspberry.local:8081\"\>Voir le flux\</a\>"

Motion crée un utilisateur "motion", le script doit donc être exécutable par cet utilisateur.

Et voilà, je peux écouter de la musique très fort :)

Raspberry Pi, Webcam