Différences entre versions de « Projets:Pedale clavier souris »
(Created page with "== Description du projet == Une pédale qui simule l'appui sur une touche de clavier ou sur la souris. == Liens utiles == * [https://dev.humanlab.me/projet/pedale-clavier...") |
|||
Ligne 10 : | Ligne 10 : | ||
== Cahier des charges == | == Cahier des charges == | ||
− | == Analyse de l'existant == | + | ==Analyse de l'existant== |
+ | |||
+ | La pédale switch existe en USB et en bluetooth à 1, 2 ou 3 pédales, en voici quelques exemples: | ||
+ | |||
+ | - Amazon[https://www.amazon.fr/Scythe-USB_2FS-2-Foot-Switch-P%C3%A9dale/dp/B004FS0120/ref=sr_1_3?ie=UTF8&qid=1545128395&sr=8-3&keywords=pedale+usb] | ||
+ | |||
+ | - Olympus propose une version 3 switch [https://www.amazon.fr/Scythe-USB_2FS-2-Foot-Switch-P%C3%A9dale/dp/B004FS0120/ref=sr_1_3?ie=UTF8&qid=1545128395&sr=8-3&keywords=pedale+usb] | ||
+ | |||
+ | - Wewoo [https://www.rueducommerce.fr/produit/wewoo-fs2016-usb-2-portable-usb-2-pied-pedale-controle-du-clavier-multimedia-gamepad-souris-chaine-b-fonctions-d-acquisition-d-image-d-echographie-33795986/offre-81381858] | ||
+ | |||
== Equipe (Porteur de projet et contributeurs) == | == Equipe (Porteur de projet et contributeurs) == | ||
− | * Porteur de projet | + | * Porteur de projet |
+ | *Nicolas Huchet | ||
* Contributeurs | * Contributeurs | ||
* Animateur (coordinateur du projet) | * Animateur (coordinateur du projet) | ||
Ligne 21 : | Ligne 31 : | ||
== Matériel nécessaire == | == Matériel nécessaire == | ||
+ | ==Matériel== | ||
+ | *1x Arduino Leonardo | ||
+ | |||
+ | *[http://www.atlantique-composants.fr/ProductCard/ODDA000083/kit-proto-shield-ext-rev3 1x proto board] | ||
+ | |||
+ | *[http://www.atlantique-composants.fr/ProductCard/KSJC3S/embase-jack-3-5-stereo 2x Jack 3.5 Stéréo] | ||
+ | |||
+ | *4x Résistance 10k | ||
+ | *4x Condensateur 10u | ||
+ | |||
+ | *1x Led verte 5mm | ||
+ | *1x Résistance 220 ohm | ||
+ | |||
+ | * des fils | ||
+ | *fer à souder | ||
+ | |||
+ | *Etain | ||
+ | *Pcb | ||
+ | |||
== Outils nécessaires == | == Outils nécessaires == | ||
Ligne 31 : | Ligne 60 : | ||
== Étapes de fabrication pas à pas == | == Étapes de fabrication pas à pas == | ||
+ | ==Description du projet== | ||
+ | |||
+ | Fabrication d'une pédale permettant d'actionner une touche du clavier avec le pied. | ||
+ | |||
+ | ==Raisons du projet== | ||
+ | |||
+ | Une pédale switch est souvent utilisés par des musiciens désireux de tourner les pages de partitions sans les mains. Cette aide technique peut également servir à des personnes agées ou a des personnes n'ayant l'usage que d'un bras. Dans notre cas, cette aide technique va permettre à un personne amputée d'une main de pouvoir utiliser un logiciel de CAO (conception Assistée par Ordinateur comme FreeCAD)dans le but de pouvoir tourner la pièce en utilisant la souris tout en actionnant simultanément les touches _Ctrl_ et _Maj_ avec le pied. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==Avantages à le faire soi-même== | ||
+ | |||
+ | Le premier prix est à partir de 50 euros, ce qui représente plus ou moins le même coût que le modèle Do It Yourself (à faire soi-même), pourquoi s'embêter à le fabriquer alors ? Le modèle open source que nous avons fabriqué présente l'avantage d'être une introduction simple à la fabrication numérique et une excuse pour aller fréquenter un fablab, créer du lien social et développer des compétences techniques (découpe laser, soudure, arduino). | ||
+ | |||
+ | |||
+ | ==Réalisation== | ||
+ | |||
+ | <gallery mode="slideshow"> | ||
+ | File:Pétaleraccourci.jpg|Montage ensemble | ||
+ | File:Cable-USBpalette.jpg|Cable USB-cable micro USB | ||
+ | File:Mimijacketstereo-jacketstereo.jpg|Jack stereo male 3,5mm-Jack stereo male 6,35mm | ||
+ | File:Boitier-Montageelec.jpg|Boitier | ||
+ | </gallery> | ||
+ | |||
+ | Il y a deux usages possible: | ||
+ | |||
+ | * Une prise jack de gauche on peut effectuer le raccourci clavier | ||
+ | * Une prise jack de droite on peut effectuer le raccourci avec clic gauche/droit | ||
+ | |||
+ | ===Code pour programmer le Léonardo=== | ||
+ | |||
+ | <pre> | ||
+ | /* | ||
+ | Pédale clavier/souris | ||
+ | My Human Kit 2019 | ||
+ | |||
+ | compatible Arduino Leonardo | ||
+ | |||
+ | émule un clavier (touche Ctrl et Shift) | ||
+ | et/ou une souris (clic gauche et clic droit) | ||
+ | */ | ||
+ | |||
+ | |||
+ | #include "Keyboard.h" | ||
+ | #include "Mouse.h" | ||
+ | |||
+ | #define LED 13 | ||
+ | |||
+ | class Button { | ||
+ | public: | ||
+ | // contructeur | ||
+ | Button(int defaultValue = 0, int pin = 0) { // valeur par défaut, broche | ||
+ | this->pin = pin; | ||
+ | this->value = defaultValue; | ||
+ | this->previousValue = defaultValue; | ||
+ | this->defaultValue = defaultValue; | ||
+ | }; | ||
+ | |||
+ | // accesseurs et mutateurs | ||
+ | int get() { | ||
+ | return value; | ||
+ | }; | ||
+ | void set(int value) { | ||
+ | this->previousValue = this->value; | ||
+ | this->value = value; | ||
+ | }; | ||
+ | |||
+ | //autres fonctions | ||
+ | void init() { | ||
+ | pinMode(pin, INPUT); | ||
+ | }; | ||
+ | int read() { | ||
+ | set(digitalRead(pin)); | ||
+ | return value; | ||
+ | }; | ||
+ | bool isPressed() { | ||
+ | return (value != defaultValue); | ||
+ | }; | ||
+ | bool isReleased() { | ||
+ | return (value == defaultValue); | ||
+ | }; | ||
+ | bool hasChanged() { | ||
+ | return (value != previousValue); | ||
+ | }; | ||
+ | bool isJustPressed() { | ||
+ | return (hasChanged() && isPressed()); | ||
+ | }; | ||
+ | bool isJustReleased() { | ||
+ | return (hasChanged() && isReleased()); | ||
+ | }; | ||
+ | |||
+ | private: | ||
+ | int pin; | ||
+ | int value; | ||
+ | int previousValue; | ||
+ | int defaultValue; | ||
+ | }; | ||
+ | |||
+ | Button boutonA(HIGH, 2); | ||
+ | Button boutonB(HIGH, 3); | ||
+ | Button boutonC(HIGH, 4); | ||
+ | Button boutonD(HIGH, 5); | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(LED, OUTPUT); | ||
+ | |||
+ | boutonA.init(); | ||
+ | boutonB.init(); | ||
+ | boutonC.init(); | ||
+ | boutonD.init(); | ||
+ | |||
+ | Mouse.begin(); | ||
+ | Keyboard.begin(); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | boutonA.read(); | ||
+ | boutonB.read(); | ||
+ | boutonC.read(); | ||
+ | boutonD.read(); | ||
+ | |||
+ | if (boutonA.isJustPressed()) { | ||
+ | Keyboard.press(KEY_LEFT_CTRL); | ||
+ | digitalWrite(LED, HIGH); | ||
+ | } | ||
+ | if (boutonA.isJustReleased()) { | ||
+ | Keyboard.release(KEY_LEFT_CTRL); | ||
+ | digitalWrite(LED, LOW); | ||
+ | } | ||
+ | |||
+ | if (boutonB.isJustPressed()) { | ||
+ | Keyboard.press(KEY_LEFT_SHIFT); | ||
+ | digitalWrite(LED, HIGH); | ||
+ | } | ||
+ | if (boutonB.isJustReleased()) { | ||
+ | Keyboard.release(KEY_LEFT_SHIFT); | ||
+ | digitalWrite(LED, LOW); | ||
+ | } | ||
+ | |||
+ | if (boutonC.isJustPressed()) { | ||
+ | Mouse.click(MOUSE_LEFT); | ||
+ | } | ||
+ | |||
+ | if (boutonD.isJustPressed()) { | ||
+ | Mouse.click(MOUSE_RIGHT); | ||
+ | } | ||
+ | |||
+ | delay(10); | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==Coût== | ||
+ | |||
+ | 20 euros | ||
== Durée de fabrication du prototype final == | == Durée de fabrication du prototype final == | ||
+ | |||
+ | 1h | ||
+ | |||
+ | Bonne Réalisation :) | ||
[[Category:Projets]] | [[Category:Projets]] |
Version du 27 mars 2019 à 17:20
Description du projet
Une pédale qui simule l'appui sur une touche de clavier ou sur la souris.
Liens utiles
Cahier des charges
Analyse de l'existant
La pédale switch existe en USB et en bluetooth à 1, 2 ou 3 pédales, en voici quelques exemples:
- Amazon[1]
- Olympus propose une version 3 switch [2]
- Wewoo [3]
Equipe (Porteur de projet et contributeurs)
- Porteur de projet
- Nicolas Huchet
- Contributeurs
- Animateur (coordinateur du projet)
- Fabmanager référent
- Julien Lebunetel
- Responsable de documentation
Matériel nécessaire
Matériel
- 1x Arduino Leonardo
- 4x Résistance 10k
- 4x Condensateur 10u
- 1x Led verte 5mm
- 1x Résistance 220 ohm
- des fils
- fer à souder
- Etain
- Pcb
Outils nécessaires
Coût
Délai estimé
Fichiers source
Étapes de fabrication pas à pas
Description du projet
Fabrication d'une pédale permettant d'actionner une touche du clavier avec le pied.
Raisons du projet
Une pédale switch est souvent utilisés par des musiciens désireux de tourner les pages de partitions sans les mains. Cette aide technique peut également servir à des personnes agées ou a des personnes n'ayant l'usage que d'un bras. Dans notre cas, cette aide technique va permettre à un personne amputée d'une main de pouvoir utiliser un logiciel de CAO (conception Assistée par Ordinateur comme FreeCAD)dans le but de pouvoir tourner la pièce en utilisant la souris tout en actionnant simultanément les touches _Ctrl_ et _Maj_ avec le pied.
Avantages à le faire soi-même
Le premier prix est à partir de 50 euros, ce qui représente plus ou moins le même coût que le modèle Do It Yourself (à faire soi-même), pourquoi s'embêter à le fabriquer alors ? Le modèle open source que nous avons fabriqué présente l'avantage d'être une introduction simple à la fabrication numérique et une excuse pour aller fréquenter un fablab, créer du lien social et développer des compétences techniques (découpe laser, soudure, arduino).
Réalisation
Il y a deux usages possible:
- Une prise jack de gauche on peut effectuer le raccourci clavier
- Une prise jack de droite on peut effectuer le raccourci avec clic gauche/droit
Code pour programmer le Léonardo
/* Pédale clavier/souris My Human Kit 2019 compatible Arduino Leonardo émule un clavier (touche Ctrl et Shift) et/ou une souris (clic gauche et clic droit) */ #include "Keyboard.h" #include "Mouse.h" #define LED 13 class Button { public: // contructeur Button(int defaultValue = 0, int pin = 0) { // valeur par défaut, broche this->pin = pin; this->value = defaultValue; this->previousValue = defaultValue; this->defaultValue = defaultValue; }; // accesseurs et mutateurs int get() { return value; }; void set(int value) { this->previousValue = this->value; this->value = value; }; //autres fonctions void init() { pinMode(pin, INPUT); }; int read() { set(digitalRead(pin)); return value; }; bool isPressed() { return (value != defaultValue); }; bool isReleased() { return (value == defaultValue); }; bool hasChanged() { return (value != previousValue); }; bool isJustPressed() { return (hasChanged() && isPressed()); }; bool isJustReleased() { return (hasChanged() && isReleased()); }; private: int pin; int value; int previousValue; int defaultValue; }; Button boutonA(HIGH, 2); Button boutonB(HIGH, 3); Button boutonC(HIGH, 4); Button boutonD(HIGH, 5); void setup() { pinMode(LED, OUTPUT); boutonA.init(); boutonB.init(); boutonC.init(); boutonD.init(); Mouse.begin(); Keyboard.begin(); } void loop() { boutonA.read(); boutonB.read(); boutonC.read(); boutonD.read(); if (boutonA.isJustPressed()) { Keyboard.press(KEY_LEFT_CTRL); digitalWrite(LED, HIGH); } if (boutonA.isJustReleased()) { Keyboard.release(KEY_LEFT_CTRL); digitalWrite(LED, LOW); } if (boutonB.isJustPressed()) { Keyboard.press(KEY_LEFT_SHIFT); digitalWrite(LED, HIGH); } if (boutonB.isJustReleased()) { Keyboard.release(KEY_LEFT_SHIFT); digitalWrite(LED, LOW); } if (boutonC.isJustPressed()) { Mouse.click(MOUSE_LEFT); } if (boutonD.isJustPressed()) { Mouse.click(MOUSE_RIGHT); } delay(10); }
Coût
20 euros
Durée de fabrication du prototype final
1h
Bonne Réalisation :)