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

De wikilab
Ligne 32 : Ligne 32 :
 
== Matériel nécessaire ==
 
== Matériel nécessaire ==
  
*[[https://www.reichelt.com/fr/fr/arduino-leonardo-atmega-32u4-usb-arduino-leonardo-p125561.html Arduino Leonardo]]
+
*[https://www.reichelt.com/fr/fr/arduino-leonardo-atmega-32u4-usb-arduino-leonardo-p125561.html Arduino Leonardo]
  
 
*[http://www.atlantique-composants.fr/ProductCard/ODDA000083/kit-proto-shield-ext-rev3 1x proto board]
 
*[http://www.atlantique-composants.fr/ProductCard/ODDA000083/kit-proto-shield-ext-rev3 1x proto board]

Version du 27 mars 2019 à 17:34

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

  • 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

20 euros

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);
}


Durée de fabrication du prototype final

1h

Bonne Réalisation :)