/pynab

Nabaztag in Python for Nabaztag rabbits using the Raspberry Pi Zero-powered Tag:tag:tag card

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Nabaztag en Python pour Raspberry Pi

python-lint build (qemu) tests Code style: black Total alerts Language grade: Python codecov

Cartes

Ce système est conçu pour deux cartes pour Nabaztag (v1) et Nabaztag:Tag (v2) :

  • Une carte réalisée pour Maker Faire 2018, qui ne fonctionne qu'avec les Nabaztag (sans micro ni RFID).
  • Une nouvelle version de la carte, proposée via les campagnes Ulule de mai 2019 et octobre 2021, qui fonctionne avec les Nabaztag et les Nabaztag:Tag (les micros sont sur la carte, ce qui permet aux Nabaztag de bénéficier aussi de la reconnaissance vocale).

Les schémas et fichiers de fabrication de ces deux cartes sont dans le repository hardware, respectivement RPI_Nabaztag (2018) et tagtagtag_V2.0 (2019).

Pour être prévenu de la prochaine campagne, vous pouvez vous inscrire à la liste de diffusion.

Images

Les releases sont des images de Raspberry Pi OS Lite ou DietPi avec Pynab pré-installé.

Les releases actuelles (>0.7.x) ne fonctionnent pas sur les cartes 2018 (cf #44).

Installation sur Raspberry Pi OS ou DietPi (pour développeurs!)

0. S'assurer que le système est bien à jour

Le script d'installation requiert une version basée sur Debian 11 (Bullseye), avec Python 3.9.

Debian 10 (Buster), avec Python 3.7 (Raspberry Pi OS Legacy), est aussi supporté.

Il est nécessaire que les 'kernel headers' installés via apt-get correspondent à la version installée du noyau.

sudo apt-get update
sudo apt-get upgrade

1. Configurer les pilotes pour le son, les oreilles et le lecteur RFID et redémarrer.

Les 'kernel headers' sont nécessaires pour la compilation des pilotes:

sudo apt-get install gcc make raspberrypi-kernel-headers

2. Installer PostgreSQL et les paquets requis

sudo apt-get install postgresql libpq-dev git python3 python3-venv python3-dev gettext nginx openssl libssl-dev libffi-dev libmpg123-dev libasound2-dev libatlas-base-dev libgfortran5 libopenblas-dev liblapack-dev zram-tools

Sur DietPi les paquets suivants sont aussi nécessaires:

sudo apt-get install alsa-utils xz-utils avahi-daemon

3. Récupérer le code

git clone https://github.com/nabaztag2018/pynab.git
cd pynab

4. Lancer le script d'installation

Ce script fait le reste, notamment l'installation et le démarrage des services via systemd.

bash install.sh

ou, pour les cartes de la Maker Faire 2018 :

bash install.sh --makerfaire2018

Mise à jour

A priori, cela fonctionne via l'interface web. Si nécessaire, il est possible de le faire en ligne de commande avec :

cd pynab
bash upgrade.sh

NabBlockly

NabBlockly, une interface de programmation des chorégraphies du lapin par blocs, est installé sur les images des releases depuis la 0.6.3b et fonctionne sur le port 8080. L'installation est possible sur le port 80 en modifiant la configuration de Nginx.

Architecture

Voir le protocole nabd

  • nabd : démon qui gère le lapin (e/s, chorégraphies)
  • nab8balld : démon pour le service gourou
  • nabairqualityd : démon pour le service de qualité de l'air
  • nabclockd : démon pour le service horloge
  • nabsurprised : démon pour le service surprises
  • nabtaichid : démon pour le service taichi
  • nabmastodond : démon pour le service mastodon
  • nabweatherd : démon pour le service météo
  • nabiftttd : démon pour le service IFTTT
  • nabweb : interface web pour la configuration

Contribution

Vos contributions sont toujours les bienvenues ! Veuillez d'abord consulter les directives de contribution.