Computer-b-gone Teensy

De Centre de Ressources Numériques - Labomedia
Révision de 7 mars 2017 à 05:22 par Benjamin (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
Computer-b-gone Teensy
Teensy 2.jpg


Pour modifier la page utiliser l'onglet Modifier avec formulaire.

Résumé Périphérique USB qui éteint les ordinateurs
Auteur(s) b01
Licence CC-BY-SA 3
Date de création 12 décembre 2014


Intentions / Contexte

il y a de plus en plus d'ordinateurs ils peuvent devenir méchants

Principe de fonctionnement

on branche le computer-b-gone dans le port usb de n'importe quel ordinateur, ça l'éteint

on peut agrémenter la chose en faisant bouger la souris, en fermant d'abord sauvagement les programmes, en cliquant n'importe où

Besoins / Compétences

arduino, linux, xmodmap

Documentation

Matériel

Basé sur une Teensy 2 http://snootlab.com/417-teensy-20-usb-fr.html

Installation Logiciels

  1. Installer IDE Arduino 1.8.1 https://www.arduino.cc/en/Main/Software (paquet debian à la version 2 ?!)
  2. Il faut installer des morceaux pour que cette teensy 2 cause avec l'IDE Arduino

Copier les règles UDEV

sudo cp 49-teensy.rules /etc/udev/rules.d/

ça donne en débranchant, rebranchant :

Mar  1 01:24:31 db kernel: [19874.712077] usb 4-1.4: new full-speed USB device number 5 using ehci-pci
Mar  1 01:24:31 db kernel: [19874.822476] usb 4-1.4: New USB device found, idVendor=16c0, idProduct=0483
Mar  1 01:24:31 db kernel: [19874.822483] usb 4-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Mar  1 01:24:31 db kernel: [19874.822487] usb 4-1.4: Product: USB Serial
Mar  1 01:24:31 db kernel: [19874.822490] usb 4-1.4: Manufacturer: Teensyduino
Mar  1 01:24:31 db kernel: [19874.822493] usb 4-1.4: SerialNumber: 12345
Mar  1 01:24:31 db kernel: [19874.823019] cdc_acm 4-1.4:1.0: ttyACM0: USB ACM device

soit installer teensy et teensyduino.32bit ou 64 bit https://www.pjrc.com/teensy/td_download.html avec l'installeur, ça donne au final (indiquer le répertoire où est décompressé Arduino IDE 1.8.1) : Teensy-arduino.png

  • Dans l'IDE Arduino doit apparaitre :
board Teensy 2

et

USB Type : "Keyboard, mouse and joystick"
Usb mouse.gif

Programme pour déclenchement événement clavier

Les raccourcis mac os

KEY_LEFT_GUI // pour la touche command ou pomme
// Code writen by Matthew Varian www.3too1.com
// modified by b01
// Free for distrubution and use 

int a=0; //define analog input pin
int b=-9 ; //defines photocell trigger value
void setup() 
{
   pinMode(a, INPUT); //set analog pin as input
} 

void loop() 
{
  
  if(analogRead(a)>b) //if photocell is over trigger value
  { 
    //send alt-f4 command
 //   Keyboard.set_modifier(MODIFIERKEY_ALT);
 //   Keyboard.send_now();
  //  Keyboard.set_key1(KEY_F4);
   // Keyboard.send_now();
    Keyboard.set_modifier(MODIFIERKEY_CTRL);
    Keyboard.send_now();
    Keyboard.set_modifier(MODIFIERKEY_ALT);
    Keyboard.send_now();
    Keyboard.set_key1(KEY_DELETE);
    Keyboard.send_now();
    Keyboard.set_modifier(0);
    Keyboard.set_key1(0);
    Keyboard.send_now();
    
    //wait 1sec
    delay(1000);
  }
  
}

Programme pour pilotage Souris

/* Simple USB Mouse Example
   Teensy becomes a USB mouse and moves the cursor in a triangle

   You must select Mouse from the "Tools > USB Type" menu

   This example code is in the public domain.
*/

// Mouse.click(MOUSE_LEFT);

long randX;
long randY;
long randD;

float inc = 0; //we use this to increment our angle
float xPos;
float yPos;
float rad = 0; // the radius of our circle (it will be increasing)

float decalx;
float decaly;

int i;

void setup() {
     Mouse.move(-127, 127);
          Mouse.move(-127, 127);
               Mouse.move(-127, 127);
                    Mouse.move(-127, 127);
                         Mouse.move(-127, 127);
                              Mouse.move(-127, 127);
                              Mouse.move(5, 5);                              
  } 
  
void loop() {

// Barre de navig Bas

    //Mouse.move(0, 0); -127 127 bas à gauche
    //Mouse.move(5, -5);
    //delay(250);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, 127);
Mouse.move(-127, -5);
  for (i=0; i<400; i++) {
    decalx = 5;
    Mouse.move(decalx, 0);
      Mouse.click(MOUSE_LEFT);
    delay(5);
  }

// Triangle  
  for (i=0; i<100; i++) {
    Mouse.move(2, -1);
        Mouse.click(MOUSE_LEFT);
    delay(5);
  }
  for (i=0; i<100; i++) {
    Mouse.move(2, 2);
        Mouse.click(MOUSE_LEFT);
    delay(5);
  }
  for (i=0; i<100; i++) {
    Mouse.move(-4, -1);
        Mouse.click(MOUSE_LEFT);
    delay(5);
  }
// Random
    for (i=0; i<100; i++) {
      randX = random(-100, 100);
      randY = random(-100, 100);
      randD = random(5, 100);
      Mouse.move(randX, randY);
          Mouse.click(MOUSE_LEFT);
      delay(randD);
  }
// Ellipse generator
   for (i=0; i<400; i++) {  
      xPos = cos(radians(inc)) * rad; // so now we get results between -radius and radius
      yPos = sin(radians(inc)) * rad;
      Serial.println('x ', xPos);
      Serial.println('y ', yPos);
      Mouse.move(xPos, yPos);
          Mouse.click(MOUSE_LEFT);
      //we increase both the radius and the angle
      //note how the angles used to draw remain the same all the time even though the radius is changing
      //play around with this values to alter the shape of the spiral
      inc += 100;
      rad += 1;
      delay(25);
  }
// Final shutdown
   for (i=0; i<400; i++) {    
    Keyboard.set_modifier(MODIFIERKEY_ALT);
    Keyboard.send_now();
    Keyboard.set_key1(KEY_F4);
    Keyboard.send_now();
    //Keyboard.set_modifier(MODIFIERKEY_CTRL);
    //Keyboard.send_now();
    //Keyboard.set_modifier(MODIFIERKEY_ALT);
    //Keyboard.send_now();
    //Keyboard.set_key1(KEY_DELETE);
    //Keyboard.send_now();
    Keyboard.set_modifier(0);
    Keyboard.set_key1(0);
    Keyboard.send_now();
    
    //wait 1sec
    delay(1000);  
   }
  
}

Pour récupérer le controle

  1. brancher- débrancher le teensy
  2. fermer le logiciel annexe de gestion du teensy
  3. rebrancher le teensy
  4. appuyer sur le bouton de reboot