Grove - Thumb Joystick
![]()
Grove - Thumb Joystick é um módulo compatível com Grove, muito semelhante ao joystick 'analógico' dos controles do PS2 (PlayStation 2). Os eixos X e Y são dois potenciômetros de 10k que controlam o movimento 2D gerando sinais analógicos. O joystick também possui um botão que pode ser usado para aplicações especiais. Quando o módulo está em modo de operação, ele gera dois valores analógicos, representando duas direções. Em comparação com um joystick normal, seus valores de saída são restritos a um intervalo menor (ou seja, 200800); somente quando é pressionado o valor de X será definido como 1023 e o MCU poderá detectar a ação de pressionar.
Versão
| Versão do Produto | Alterações | Data de Lançamento |
|---|---|---|
| Grove - Thumb Joystick V1.1 | Inicial | Out 2016 |
Especificações
| Item | Mín | Típico | Máx | Unidade |
|---|---|---|---|---|
| Tensão de Trabalho | 4.75 | 5.0 | 5.25 | V |
| Valor Analógico de Saída (coordenada X) | 206 | 516 | 798 | \ |
| Valor Analógico de Saída (coordenada Y) | 203 | 507 | 797 | \ |
Para mais detalhes sobre módulos Grove, consulte o Grove System
Plataformas Suportadas
| Arduino | Raspberry Pi | |||
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade teórica ou de software do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários precisam escrever sua própria biblioteca de software.
Primeiros Passos
Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.
Brincar com Arduino
Demonstração
O Grove - Thumb Joystick é um dispositivo analógico que gera um sinal analógico variando de 0 a 1023. Isso exige que usemos a porta analógica do Arduino para fazer as leituras.
Hardware
- Passo 1. Prepare os itens abaixo:
| Seeeduino V4.2 | Base Shield | Grove - Thumb Joystick |
|---|---|---|
![]() | ![]() | |
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o módulo às portas
A0/A1do Grove - Base Shield usando o cabo Grove de 4 pinos. - Passo 3. Conecte o Grove - Base Shield ao Seeeduino.
- Passo 4. Conecte o Seeeduino ao PC através de um cabo USB.
![]()
Se não tivermos o Grove Base Shield, também podemos conectar o Grove-Thumb Joystick diretamente ao Seeeduino como abaixo.
| Seeeduino | Grove - Thumb Joystick |
|---|---|
| 5V | Vermelho |
| GND | Preto |
A1 | Branco |
A0 | Amarelo |
Software
- Passo 1. Copie e cole o código abaixo em um novo sketch do 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);
}
- Passo 2. Você pode verificar os valores dos sinais analógicos de saída abrindo o Serial Monitor.
![]()
O valor de saída da porta analógica do Arduino pode ser convertido para a resistência correspondente usando a fórmula: R=(float)(1023-sensorValue)*10/sensorValue.
Brincar com Codecraft
Hardware
Passo 1. Conecte um Grove - Thumb Joystick à porta A0 de um Base Shield.
Passo 2. Conecte o Base Shield ao seu Seeeduino/Arduino.
Passo 3. Conecte o Seeeduino/Arduino ao seu PC através de um cabo USB.
Software
Passo 1. Abra o Codecraft, adicione o suporte a Arduino e arraste um procedimento principal para a área de trabalho.
Se esta é a sua primeira vez usando o Codecraft, veja também o Guide for Codecraft using Arduino.
Passo 2. Arraste os blocos como na figura abaixo ou abra o arquivo cdc que pode ser baixado no final desta página.
![]()
Envie o programa para o seu Arduino/Seeeduino.
Quando o código terminar de ser enviado, você verá as coordenadas de X e Y exibidas no Serial Monitor.
Brincar com Raspberry Pi (com Grove Base Hat para Raspberry Pi)
Hardware
- Passo 1. Itens usados neste projeto:
| Raspberry pi | Grove Base Hat for RasPi | Grove - Thumb Joystick |
|---|---|---|
![]() | ||
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove Base Hat ao Raspberry.
- Passo 3. Conecte o Thumb Joystick à porta
A0do Base Hat. - Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.
![]()
No passo 3 você pode conectar o thumb joystick a qualquer porta Analógica, mas certifique-se de alterar o comando com o número de porta correspondente.
Software
Se você estiver usando Raspberry Pi com Raspberrypi OS >= Bullseye, você deve usar esta linha de comando apenas com Python3.
- Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
- Passo 2. Baixe o arquivo-fonte clonando a biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Passo 3. Execute os comandos abaixo para rodar o código.
cd grove.py/grove
python3 grove_thumb_joystick.py 0
você pode executar o programa com ++python grove_thumb_joystick.py pin++, onde pin pode ser um dentre 6 no grupo ADC e conecte o dispositivo ao slot correspondente A6.
A seguir está o 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()
Se tudo correr bem, você poderá ver o seguinte resultado
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
Você pode sair deste programa simplesmente pressionando ++ctrl+c++.
Você pode ter notado que, para a porta analógica, o número do pino na serigrafia é algo como A1, A0, porém no comando usamos o parâmetro 0 e 1, exatamente como na porta digital. Portanto, certifique-se de conectar o módulo na porta correta, caso contrário, pode haver conflitos de pinos.
Brincar com Raspberry Pi (com GrovePi_Plus)
Hardware
- Passo 1. Prepare os seguintes itens:
| Raspberry pi | GrovePi_Plus | Grove - Thumb Joystick |
|---|---|---|
![]() | ![]() | |
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o GrovePi_Plus ao Raspberry.
- Passo 3. Conecte o Grove-Thumb Joystick ranger à porta
A0do GrovePi_Plus. - Passo 4. Conecte o Raspberry ao PC através de um cabo USB.
![]()
Software
Se você estiver usando Raspberry Pi com Raspberrypi OS >= Bullseye, você terá que usar esta linha de comando apenas com Python3.
- Passo 1. Navegue até o diretório de demonstrações:
cd yourpath/GrovePi/Software/Python/
- Passo 2. Para ver o 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"
- Passo 3. Execute a demonstração.
sudo python3 grove_thumb_joystick.py
- Passo 4. Veremos a saída exibida no terminal como abaixo.
|
Visualizador de Esquemático Online
Recursos
- [Eagle] Esquemático do Grove-Thumb Joystick
- [Datasheet] Datasheet do Joystick Analógico
- [PDF] Arquivo PDF do Esquemático do Joystick
- [Codecraft] Arquivo CDC
Projetos
Servidor de música com Raspberry pi: Um primeiro passo para projeto com Raspberry Pi.
Construa um Controle Personalizado de Minecraft: Construa um Controle Personalizado de Minecraft com o GrovePi.
Suporte Técnico & Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.








