MHO lekplats krets Scribe (2 / 4 steg)
Steg 2: Programacion
Lo primero que realizaremos es la programación de nuestro arduino UNO, al final de este paso dejamos el länka de los sketchs para su descarga
CÓDIGO ARDUINO: (Meño)
Se declaran todas las variabler que se utilizaran.
char A;
int d;
float a, c;
int b;
void setup() {
Se inicializará el monitor följetong.
Serial.BEGIN(9600);
Se declaran los pines 12 y 13 como salida para prender y apagar bi ledde.
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);
Ogiltig loop () {
Se valida si hay algo sv sv monitor följetong.
om (Serial.available() > 0) {
Se guarda sv la variabel el contenido que se este enviando desde el monitor följetong.
A=Serial.Read();
Se valida el contenido de la variabel.
om (en == "A") {
Se lee el valor que se obtiene del pin analógico 0.
a=analogRead(0);
Se realiza una regla de 3 y algunos cálculos aritméticos.
c = float (en * 5/1024);
b=float(1000*(5-c)/c);
Se återvi para DEPURACIÓN.
Serial.println (b); //Se valida el valor obtenido de los cálculos aritméticos con los rangos aproximados que tiene cada una de las resistencias.
#RESISTENCIA 1K
om (b > 1500 & & b < 2100)
{
Serial.println(110); }
#RESISTENCIA 4.7 K
om (b > 5200 & & b < 7200)
{Serial.println(470);
}
#RESISTENCIA 100 OHM
om (b > 800 & & b < 1100)
{
Serial.println(100);
}
Delay(1000);
}
om (en == hade ") {
digitalWrite(13,LOW);
digitalWrite(12,LOW);
} < br > om (en == 'B') {
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
}
om (en == "C") {
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
}
}
Ahora debemos empezar con la parte gráfica de nuestro juego sv esta in han elegido göra con bearbetning debido que se pueden realizar prototipos muy rápido y debido al poco tiempo que tenemos en la BuildNigh es perfecto para reflejar lo que queremos realizar.
Lo primero que debemos hacer es descargar unas cuantas capturas de pantalla del videojuego ursprungliga Mho lekplats que podemos encontrar en Google. CON Inkscape o algún otro redaktör de bilderna podemos editar las bilderna para borrar el marcador de tiempo y valor de resistencia y colocar los nuestros.
Después de eso ahora debemos poner todo sv bearbetning
El código en bearbetning es el siguiente:
MHO lekplats krets Scribe
Bajo una Licencia Creative Commons 4.0
Andres Sabas Enero 2015
BuildNight Instrutable
PImage skärmen;
PImage gameover;
PImage win;
PImage lek;
booleska start00 = false;
booleska kontroll = false;
int poäng, tapperhet;
float tiempo;
färg colorVerde = färg (0, 255, 0);
färg colorAzul=color(0,0,255);
Snöre värde;
PFont teckensnitt;
int tid;
String timeString = "20", punkt;
int initialTime, m;
int intervall = 1000;
int total Time = 22000;
StringList resistencias;
StringList resistencias2;
heltal index;
import processing.serial.*;
Seriella mySerial;
void setup()
{storlek (320, 568);
resistencias = ny StringList();
resistencias.append("100");
resistencias.append("1000");
resistencias.append("4700");
resistencias2 = ny StringList();
resistencias2.append("100");
resistencias2.append("110");
resistencias2.append("470");
Background(0); svart bakgrund
skärmen = loadImage("mho.png");
GameOver = loadImage("error.png");
vinna = loadImage("mhowin.png");
spela = loadImage("mhoplay.png");
Start1 = loadFont("Bim.ttf");
start00 = sant;
kontroll = sant;
Fill(0);
mySerial = ny följetong (här, "COM14", 9600);
mySerial.buffer(3);
mySerial.write(68); Tryck "D"
}
void draw()
{
om (start00 == true) {
bilden (skärmen, 0, 0);
fyllning (0, 90, 90);
textSize(32);
text ("Krets skrivare", bredd * 0,15, höjd * 0,36);
fyllning (0, 90, 190);
textSize(22);
text ("start", bredd * 0.4, höjd * 0,41);
textSize(14);
text ("Diseñado por Sabas y Meño", bredd * 0.2, höjd * 0,48);
text ("The Inventor House", bredd * 0.2, höjd * 0,51);
textSize(22); < br > text ("Bygga natt krets skrivare", bredd * 0.1, höjd * 0,59);
index = int (random(3));
}
om (start00 == false & & kontroll == true) {
m = millis ()-initialTime;
Background(Play);
om (millis() - m > intervall)
{
tid = int(21-(millis()/1000));
timeString = nf (tid, 2);
m = millis();
}
Fill(colorAzul);
item = resistencias.get(index);
text (posten, bredd * 0.4, höjd * 0,13);
Fill(colorVerde);
textSize(30);
text (timeString + "SEK", bredd * 0.8, höjd * 0,13);
om (millis() > total Time)
{
mySerial.write(65); Skriva ut "A"
kontroll = false;
}
}
}
void mousePressed() {
om (start00 == true & & (mouseX > ((width * 0.4) - 200)) & & (mouseX < ((width * 0.4) + 200)) & & (mouseY > ((height * 0.35)-40) & & (mouseY < ((height * 0.35) + 40))) {
initialTime = millis();
start00 = false;
}
}
void serialEvent(Serial port) {
Data från den seriella porten är läsa i serialEvent() med funktionen read() och tilldelas till den globala variabeln: val
värde = mySerial.readString();
item = resistencias2.get(index);
För felsökning < br > println ("Raw Input:" + värde);
println ("tapperhet resistencias:" + objekt);
om (value.equals(item)) {
Background(Win);
mySerial.write(66);
}
annat {
Background(GameOver);
mySerial.write(67);
}
}
Puedes descargar las bilderna y código desde el siguiente länk: archivos arduino y bearbetning