Pular para o conteúdo principal

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 ProdutoAlteraçõesData de Lançamento
Grove - Thumb Joystick V1.1InicialOut 2016

Especificações

ItemMínTípicoMáxUnidade
Tensão de Trabalho4.755.05.25V
Valor Analógico de Saída (coordenada X)206516798\
Valor Analógico de Saída (coordenada Y)203507797\
dica

Para mais detalhes sobre módulos Grove, consulte o Grove System

Plataformas Suportadas

ArduinoRaspberry Pi
cuidado

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

nota

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.2Base ShieldGrove - Thumb Joystick
enter image description hereenter image description hereenter image description here
Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o módulo às portas A0/A1 do 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.

nota

Se não tivermos o Grove Base Shield, também podemos conectar o Grove-Thumb Joystick diretamente ao Seeeduino como abaixo.

SeeeduinoGrove - Thumb Joystick
5VVermelho
GNDPreto
A1Branco
A0Amarelo

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.

nota

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.

cc

Envie o programa para o seu Arduino/Seeeduino.

dica

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 piGrove Base Hat for RasPiGrove - Thumb Joystick
enter image description hereenter image description hereenter image description here
Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o Grove Base Hat ao Raspberry.
  • Passo 3. Conecte o Thumb Joystick à porta A0 do Base Hat.
  • Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.

nota

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

cuidado

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

nota

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()


dica

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++.

nota

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 piGrovePi_PlusGrove - Thumb Joystick
enter image description hereenter image description hereenter image description here
Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o GrovePi_Plus ao Raspberry.
  • Passo 3. Conecte o Grove-Thumb Joystick ranger à porta A0 do GrovePi_Plus.
  • Passo 4. Conecte o Raspberry ao PC através de um cabo USB.

Software

cuidado

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.

enter image description here|

Visualizador de Esquemático Online

Recursos


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.

Loading Comments...