Différences entre versions de « Projets:Pedale clavier souris »

De wikilab
(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 :)