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