Diferència entre revisions de la pàgina «Discussió:Pàgina principal»

De Wiket
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «=Joc en Processing: El gat i el ratoli. = Abans de tot. Hem de llegir els inputs del nostre joystick un cop el tenim connectat a l’arduino. Aquest es el codi per...».)
 
 
(12 revisions intermèdies per 6 usuaris que no es mostren)
Línia 1: Línia 1:
=Joc en Processing: El gat i el ratoli. =
+
JOYSTICK <br>
Abans de tot.
+
Descripción general <br>
  
Hem de llegir els inputs del nostre joystick un cop el tenim connectat a l’arduino.
+
El joystick  analógico es un elemento de control que su forma es redonda y utiliza potenciómetros para leer continuamente el estado del eje (derecha, izquierda, arriba y abajo) y además tiene un botón de acción (que es similar al R3 del joystick de un mando de la PlayStation).Los joysticks analógicos como el que estamos describiendo son los más nuevos ya  que también existen los digitales. <br>
 +
Tiene 5 pines de conexión: <br>
 +
1.- El de tierra <br>
 +
2.- El que hace que el joystick reciba corriente. <br>
 +
3.- Pin del eje X. <br>
 +
4.- Pin del eje Y. <br>
 +
5.- Pin del botón accionador <br>
  
 +
[[File:FritzArd.png|thumb|Imagen FritzArd]] <br>
  
Aquest es el codi per a poder llegir els inputs i veure que funciona correctament.
 
El que ens proporcionarà aquest codi es un bucle de lectura que mostrarà cada milisegon les coordenades de l’angle del joystick, també ens retornarà si el botó que te el joystick esta pres retornant  el valor 1. Un cop ho executem, l’arduino emmagatzemarà l’acció, i estarà llegint contínuament els pins assignats.
 
  
=== Codi: Lectura dels ports analogics===
+
¿Cómo conectar el joystick al arduino? <br>
----
+
• El pin de tierra lo conectamos al GND del arduino. <br>
<pre>
+
• El de corriente a alguno de 5V del arduino. <br>
void setup() {
+
• El de la X se pone en un pin analógico del arduino (cualquiera analógico sirve). <br>
  // initialize serial communication at 9600 bits per second:
+
• El de la Y a cualquier pin analógico del arduino. <br>
  pinMode(8, INPUT);
+
• El del botón accionador a cualquier pin digital del arduino. <br>
  digitalWrite(8, HIGH);
+
  Serial.begin(9600);}
+
Código ejemplo <br>
void loop() {
 
  // read the input on analog pin 0:
 
  int sensorValueX = analogRead(A0);
 
  int sensorValueY = analogRead(A1);
 
  // print out the value you read:
 
  Serial.print(sensorValueX);
 
  Serial.print(",");
 
  Serial.println(sensorValueY);
 
 
 
  delay(1);        // delay in between reads for stability
 
}
 
</pre>
 
===Explicacio del codi: Lectura dels ports analogics===
 
----
 
====Part 1====
 
  
Aquesta part del codi es la inicialització del nostre codi, ens permetrà llegir el botó(switch) per el port digital 8.
+
Codigo de ejemplo que la función que tiene es monitorizar en que puntos se encuentran  la Y,X y el botón accionador. También muestra el punto en el que se encuentra conforme tu mueves joystick. <br>
La línia Serial.begin(9600) ens permet establir la connexió al dispositiu arduino a 9600 bits per segon. Amb això aconseguim que el nostre programa rebi els valors '''del port serial''' a 9600 bits per segon.
+
int x=0, y=0, boton=0; <br>
  
<pre>void setup() {
+
void setup() { <br>
   // initialize serial communication at 9600 bits per second:
+
   // put your setup code here, to run once: <br>
  pinMode(8, INPUT);
+
  Serial.begin(9600); <br>
  digitalWrite(8, HIGH);
+
} <br>
  Serial.begin(9600);
 
}</pre>
 
  
====Part 2====
+
int treatValue(int data) { <br>
 +
  return (data * 9 / 1024) + 48; <br>
 +
} <br>
  
Les següents línies estaran donant els valors que llegeixen els ports analògics a les següents variables: '''sensorValueX''' i '''SensorValueY'''.
+
void loop() { <br>
<pre>
+
   // put your main code here, to run repeatedly <br>
void loop() {
+
  x = analogRead(0); <br>
   // read the input on analog pin 0:
+
   y = analogRead(1); <br>
   int sensorValueX = analogRead(A0);
+
   boton = digitalRead(13); <br>
   int sensorValueY = analogRead(A1);</pre>
 
  
Per acabar aquestes ultimes línies printen el valor per pantalla dels ports analògics amb un delay d'un '''milisegon'''.
+
  Serial.print(x); <br>
 +
  Serial.print("=x    y="); <br>
 +
  Serial.print(y); <br>
 +
  Serial.print("    boton="); <br>
 +
  Serial.println(boton); <br>
  
<pre>Serial.print(sensorValueX);
+
   delay(100);} <br>
  Serial.print(",");
 
  Serial.println(sensorValueY);
 
 
 
 
 
   delay(1);       // delay in between reads for stability
 
}</pre>
 
 
 
Un cop executem aquest programa, el nostre arduino llegirà constantment els pins que li hem assignat per a que processin pugui rebre els valors i crear un joc a partir d’ells ja que llegirem els moviments del joystick.
 

Revisió de 06:48, 15 maig 2017

JOYSTICK
Descripción general

El joystick analógico es un elemento de control que su forma es redonda y utiliza potenciómetros para leer continuamente el estado del eje (derecha, izquierda, arriba y abajo) y además tiene un botón de acción (que es similar al R3 del joystick de un mando de la PlayStation).Los joysticks analógicos como el que estamos describiendo son los más nuevos ya que también existen los digitales.

Tiene 5 pines de conexión: 

1.- El de tierra
2.- El que hace que el joystick reciba corriente.
3.- Pin del eje X.
4.- Pin del eje Y.
5.- Pin del botón accionador

Imagen FritzArd



¿Cómo conectar el joystick al arduino?
• El pin de tierra lo conectamos al GND del arduino.
• El de corriente a alguno de 5V del arduino.
• El de la X se pone en un pin analógico del arduino (cualquiera analógico sirve).
• El de la Y a cualquier pin analógico del arduino.
• El del botón accionador a cualquier pin digital del arduino.
  Código ejemplo

Codigo de ejemplo que la función que tiene es monitorizar en que puntos se encuentran la Y,X y el botón accionador. También muestra el punto en el que se encuentra conforme tu mueves joystick.
int x=0, y=0, boton=0;

void setup() {

 // put your setup code here, to run once: 
Serial.begin(9600);

}

int treatValue(int data) { 
return (data * 9 / 1024) + 48;
}

void loop() {

 // put your main code here, to run repeatedly 
x = analogRead(0);
y = analogRead(1);
boton = digitalRead(13);
 Serial.print(x); 
Serial.print("=x y=");
Serial.print(y);
Serial.print(" boton=");
Serial.println(boton);
 delay(100);}