Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
projets:jarvis [2014/06/19 18:23] – créée phyks | projets:jarvis [2022/05/05 07:40] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== | ====== | ||
- | Notre bot IRC à tout faire. | + | Jarvis is our IRC bot to handle most of our internal management. Its source code is available on [our Git repo](https:// |
- | Plus d' | + | Jarvis est notre bot IRC pour gérer tout notre fonctionnement interne. Il permet notamment |
+ | |||
+ | Le code est disponible sur [notre dépôt Git](https://git.eleves.ens.fr/ | ||
+ | |||
+ | |||
+ | ## Fonctions | ||
+ | |||
+ | […] désigne un argument optionnel, (…|…) désigne un choix obligatoire. | ||
+ | |||
+ | ### Commandes directes | ||
+ | |||
+ | Toutes les commandes doivent être adressées à Jarvis directement, | ||
+ | |||
+ | * `aide` | ||
+ | * Usage : `aide [commande]` | ||
+ | * Affiche l'aide de Jarvis ou de la commande passée en argument. | ||
+ | * `alias` | ||
+ | * Usage : `alias [categorie]` ou `alias add type nom valeur` ou `alias del type nom`. | ||
+ | * Liste tous les alias enregistrés (respectivement, | ||
+ | * `atx` | ||
+ | * Usage : `atx (on|off)` | ||
+ | * Contrôle l'ATX de la RepRap. | ||
+ | * `budget` | ||
+ | * Usage : `budget (ajoute|retire) [dépense|crédit] montant [budget=BUDGET] commentaire`. | ||
+ | * `ajoute` ajoute une entrée, `retire` retire une entrée. | ||
+ | * `dépense` et `crédit` sont optionnels. S'ils ne sont pas spécifiés, | ||
+ | * `budget=BUDGET` est optionnel. Si non spécifié, l' | ||
+ | * `camera` | ||
+ | * Usage : `camera (ALIAS|ANGLE)` | ||
+ | * Contrôle la position de la caméra, pour déplacer la caméra à la position définie par l' | ||
+ | * `courses` | ||
+ | * Usage : `courses (acheter|annuler|acheté) item [commentaire]` | ||
+ | * Note l' | ||
+ | * `dis` | ||
+ | * Usage : `dis " | ||
+ | * Fait parler Jarvis. | ||
+ | * `disclaimer` | ||
+ | * Usage : `disclaimer` | ||
+ | * Affiche un disclaimer. | ||
+ | * `emprunt` | ||
+ | * Usage : `emprunt outil "jj/mm hh" [email]` | ||
+ | * Note l' | ||
+ | * `historique` | ||
+ | * Usage : `historique nb_lignes|(début fin)` | ||
+ | * Affiche l' | ||
+ | * `info` | ||
+ | * Usage : `info [atx|camera|leds|stream]` | ||
+ | * Affiche le statut de tous les périphériques (respectivement uniquement de l'atx / de la caméra / de la lumière / du stream). | ||
+ | * ` jeu` | ||
+ | * Usage : `jeu` | ||
+ | * Auto-explicatif… | ||
+ | * `lien` | ||
+ | * Usage : `lien (dernier|((supprime|cache|affiche) [id|permalien])` | ||
+ | * `lien dernier` retourne le dernier lien enregistré. | ||
+ | * `lien (supprime|cache|affiche) [id|permalien]` supprime / marque comme privé / rend public le dernier lien (si pas de paramètre `[id|permalien]` spécifié, ou le lien d'id `id` (respectivement de permalien `permalien`). | ||
+ | * `log` | ||
+ | * Usage : `log début ... fin #tag`. | ||
+ | * Enregistre la section délimitée par `début...fin` dans Jarvis, sous le tag `tag`. | ||
+ | * `lumiere` | ||
+ | * Usage : `lumiere ((R G B)|script)` | ||
+ | * Contrôle la lumière associée à Jarvis, soit en la mettant à la couleur `(R G B)`, soit en appelant le script `script`. | ||
+ | * `moderation` | ||
+ | * Usage : `moderation [liste]` | ||
+ | * **TODO** | ||
+ | * `retour` | ||
+ | * Usage : `retour outil [email]` | ||
+ | * Marque l' | ||
+ | * `stream` | ||
+ | * Usage : `stream (on|off)` | ||
+ | * Lance ou arrête la diffusion de la caméra. | ||
+ | * `update` | ||
+ | * Usage : `update` | ||
+ | * Met à jour Jarvis. | ||
+ | * `version` | ||
+ | * Usage : `version` | ||
+ | * Affiche les notes de version. | ||
+ | |||
+ | ### Liens | ||
+ | |||
+ | Jarvis surveille le chan `#hackens` et ajoute stocke automatiquement tous les liens postés dessus pour les afficher sur sa visu web. Pour ne pas diffuser un lien, il faut alors utiliser la commande `lien`. | ||
+ | |||
+ | |||
+ | ## Maintenance | ||
+ | |||
+ | Jarvis tourne sur un Raspberry Pi en cave. Pour y accéder, il suffit de `ssh jarvis@jarvis` sur le réseau de l' | ||
+ | |||
+ | ## Caméra | ||
+ | |||
+ | Voir le fichier `~/ | ||
+ | Les infos des numéros des pins sont (par exemple) sur http:// | ||
+ | Attention, l'alim de Jarvis n'est pas suffisante pour les servos qu'on a, et il faut donc utiliser une alimentation externe. L'alim ATX n'est probablement pas une bonne idée. | ||
+ | < | ||
+ | Servos pour Jarvis | ||
+ | Celui du haut et celui du bas sont identiques mais ne reagissent pas pareil. | ||
+ | |||
+ | Servo du haut : | ||
+ | |||
+ | position en angle, entre 40 et 180 | ||
+ | |||
+ | exemple : | ||
+ | |||
+ | angle = 60 | ||
+ | duty = float(angle) / 10.0 + 2.5 | ||
+ | pwm.ChangeDutyCycle(duty) | ||
+ | |||
+ | |||
+ | |||
+ | Servo du bas : | ||
+ | |||
+ | en vitesse ? | ||
+ | pour le faire tourner dans un sens : | ||
+ | pin = 18 | ||
+ | |||
+ | GPIO.setmode(GPIO.BCM) | ||
+ | GPIO.setup(pin, | ||
+ | pwm = GPIO.PWM(pin, | ||
+ | pwm.start(50) | ||
+ | angle = 43 | ||
+ | duty = float(angle) / 10.0 + 2.5 | ||
+ | pwm.ChangeDutyCycle(duty) | ||
+ | |||
+ | |||
+ | dans l' | ||
+ | pin = 18 | ||
+ | |||
+ | GPIO.setmode(GPIO.BCM) | ||
+ | GPIO.setup(pin, | ||
+ | pwm = GPIO.PWM(pin, | ||
+ | pwm.start(50) | ||
+ | angle = 43 | ||
+ | duty = float(angle) / 10.0 + 2.5 | ||
+ | pwm.ChangeDutyCycle(duty) | ||
+ | |||
+ | |||
+ | dans l' | ||
+ | pin = 18 | ||
+ | |||
+ | GPIO.setmode(GPIO.BCM) | ||
+ | GPIO.setup(pin, | ||
+ | pwm = GPIO.PWM(pin, | ||
+ | pwm.start(50) | ||
+ | angle = 86 | ||
+ | duty = float(angle) / 10.0 + 2.5 | ||
+ | pwm.ChangeDutyCycle(duty) | ||
+ | </ | ||
+ | |||
+ | ## Flux vidéo | ||
+ | |||
+ | TODO : Ceci est un dump rapide de ce que j'ai fait, à nettoyer ! | ||
+ | |||
+ | Je tente de suivre les instructions de http:// | ||
+ | La première étape est de compiler ffmpeg pour le raspi, j'ai suivi les instructions de https:// | ||
+ | Quelques points importants : | ||
+ | - Raspbian a probablement une vieille version d' | ||
+ | - L' | ||
+ | - Je n'ai compilé ffmpeg qu' | ||
+ | |||
+ | Ensuite on a un sshfs avec autossh (cf http:// | ||
+ | On utilise la commande : | ||
+ | |||
+ | ```` | ||
+ | raspivid -ih -pf baseline -t 0 -b 1000000 -w 1280 -h 720 -v -o - | ./ | ||
+ | ```` | ||
+ | |||
+ | pour la segmentation. | ||
+ | |||
+ | Il faudrait avoir des commandes sur le bot IRC pour activer / désactiver tout ça ! |