Table des matières

Panobus - Conception & Réalisation

Partie Matériel

Fournitures

La carte

La description de la conception et de la réalisation de la carte est disponible sur cette page

Le boîtier

Pour contenir la Raspberry Pi, les leds et l'alimentation nous avons réalisé un boîtier sous FreeCAD.

Il a ensuite été fraisé sur la Fraiseuse du TyFab.

Nous l'avons ensuite assemblé avec de la colle à bois, puis nous avons inséré des écrous à frapper dans les trous prévus à cet effet dans les angles. Voici à quoi il ressemblait au final:

Les LEDS

Nous avons utilisé de petits modules leds adressables afin de réaliser différents rubans, pour obtenir le plan représenté ci-dessous:

En vert, le ruban pour les arrêts et le “vous êtes ici”
En noir le ruban pour les temps d'attente

La raspberryPi ne pouvant contrôler qu'un seul ruban, les deux rubans seront mis bout à bout.

Voici le schéma théorique avec 2 leds du système. Nous utilisons des leds adressables WS2812.

Les LEDs sont connectées entre elles, afin de former un ruban. Au début du ruban, nous avons donc trois fils : deux pour l'alimentation (+ et Gnd) et un pour les données. Celui pour les données est connecté au pin 12 de la raspberryPi, et le + et le Gnd sont reliés à une alimentation externe (étant donné le nombre de leds à gérer, nous avons utilisé une alimentation de PC portable , dont on se sert pour alimenter les leds et la raspberryPi. Des résistances sont déjà présentes sur les LEDs, ce qui permet de n'avoir qu'à souder un condensateur à la sortie de l'alimentation afin de stabiliser la tension). Les Pins 6, 8 et 10 servent à connecter la raspberryPi à un terminal pour la contrôler via un module USB. Ils sont donc optionnels car vous pouvez aussi vous connecter en ssh dessus.

Pour tester les LEDs, deux script est disponible sur la raspberryPi dans panobus/test/:

L'exécution de ces scripts est à faire en tant qu'utilisateur root.

Partie Logiciel

Le JSON des arrêts

Pour savoir quels arrêts implémenter dans notre application, le script python va chercher dans un fichier JSON reprenant toutes les informations nécessaires au fonctionnement du Script et de l'API.

Le JSON se présente sous la forme suivante. (plus d'information dans le fichier Protocole.md du git)

[
    {
        "name": "Liberte", //exemple
        "time2Go": 120,    //exemple
        "route": [
            {
                "name": "A",
                "dest": [
                    {
                        "name": "porte de plouzane",
                        "id": 0
                    },
                    {
                        "name": "porte de gouesnou",
                        "id": 1
                    },
                    {
                        "name": "porte de guipavas",
                        "id": 2
                    }
                ]
            }
        ]
    }
]

à faire

<todo>Exécuter le script au démarrage de la raspberryPi</todo>

<todo>Réaliser le site web, selon le plan si dessous:</todo>


Liens

~~ODT~~