This pad builds on [[hacklab-kurssit-peliohjaimen-rakentaminen/rev.1143]], created by MarkoN & dist & haa & tapio & suovula & riverrun & anacron & [unnamed author] & jari & Lare

Peliohjaimen rakentaminen -kurssi Helsinki Hacklabillä

Kurssin tavoite
*perusteet, kuinka Arduino UNO R3:lla tehdään USB-peliohjain tai näppäimistö
*pitäisi toimia Windowsissa, OS X:ssä, Linuxilla ja PS3:lla (varauksin)
*http://arduino.cc/en/Main/ArduinoBoardUno
*osallistuja määrittelee haluamansa ohjaimen tyypin, akselien määrän ja kurssin vetäjien kanssa päätetään tarvittavat osat
*esimerkki A, yksinkertainen 'turvanappi' joka aiheuttaa joystick- tai näppäinpainallukset
*http://biltema.fi/fi/Autoilu---MP/Autotarvikkeet/Autosahko/Virtakatkaisin/Vipukytkin-suojakannella-43042/
*esimerkki B, täysi HOTAS-systeemi hall-antureilla ja painesensoreilla
*http://www.f-16.net/attachments/f_16_hotas_001_925.jpg
*materiaaleina käytämme laserleikattua akryyliä, kahvoihin värjättyä polymorph muovia, alumiiniputkia jne. mitä varastosta löytyy ja mitä osallistujat ovat tuoneet mukanaan
*kurssilla ei tarvioida, keskitymme ohjaimen varsinaiseen rakentamiseen
*materiaalimaksu on noin 30..80 euroa, riippuen mitä antureita Arduinon lisäksi ohjaimeensa haluaa
*tarkoituksena ei ole vielä tehdä sitä lopullista, vaan enemmänkin prototyyppi, jotta osaa jatkossa tehdä omin päin lisää
*labille voi tiistaisin tulla jatkamaan, jos jää kesken
*la 24.3.2012 Kotiohjaamopäivät Suomen Ilmailumuseolla, tänne voi tulla esittelemään tuotostaan

Aika ja paikka
*lauantaina 10.3.2012 ja sunnuntaina 11.3.2012
*aamupäivä 10-12, lounas 12-13, iltapäivä 13-17, yritä päästä ajoissa paikalle
*Helsinki Hacklab
*Vallilassa, Nilsiänkatu 10, B-rappu, ovessa numero johon soittamalla tullaan avaaman
*http://helsinki.hacklab.fi/yhteystiedot/

Ilmoittautuminen
*kerro ilmoittautumisen yhteydessä minkälaista ohjainta olisit tekemässä, niin katsellaan miten onnistuu ja mitä tarvikkeita tarvitset
*https://docs.google.com/spreadsheet/viewform?formkey=dC1lZkFiNWNYQXZJZ3RLZnlBSng4RUE6MA
*jos et saa kuittausta imoittautumiseesi vuorokauden kuluessa, lähetä mailia hallitus@hacklab.fi

Muuta
*kurssi on kaikille avoin, mutta kurssilla tarvitaan materiaaleja:
*Arduino UNO R3, hinta 20-30 e
*nappeja, kytkimiä, ledejä, antureita, hinta 10-50 e
*polymorph-muovia suositellaan kahvoiksi, hinta 5-10 e
*tilatut materiaalit maksetaan paikan päällä, varaa käteistä mukaan

--
Helsinki Hacklab: http://helsinki.hacklab.fi/


Suovulan hankinta TODO
*Biltema: turvavipukytkimiä ja katsoa mitä muuta voisi löytyä
*Partco:
*http://www.partco.biz/verkkokauppa/product_info.php?&products_id=15991
*http://www.partco.biz/verkkokauppa/product_info.php?products_id=1443
*http://www.partco.biz/verkkokauppa/product_info.php?products_id=15707
*http://www.partco.biz/verkkokauppa/product_info.php?products_id=7391
*http://www.partco.biz/verkkokauppa/product_info.php?products_id=7368
*Hobby Point: värejä jauheena

int sensorPinX = A0; // potikka X
int sensorPinY = A1; // potikka Y
int ledPinX = 10; // ledi X
int ledPinY = 11; // ledi Y
int sensorValueX = 0; // 0-1023
int sensorValueY = 0;

void setup() {
  pinMode(ledPinX, OUTPUT); // ledi X
  pinMode(ledPinY, OUTPUT); // ledi y
  pinMode(sensorPinX, INPUT); // potikka
  pinMode(sensorPinY, INPUT); // potikka
  Serial.begin(115200);
}

void loop() {
  sensorValueX = analogRead(sensorPinX);
  sensorValueY = analogRead(sensorPinY);
  analogWrite(ledPinX,sensorValueX/4);
  analogWrite(ledPinY,sensorValueY/4); 
  Serial.print(millis());
  Serial.print(" x= ");
  Serial.print(sensorValueX);
  Serial.print(" y= ");
  Serial.print(sensorValueY);
  Serial.println();
}

ppppppp

float dx = 0;
float dy = 0;
int w = 640;
int h = 480;
int x = w / 2;
int y = h / 2;
float koko = 0;

void setup() {
  size(w,h);
  smooth();
}

void draw() {
  if (mousePressed) {
    dx = 0;
    dy = 0;
    x = 215;
    y = 200;
    background(random(56), random(84), random(72));
  }
  if (keyPressed && (key == CODED)) { // if key is coded
    if (keyCode == LEFT) { // jos on vasen
      dx -= 0.1;
    } else if (keyCode == RIGHT) { // jos on oikea
      dx += 0.1;   
    } 
    else if (keyCode == UP) { // jos on ylos
      dy -= 0.1;   
    } 
    else if (keyCode == DOWN) {
      dy += 0.1;
    }
  
  }
  x += dx;
  y += dy;
  if (x >= w){
    x = 0;
  }
  else if (x <= 0){
    x = w;
  }
  if (y >= h){
    y = 0;
  }
  else if (y <= 0){
    y = h;
  }
  fill(random(200), random(201), random(221));
  noStroke();
  koko = (3 * koko + random(30)) / 4;
  ellipse(x,y,koko,koko);
  delay(10);
}