« STIC:STIC IV (2019)/Bike blinkers » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 84 : Ligne 84 :
Par défaut le dispositif clignote 4 fois à chaque contact avec les boutons mais il possible de facilement changer le nombre de clignotant en changeant la variable '''#blinks''' dans la méthode '''on start''' du code.
Par défaut le dispositif clignote 4 fois à chaque contact avec les boutons mais il possible de facilement changer le nombre de clignotant en changeant la variable '''#blinks''' dans la méthode '''on start''' du code.
Le seuil de sensibilité est configuré à 10 par défaut. Cette valeur peut être modifié en changeant la valeur de la variable '''sensitivity''' dans la méthode '''on start'''. Une fois le code modifié il faut le sauvegarder sur le CPX.
Le seuil de sensibilité est configuré à 10 par défaut. Cette valeur peut être modifié en changeant la valeur de la variable '''sensitivity''' dans la méthode '''on start'''. Une fois le code modifié il faut le sauvegarder sur le CPX.
== Difficultés ==
Nous avons rencontré deux difficultés principales : le choix de communication avec le blinker depuis les commandes et un problème de connexion/conductivité avec la solution choisie.
===Choix de communication===
La difficulté principale de se projet a été de trouver le mode de communication entre les commandes au niveau du guidon et le dispositif. L’idée initiale était d’utiliser d’envoyer des commandes Bluetooth à l’aide d’un [https://www.tapwithus.com/ Tap Strap]. Le Tap Strap permet d’envoyer des commandes Bluetooth avec des gestes.
Pour tester cette solution nous avons utilisé deux modules différents : [https://learn.adafruit.com/adafruit-circuit-playground-bluefruit le Circuit Playground BlueFruit] (CPB) et [https://www.adafruit.com/product/2487 le Flora Wearable Bluefruit LE]. Le Flora est un module qui se connecte au CPX tandis que le CPB est un microcontrôleur indépendant en alpha et qui doit être programmé en Python.
Malheureusement cette solution ne pouvait pas être mis en place car le Flora ou le CPB ne peuvent être configurer que comme un ''Peripheral bluetooh device'' et non comme un ''Central bluetooth device''. Cela veut dire qu’il peut communiquer avec un appareil central (comme un téléphone portable ou un ordinateur) mais il n’est pas possible d’y apparier un autre dispositif qui lui enverrai des commandes. Il serait par exemple possible d’utiliser le CPX/Flora ou le CPB comme clavier mais ceux-ci ne peuvent pas recevoir de commande d’un clavier.
Comme deuxième mode de communication nous avons testé l’infrarouge car c’est une technologie intégrée au CPX. Celle-ci était également inadéquate car la connexion infrarouge demande que le transmetteur et le récepteur sont en ‘ligne directe’ sans objet entre les deux.
Ces limitations nous ont poussé à tester la fonction bouton tactile. Cette solution c’est avérer répondre à nos besoins techniques, et permettait une solution à coup faible).
===Seuil de sensibilité===
Après plusieurs test des [https://makecode.adafruit.com/learnsystem/pins-tutorial/touch-input/sensor-objects différents modes de reconnaissance tactile] (up, down, click et long click) ainsi qu’avec des matériels conducteurs diffèrent nous avons trouver que le fil électrique était la meilleur solution pour notre dispositif. Sur une courte distance le dispositif fonctionnait correctement.
En augmentant le seuil de sensibilité il était aussi possible de reconnaitre un touch tactile à la distance voulu (+/- 1m) mais nous remarqué que le mode up qui demande à juste toucher la surface ne fonctionnait plus de la même manière. Il fallait maintenir la surface appuyée, idéalement entre deux doigts pour que l’action soit reconnue. Ce problème de reconnaissance tactile était d’autant plus accentué si les câbles droite et gauche était trop proche. En augmentant la sensibilité, le contact était reconnu d’un câble a l’autre même quand ceux-ci étaient séparés au maximum du possible sur le vélo. Le bouton de gauche pouvait par exemple activer le clignotant gauche et celui de droite.
Dernièrement cette sensibilité rendez les faux-positifs plus fréquent. Effleurer le câble pouvait déclencher le clignotant.


== Test(s) de la solution ==  
== Test(s) de la solution ==  
Ligne 89 : Ligne 102 :


== Discussion ==
== Discussion ==
Cette partie inclus deux sous parties :
===Discussion du design (et si c'était à refaire)===
* Discussion du design (et si c'était à refaire)
Nous espérons que les problèmes de connectivité sont surmontables. Si c’est le cas nous pensons que les points principaux à améliorer serait l’amarrage du blinker, son étanchéité, son alimentation et ses mises à jour.
Le système de velcro actuel est suffisant car le dispositif n’a jamais été testé en route. Il existe des systèmes solides et légers qui se fixe au vélo avec des élastiques et qui se bloque en tournant le dispositif d’un quart de tour. Des [https://www.thingiverse.com/thing:2666998 modèles] du [https://www.youtube.com/watch?v=ya0NaMohSRw dispositif de fixation de Garmin] sont par exemple disponible sur Thingiverse et pourraient être imprimé en 3D.
L’étanchéité du dispositif a été prise en compte pendant le design mais pas mise en place. Une prochaine étape aurait été de viser une plaque en plexi glass découpée au laser sur le couvercle et d’utiliser de la colle chaude pour boucher les trous faites dans celui-ci.
Pour l’alimentation il serait idéal de pouvoir alimenter de blinker avec un dynamo qui se chargerait en pédalant.
Dernièrement, la version actuelle ne permet pas de mettre a jour le code du CPX sans devoir le démonter. Ajouter un adapteur micro USB de 90 degrés permettrait de facilement accéder à la prise sans faire un trou additionnel dans le couvercle. On s’imaginerait à ce stade qu’il faudrait juste dévisser la plaque en plexi glass pour accéder au port USB.
 
* Discussion des résultats de vos tests utilisateurs
* Discussion des résultats de vos tests utilisateurs


Ligne 97 : Ligne 115 :


* Fichiers :
* Fichiers :
Insérer ici vos fichiers ou les liens vers vos fichiers
[https://makecode.adafruit.com/28017-40515-19426-19328 Code en ligne]
[http://tecfaetu.unige.ch/etu-maltt/yoshi/diouffa8/stic-4/bike-blinkers/code/Bike-Blinkers_CPX-code.uf2 Code (version téléchargeable)]


* Documentation :  
* Documentation :  
Ligne 103 : Ligne 122 :


== Bibliographie ==
== Bibliographie ==
[https://makecode.adafruit.com/learnsystem/pins-tutorial/touch-input/touch-sensing Touch sensing (EN) sur makecode.adafruit.com]
https://learn.adafruit.com/adafruit-circuit-playground-express
[[https://makecode.adafruit.com/learnsystem/pins-tutorial/touch-input/calibrate-sensitivity Calibration and sensitivy (EN) sur makecode.adafruit.com]
https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gap
https://makecode.adafruit.com/learnsystem/pins-tutorial

Version du 11 août 2020 à 14:17

Projet réalisé par Fatou-Maty Diouf

Introduction

Bike blinkers est un prototype de clignotant pour vélos. Son objectif est de pouvoir déclencher les clignotants sans enlever les mains du guidon afin d’être mieux vu sur la route tout en maintenant le contrôle de son vélo.

Problème

Signaler un changement de direction est une façon commune de communiquer sur la route. Ces signaux préviennent de nos intentions et augmentent notre visibilité. Pour signaler un changement de direction les cyclistes doivent enlever leur bras du guidon. Cette signalisation peut s’avérer peu utile en temps de moindre visibilité (e.g. nuit, pluie, …) et même quand il est nécessaire de garder les deux mains sur le guidon pour maintenir le control du vélo (e.g. une route peu ou mal goudronnée, descente de pente, …). Les cyclistes doivent souvent choisir entre être mieux vu et communiquer leur changement de directions *ou* maintenir le control de leur vélo.

La plupart des vélos électriques modernes ont des systèmes de clignotants intégrés, mais ceci est moins commun sur les vélos « à cuisse ». Les solutions existantes consistent principalement à rajouter un système de clignotant sur le cycliste (e.g. sur casque ou sur les vêtements), sur les extrémités du guidon ou à l’arrière du vélo. Sur cette page d’un magasin de vélo vous trouverez quelques exemples de ces différent types de solution.

Cahier des charges

Contexte

À vélo, on lève le bras pour indiquer un changement de direction. Dans les pays où les voitures circulent à gauche, on tend le bras gauche parallèle au sol pour indiquer que l’on va tourner à gauche. Pour indiquer un virage à droite, on lève le bras gauche à un angle de 90 degrés. Ceci permet aux conducteurs derrière nous de savoir vers où l’on compte se déplacer. Malheureusement, ce geste n’est pas efficace, quand il ne fait pas jour et peut s’avérer dangereux pour le cycliste qui n’a pas plus le même contrôle de son vélo. Les cyclistes ont donc besoin d’une manière de signaler leurs changements de direction sans enlever leurs mains du guidon.

Public

Bike Blinkers est une solution pour cyclistes de tous niveaux, facilement configurables sur n’importe quel vélo.

Objectifs de votre projet

L’objectif de Bike Blinkers est d’être un prototype à bas coût d’une solution de clignotant. Nous espérons qu’il pourra contribuer à une conversation plus large sur la visibilité et sécurité des cyclistes sur la route.

Besoins et contraintes

Le besoin technique principale du projet est de communiquer des instructions depuis le guidon à un dispositif a qui s’installe derrière l’utilisateur. Ce dispositif doit pouvoir être facilement accroché et décrocher du vélo car il est malheureusement courant de se voir voler tout ce qui est laissé attaché à son vélo si celui-ci reste trop longtemps dehors. Il devrait idéalement fonctionner en temps de pluie car ces cyclistes ont encore moins de visibilité quand il fait mauvais et il est d’autant plus important qu’ils soient vu sur la route.

Présentation du projet

Ce prototype de Bike Blinker utilise la conductivité pour communiquer entre le guidon et le dispositif. Un microcontrôleur Circuit Playground Express (CPX) est programmé pour activer animer des séquences de lumières « gauche » ou « droite » quand le cycliste touche un des deux boutons placés sur les extrémités du guidon.

Solution

Dispositif

Bike Blinkers est composé de trois parties : le blinker, les commandes du guidon et le câble de connexion. Une fois que les commandes du guidon et le câble de connexion sont amarrer au vélo il n’est pas nécessaire des détacher. Le blinker cependant peut être détacher facilement grâce à un système de velcro.

Blinker

Le blinker consiste principalement d’un Circuit Playground Express (CPX), d’un pack de piles externe et de câbles électrique. Vous trouverez une liste exacte du matériel ci-dessous.

Assemblage

Le couvercle de 70mm est percé à la main à trois endroits pour faire passer les câbles électriques et d’alimentation. Une fois les câbles électriques passent par les trous ceux-ci sont dénudés et on l’y attache les cosses de câble. Ceci permet d’avoir un trou plus petit qui pourra éventuellement être bouché pour rendre le blinker imperméable. L’autre extrémité du câble est également dénudée afin d’y attacher les douilles. La petite plaque de métal collé à l’arrière du CPX. Les coches sont ensuite attachés aux senseurs A3 et A4 à l’aide d’une vis et d’un écrou. L’aimant est placé à l’arrière du couvercle pour maintenir le CPX en place. Dans ce prototype la partie ‘’attache ceinture’ de pack de piles a été enlevé et remplacé par un morceau de carton scotché pour que celui-ci soit le plus compact possible. Les aimants maintiennent le pack attaché au couvercle. Des attaches auto-agrippantes sont fixées à l’arrière pour connecter le blinker au vélo.

Matériel

  • 1 x couvercle de conserve (70 mm)
  • 1 x pack de pile externe
  • câble électrique (2 x 0.75)
  • 2 x fiches males rondes (M4, 0,75)
  • 2 x cosses de câble (M4, 0,75)
  • 2 x douilles (M4, 0,75)
  • 2 x visses (M3 x 10)
  • 2 x écrous (M3)
  • 1 x petite plaque de métal
  • 1 x aimant
  • 1 x petit morceau de carton
  • scotch
  • attaches auto-agrippantes

Les commandes du guidon

Trois versions de commandes ont été testé : une avec du scotch conducteur collé sur une section du guidon, une avec une rondelle métallique qui agirait comme bouton et une troisième avec une cosses de câble. La version avec scotch conducteur n’était pas très solide et celle avec la rondelle métallique était encombrante sur le guidon est plus difficile a fixé. La version avec cosse de câble a été retenu car c’était la solution la plus discrète, résistante et facile à positionner.

Assemblage

Pour assembler les commandes il suffit de dénuder les deux côtes d’un câble électrique, d’y attacher une douille (pour le câble de connexion) et une cosse de câble qui servira comme bouton. Le scotch électrique est une option simple d’attacher la commande qui permet facilement de la repositionner si nécessaire.

Matériel

  • 2 x cosses de câble (M4, 0,75)
  • 2 x douilles (M4, 0,75)
  • câble électrique (2 x 0.75)
  • scotch électrique

Cable de connexion

Assemblage

Le câble de connexion est simplement un câble électrique double avec des fiches males rondes. Celui-ci est amarré au vélo avec des attaches de câbles. Du velcro adhésif est attaché à l’arrière du vélo pour connecter le blinker.

Matériel

  • 4 x fiches males rondes (M4, 0,75)
  • câble électrique (2 x 0.75)
  • attaches de câbles
  • attaches auto-agrippantes

Code

Le code pour le CPX consiste de deux parties. La première déclenche un clignotement si l’un des deux boutons est touché. La deuxième permet de régler le seuil de sensibilité tactile et de visualiser celui-ci.

Clignotant

Lorsqu’un contact est détecté sur les senseurs A3 ou A4 une lumière clignote 4 fois : du coté gauche pour A4 ou du coté droit pour A3. Note : Dans cette version du code la variable touched n’est pas utilisé.

Seuil de sensibilité

La sensibilité des boutons tactiles est automatiquement calibrée par le CPX entre 0 et 1023 à chaque fois que celui-ci se met en route. Le plus le seuil de sensibilité est bas, le plus sensible celui-ci sera à la détection. Dans notre cas, comme le bouton de commande est loin de du CPX nous assignons manuellement une valeur de seuil de sensibilité de 10 au début du programme. En appuyant sur la touche A ou B le seuil change de =/- 100 unités. Si l’on appuie sur A+B en même temps il est possible de voir un graph du réglage du seuil actuel. Cette section de code provient de la page Calibration et Sensibility du site d’Adafruit.

Documentation

Utiliser Bike Blinkers

Une fois les trois composants connectés il suffit d’allumer le pack de piles pour alimenter le dispositif. Il suffit d’appuyer sur un des deux boutons pour déclencher un clignotement temporaire côté gauche ou côté droit.

Configurer la sensibilité des boutons

Comme Bike Blinker est dépendant de la conductivité entre les boutons et il peut être nécessaire de configurer le seuil de sensibilité. Celui-ci peut être réglé entre 0 et 1023. Le plus bas est le chiffre, le plus facilement un contact sera détecté. Par défaut, le seuil de sensibilité est réglé à 10. Cliquer sur le bouton A diminue la sensibilité par 100 unités. Cliquer sur le bouton B augment la sensibilité par 100 unités. Pour visionner la sensibilité actuelle, cliquez sur A + B. Le plus de lumières sont allumés, le plus le dispositif est sensible au touché.

Configurer le code

Par défaut le dispositif clignote 4 fois à chaque contact avec les boutons mais il possible de facilement changer le nombre de clignotant en changeant la variable #blinks dans la méthode on start du code. Le seuil de sensibilité est configuré à 10 par défaut. Cette valeur peut être modifié en changeant la valeur de la variable sensitivity dans la méthode on start. Une fois le code modifié il faut le sauvegarder sur le CPX.

Difficultés

Nous avons rencontré deux difficultés principales : le choix de communication avec le blinker depuis les commandes et un problème de connexion/conductivité avec la solution choisie.

Choix de communication

La difficulté principale de se projet a été de trouver le mode de communication entre les commandes au niveau du guidon et le dispositif. L’idée initiale était d’utiliser d’envoyer des commandes Bluetooth à l’aide d’un Tap Strap. Le Tap Strap permet d’envoyer des commandes Bluetooth avec des gestes. Pour tester cette solution nous avons utilisé deux modules différents : le Circuit Playground BlueFruit (CPB) et le Flora Wearable Bluefruit LE. Le Flora est un module qui se connecte au CPX tandis que le CPB est un microcontrôleur indépendant en alpha et qui doit être programmé en Python. Malheureusement cette solution ne pouvait pas être mis en place car le Flora ou le CPB ne peuvent être configurer que comme un Peripheral bluetooh device et non comme un Central bluetooth device. Cela veut dire qu’il peut communiquer avec un appareil central (comme un téléphone portable ou un ordinateur) mais il n’est pas possible d’y apparier un autre dispositif qui lui enverrai des commandes. Il serait par exemple possible d’utiliser le CPX/Flora ou le CPB comme clavier mais ceux-ci ne peuvent pas recevoir de commande d’un clavier. Comme deuxième mode de communication nous avons testé l’infrarouge car c’est une technologie intégrée au CPX. Celle-ci était également inadéquate car la connexion infrarouge demande que le transmetteur et le récepteur sont en ‘ligne directe’ sans objet entre les deux. Ces limitations nous ont poussé à tester la fonction bouton tactile. Cette solution c’est avérer répondre à nos besoins techniques, et permettait une solution à coup faible).

Seuil de sensibilité

Après plusieurs test des différents modes de reconnaissance tactile (up, down, click et long click) ainsi qu’avec des matériels conducteurs diffèrent nous avons trouver que le fil électrique était la meilleur solution pour notre dispositif. Sur une courte distance le dispositif fonctionnait correctement. En augmentant le seuil de sensibilité il était aussi possible de reconnaitre un touch tactile à la distance voulu (+/- 1m) mais nous remarqué que le mode up qui demande à juste toucher la surface ne fonctionnait plus de la même manière. Il fallait maintenir la surface appuyée, idéalement entre deux doigts pour que l’action soit reconnue. Ce problème de reconnaissance tactile était d’autant plus accentué si les câbles droite et gauche était trop proche. En augmentant la sensibilité, le contact était reconnu d’un câble a l’autre même quand ceux-ci étaient séparés au maximum du possible sur le vélo. Le bouton de gauche pouvait par exemple activer le clignotant gauche et celui de droite. Dernièrement cette sensibilité rendez les faux-positifs plus fréquent. Effleurer le câble pouvait déclencher le clignotant.

Test(s) de la solution

  1. Travail individuel: "wearable" réalisé + fichiers + documentation dans votre page projet avec "cognitive walkthrough" ou similaire pour le testing. Comme ressource pour le testing, voir la page en:Cognitive walkthrough.

Discussion

Discussion du design (et si c'était à refaire)

Nous espérons que les problèmes de connectivité sont surmontables. Si c’est le cas nous pensons que les points principaux à améliorer serait l’amarrage du blinker, son étanchéité, son alimentation et ses mises à jour. Le système de velcro actuel est suffisant car le dispositif n’a jamais été testé en route. Il existe des systèmes solides et légers qui se fixe au vélo avec des élastiques et qui se bloque en tournant le dispositif d’un quart de tour. Des modèles du dispositif de fixation de Garmin sont par exemple disponible sur Thingiverse et pourraient être imprimé en 3D. L’étanchéité du dispositif a été prise en compte pendant le design mais pas mise en place. Une prochaine étape aurait été de viser une plaque en plexi glass découpée au laser sur le couvercle et d’utiliser de la colle chaude pour boucher les trous faites dans celui-ci. Pour l’alimentation il serait idéal de pouvoir alimenter de blinker avec un dynamo qui se chargerait en pédalant. Dernièrement, la version actuelle ne permet pas de mettre a jour le code du CPX sans devoir le démonter. Ajouter un adapteur micro USB de 90 degrés permettrait de facilement accéder à la prise sans faire un trou additionnel dans le couvercle. On s’imaginerait à ce stade qu’il faudrait juste dévisser la plaque en plexi glass pour accéder au port USB.

  • Discussion des résultats de vos tests utilisateurs

Licence, fichiers et documentation

By-nc.png Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale 4.0 International.

  • Fichiers :

Code en ligne Code (version téléchargeable)

  • Documentation :

Insérer ici une petite documentation pour l'utilisation de l'objet si nécessaire

Bibliographie

https://learn.adafruit.com/adafruit-circuit-playground-express https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gap https://makecode.adafruit.com/learnsystem/pins-tutorial