Grove - Thumb Joystick
Grove - Thumb Joystick es un módulo compatible con Grove que es muy similar al joystick 'analógico' de los controladores de PS2 (PlayStation 2). Los ejes X e Y son dos potenciómetros de 10k que controlan el movimiento 2D generando señales analógicas. El joystick también tiene un botón pulsador que podría usarse para aplicaciones especiales. Cuando el módulo está en modo de funcionamiento, generará dos valores analógicos, representando dos direcciones. Comparado con un joystick normal, sus valores de salida están restringidos a un rango menor (es decir, 200800), solo cuando se presiona el valor X se establecerá en 1023 y el MCU puede detectar la acción de presionar.
Versión
Versión del Producto | Cambios | Fecha de Lanzamiento |
---|---|---|
Grove - Thumb Joystick V1.1 | Inicial | Oct 2016 |
Especificaciones
Elemento | Mín | Típico | Máx | Unidad |
---|---|---|---|---|
Voltaje de Funcionamiento | 4.75 | 5.0 | 5.25 | V |
Valor Analógico de Salida (coordenada X) | 206 | 516 | 798 | \ |
Valor Analógico de Salida (coordenada Y) | 203 | 507 | 797 | \ |
Para más detalles sobre los módulos Grove, consulte Sistema Grove
Plataformas Compatibles
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
Las plataformas mencionadas anteriormente como compatibles son una indicación de la compatibilidad de software o teórica del módulo. Solo proporcionamos biblioteca de software o ejemplos de código para la plataforma Arduino en la mayoría de los casos. No es posible proporcionar biblioteca de software / código de demostración para todas las plataformas MCU posibles. Por lo tanto, los usuarios tienen que escribir su propia biblioteca de software.
Primeros Pasos
Si esta es la primera vez que trabajas con Arduino, te recomendamos firmemente que veas Primeros Pasos con Arduino antes de comenzar.
Jugar con Arduino
Demostración
El Grove - Thumb Joystick es un dispositivo analógico que emite una señal analógica que va de 0 a 1023. Eso requiere que usemos el puerto analógico de Arduino para tomar las lecturas.
Hardware
- Paso 1. Prepara los siguientes elementos:
Seeeduino V4.2 | Base Shield | Grove - Thumb Joystick |
---|---|---|
![]() | ![]() | ![]() |
Obtener Uno Ahora | Obtener Uno Ahora | Obtener Uno Ahora |
- Paso 2. Conecta el módulo al
A0
/A1
del Grove - Base Shield usando el cable grove de 4 pines. - Paso 3. Conecta el Grove - Base Shield al Seeeduino.
- Paso 4. Conecta el Seeeduino a la PC mediante un cable USB.
Si no tenemos el Grove Base Shield, también podemos conectar directamente el Grove-Thumb Joystick al Seeeduino como se muestra a continuación.
Seeeduino | Grove - Thumb Joystick |
---|---|
5V | Rojo |
GND | Negro |
A1 | Blanco |
A0 | Amarillo |
Software
- Paso 1. Copia y pega el código de abajo en un nuevo sketch de Arduino.
/*
Thumb Joystick demo v1.0
by:https://www.seeedstudio.com
connect the module to A0&A1 for using;
*/
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);
Serial.print("The X and Y coordinate is:");
Serial.print(sensorValue1, DEC);
Serial.print(",");
Serial.println(sensorValue2, DEC);
Serial.println(" ");
delay(200);
}
- Paso 2. Puedes verificar los valores de las señales analógicas de salida abriendo el Monitor Serie.
El valor de salida del puerto analógico de Arduino puede convertirse a la resistencia correspondiente usando la fórmula: R=(float)(1023-sensorValue)*10/sensorValue.
Jugar con Codecraft
Hardware
Paso 1. Conecta un Grove - Thumb Joystick al puerto A0
de un Base Shield.
Paso 2. Conecta el Base Shield a tu Seeeduino/Arduino.
Paso 3. Conecta el Seeeduino/Arduino a tu PC mediante un cable USB.
Software
Paso 1. Abre Codecraft, añade soporte para Arduino, y arrastra un procedimiento principal al área de trabajo.
Si esta es tu primera vez usando Codecraft, consulta también Guía para usar Codecraft con Arduino.
Paso 2. Arrastra bloques como en la imagen de abajo o abre el archivo cdc que puede descargarse al final de esta página.
Sube el programa a tu Arduino/Seeeduino.
Cuando el código termine de subirse, verás las coordenadas de X e Y mostradas en el Monitor Serie.
Jugar con Raspberry Pi (Con Grove Base Hat para Raspberry Pi)
Hardware
- Paso 1. Elementos utilizados en este proyecto:
Raspberry pi | Grove Base Hat para RasPi | Grove - Thumb Joystick |
---|---|---|
![]() | ![]() | ![]() |
Consigue UNO Ahora | Consigue UNO Ahora | Consigue UNO Ahora |
- Paso 2. Conecta el Grove Base Hat al Raspberry.
- Paso 3. Conecta el Thumb Joystick al puerto
A0
del Base Hat. - Paso 4. Conecta el Raspberry Pi a la PC a través del cable USB.
Para el paso 3 puedes conectar el thumb joystick a cualquier Puerto Analógico pero asegúrate de cambiar el comando con el número de puerto correspondiente.
Software
Si estás usando Raspberry Pi con Raspberrypi OS >= Bullseye, tienes que usar esta línea de comandos solo con Python3.
- Paso 1. Sigue Configuración de Software para configurar el entorno de desarrollo.
- Paso 2. Descarga el archivo fuente clonando la librería grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Paso 3. Ejecuta los siguientes comandos para ejecutar el código.
cd grove.py/grove
python3 grove_thumb_joystick.py 0
puedes ejecutar el programa con ++python grove_thumb_joystick.py pin++, donde pin puede ser uno de 6 en el grupo ADC y conectar el dispositivo al slot correspondiente A6.
A continuación está el código grove_thumb_joystick.py.
import math
import sys
import time
from grove.adc import ADC
class GroveThumbJoystick:
def __init__(self, channelX, channelY):
self.channelX = channelX
self.channelY = channelY
self.adc = ADC()
@property
def value(self):
return self.adc.read(self.channelX), self.adc.read(self.channelY)
Grove = GroveThumbJoystick
def main():
from grove.helper import SlotHelper
sh = SlotHelper(SlotHelper.ADC)
pin = sh.argv2pin()
sensor = GroveThumbJoystick(int(pin), int(pin + 1))
while True:
x, y = sensor.value
if x > 900:
print('Joystick Pressed')
print("X, Y = {0} {1}".format(x, y))
time.sleep(.2)
if __name__ == '__main__':
main()
If everything goes well, you will be able to see the following result
pi@raspberrypi:~/grove.py/grove $ python3 grove_thumb_joystick.py 0
Hat Name = 'Grove Base Hat RPi'
X, Y = 506 484
X, Y = 484 484
X, Y = 506 484
X, Y = 506 487
Joystick Pressed
X, Y = 999 485
X, Y = 310 736
X, Y = 681 484
Joystick Pressed
X, Y = 999 277
Joystick Pressed
X, Y = 999 487
X, Y = 506 484
X, Y = 501 486
X, Y = 509 484
X, Y = 511 486
X, Y = 510 485
^CTraceback (most recent call last):
File "grove_thumb_joystick.py", line 69, in <module>
main()
File "grove_thumb_joystick.py", line 66, in main
time.sleep(.2)
KeyboardInterrupt
Puedes salir de este programa simplemente presionando ++ctrl+c++.
Es posible que hayas notado que para el puerto analógico, el número de pin en la serigrafía es algo como A1
, A0
, sin embargo en el comando usamos el parámetro 0 y 1, igual que el puerto digital. Así que por favor asegúrate de conectar el módulo en el puerto correcto, de lo contrario puede haber conflictos de pines.
Jugar Con Raspberry Pi (con GrovePi_Plus)
Hardware
- Paso 1. Prepara los siguientes elementos:
Raspberry pi | GrovePi_Plus | Grove - Thumb Joystick |
---|---|---|
![]() | ![]() | ![]() |
Obtener Uno Ahora | Obtener Uno Ahora | Obtener Uno Ahora |
- Paso 2. Conecta el GrovePi_Plus al Raspberry.
- Paso 3. Conecta el Grove-Thumb Joystick al puerto
A0
del GrovePi_Plus. - Paso 4. Conecta el Raspberry a la PC a través del cable USB.
Software
Si estás usando Raspberry Pi con Raspberrypi OS >= Bullseye, tienes que usar esta línea de comando solo con Python3.
- Paso 1. Navega al directorio de las demos:
cd yourpath/GrovePi/Software/Python/
- Paso 2. Para ver el código
nano grove_thumb_joystick.py # "Ctrl+x" to exit #
import time
import grovepi
# Connect the Grove Thumb Joystick to analog port A0
# GrovePi Port A0 uses Arduino pins 0 and 1
# GrovePi Port A1 uses Arduino pins 1 and 2
# Don't plug anything into port A1 that uses pin 1
# Most Grove sensors only use 3 of their 4 pins, which is why the GrovePi shares Arduino pins between adjacent ports
# If the sensor has a pin definition SIG,NC,VCC,GND, the second (white) pin is not connected to anything
# If you wish to connect two joysticks, use ports A0 and A2 (skip A1)
# Uses two pins - one for the X axis and one for the Y axis
# This configuration means you are using port A0
xPin = 0
yPin = 1
grovepi.pinMode(xPin,"INPUT")
grovepi.pinMode(yPin,"INPUT")
# The Grove Thumb Joystick is an analog device that outputs analog signal ranging from 0 to 1023
# The X and Y axes are two ~10k potentiometers and a momentary push button which shorts the x axis
# My joystick produces slightly different results to the specifications found on the url above
# I've listed both here:
# Specifications
# Min Typ Max Click
# X 206 516 798 1023
# Y 203 507 797
# My Joystick
# Min Typ Max Click
# X 253 513 766 1020-1023
# Y 250 505 769
while True:
try:
# Get X/Y coordinates
x = grovepi.analogRead(xPin)
y = grovepi.analogRead(yPin)
# Calculate X/Y resistance
Rx = (float)(1023 - x) * 10 / x
Ry = (float)(1023 - y) * 10 / y
# Was a click detected on the X axis?
click = 1 if x >= 1020 else 0
print "x =", x, " y =", y, " Rx =", Rx, " Ry =", Ry, " click =", click
time.sleep(.5)
except IOError:
print "Error"
- Step 3. Run the demo.
sudo python3 grove_thumb_joystick.py
- Paso 4. Veremos la salida mostrada en la terminal como se muestra a continuación.
|
Visor de Esquemas en Línea
Recursos
- [Eagle] Esquema del Grove-Thumb Joystick
- [Hoja de Datos] Hoja de Datos del Joystick Analógico
- [PDF] Archivo PDF del Esquema del Joystick
- [Codecraft] Archivo CDC
Proyectos
Servidor de música con Raspberry pi: Un primer paso hacia un proyecto con Raspberry Pi.
Construye un Controlador Personalizado de Minecraft: Construye un Controlador Personalizado de Minecraft con el GrovePi.
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.