驴友花雕 发表于 2024-12-25 17:41:47

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3






驴友花雕 发表于 2024-12-25 19:04:56

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之一:测试摇杆与按钮

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之一:测试所有接口上的 摇杆和按钮
*/

void setup(void)
{
Serial.begin(9600); // 设置串口通信9600波特率
for (int i = 0; i <= 13; i++) // 定义按钮位置
{
    pinMode(i, INPUT_PULLUP); // 设置引脚为上拉输入模式
    digitalWrite(i, 1); // 设置引脚为高电平
}
}

void loop(void)
{
   //*******************摇杆位置判断,从端口从0-13,;A1-A5(14-20)
   for (int i = 0; i <= 20; i++) // 从端口0到20
   {
   Serial.print(i);
   Serial.print("=");
   Serial.print(analogRead(i)); // 读取摇杆X轴的值,串口显示
   Serial.print(";");
   }

   //****************************Button位置判断,从端口0-13,;A1-A5(14-20)
   for (int i = 0; i <= 20; i++)// 从端口0到20
   {
   if (digitalRead(i) == 0)// 读取button状态,判断是否按下
   {
       Serial.print("button=");
       Serial.print(i);
       Serial.print(";");
   }
   }
   Serial.println(""); // 结束一行
   delay(100);   // 100ms刷新一次
}


驴友花雕 发表于 2024-12-25 20:30:44

【花雕学编程】Arduino动手做(243)--动态测试X、Y与Z数值

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之二:动态测试1号摇杆的X、Y与Z的数值(引脚A0、A1与D2)

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之二:动态测试1号摇杆的X、Y与Z的数值(引脚A0、A1与D2)
*/

int value = 0; // 初始化一个整数变量,用于存储读取的值

void setup()
{
pinMode(6, INPUT_PULLUP); // 将引脚6设置为上拉输入模式,用于读取按键状态
Serial.begin(9600); // 初始化串行通信,波特率为9600
}

void loop()
{
value = analogRead(A0); // 读取A0引脚的模拟值(摇杆X轴)
Serial.print("X:"); // 输出X轴描述
Serial.print(value, DEC); // 以十进制格式输出X轴的值

value = analogRead(A1); // 读取A1引脚的模拟值(摇杆Y轴)
Serial.print(" | Y:"); // 输出Y轴描述
Serial.print(value, DEC); // 以十进制格式输出Y轴的值

value = digitalRead(6); // 读取6号引脚的数字值(按键状态)
Serial.print(" | Z: "); // 输出按键状态描述
Serial.println(value, DEC); // 以十进制格式输出按键状态值

delay(1000); // 延迟1秒
}

驴友花雕 发表于 2024-12-26 20:47:25

【花雕学编程】Arduino动手做(243)---绘制X轴与Y轴的曲线

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之三:绘制X轴与Y轴的动态曲线

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之三:绘制X轴与Y轴的动态曲线
*/

int JoyStick_X = A0; // 定义X轴模拟输入引脚为A0
int JoyStick_Y = A1; // 定义Y轴模拟输入引脚为A1
int JoyStick_Z = 2;// 定义按键输入引脚为2

void setup()
{
pinMode(JoyStick_Z, INPUT); // 将按键引脚设置为输入模式
Serial.begin(9600); // 初始化串行通信,波特率为9600
}

void loop()
{
int x, y, z;

x = analogRead(JoyStick_X); // 读取X轴的模拟值
y = analogRead(JoyStick_Y); // 读取Y轴的模拟值
z = digitalRead(JoyStick_Z); // 读取按键的数字值(按键状态)

Serial.print(x, DEC); // 以十进制格式输出X轴的值
Serial.print(","); // 输出逗号分隔符
Serial.print(y, DEC); // 以十进制格式输出Y轴的值
Serial.print(","); // 输出逗号分隔符
Serial.println(z, DEC); // 以十进制格式输出按键状态值,并换行

delay(500); // 延迟500毫秒
}

驴友花雕 发表于 2024-12-25 17:47:52

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

2fach Joystickshield HU-M16Arduino 摇杆是一款用于运动控制的扩展板,它连接到 Arduino 板,并允许通过 Arduino 板上的模拟引脚独立控制两个模拟摇杆。带有两个操纵杆的 Arduino UNO R3 扩展板。该模块与 Arduino IDE 可编程平台兼容。这使得使用来自操纵杆的数据来控制各种项目成为可能,例如机器人、遥控车辆和其他交互式设备。您可以通过以正确的方式对 Arduino 进行编程来根据您的需要自定义模拟棒的操作。

该扩展板带有 2 个 PS2 型 KY-023 操纵杆,可实现精确的运动控制。Arduino Shield Dual Joystick 具有用于伺服控制的数字支持连接器,以及用于通过 RF 与 NRF24L01 模块或蓝牙与 HC-06 模块进行无线连接的接口。



驴友花雕 发表于 2024-12-25 17:52:31

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

可插接蓝牙模块


驴友花雕 发表于 2024-12-25 17:53:53

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

扩展板不能直接使用,需要配合Arduino uno开发板。


驴友花雕 发表于 2024-12-25 17:55:22

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

JoyStick 双路机械臂摇杆扩展板电原理图


驴友花雕 发表于 2024-12-25 17:59:16

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

Arduino 双操纵杆扩展板是一款多功能且易于使用的工具,可让您独立控制两个轴上的运动。它是您的机器人项目、游戏和其他需要精确可靠运动控制的应用的绝佳选择。该板与 PS2 和 KY-023 摇杆型号兼容,是 Arduino 项目中运动控制的完整解决方案。

该模块与 PS2 控制器上的“模拟”摇杆非常相似。方向运动只是两个电位计,每个轴一个。该操纵杆还有一个选择按钮,当按下操纵杆时,该按钮将被激活。借助此模块,您可以测量 X 轴和 Y 轴上的位置坐标。

特性
用于 Arduino 的板载双操纵杆
2 个操纵杆,
2 个按钮(在操纵杆中),
1 个返回 LED,
4 个伺服输出,
1 个蓝牙贴合(首选 HC-05),
型号名称:HU-M16
- 2.54mm 引脚接口电缆
- 使用寿命长,性能稳定。
- 标准接口和电子构建块。
- 广泛用于 Arduino DIY 项目。






驴友花雕 发表于 2024-12-25 18:01:15

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

DIY机械臂的应用方案




驴友花雕 发表于 2024-12-25 18:56:35

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

Shields HU-M16 双路机械臂摇杆扩展板的对应引脚




驴友花雕 发表于 2024-12-25 19:06:07

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

代码解读

1、串口通信初始化:在setup函数中,使用Serial.begin(9600)初始化串口通信,以便通过串口监视器查看摇杆和按钮的状态。

2、引脚模式设置:使用pinMode(i, INPUT_PULLUP)函数将引脚设置为上拉输入模式,并通过digitalWrite(i, 1)将引脚初始化为高电平。

3、摇杆位置判断:在loop函数中,通过analogRead(i)函数读取从端口0到20的模拟输入值(摇杆X轴的值),并通过串口监视器输出。

4、按钮状态判断:通过digitalRead(i)函数读取从端口0到20的数字输入值(按钮状态),如果按钮按下(值为0),则通过串口监视器输出相应信息。

5、串口输出格式:在每次读取完摇杆和按钮状态后,通过Serial.print和Serial.println函数将结果输出到串口监视器,以便查看。

驴友花雕 发表于 2024-12-25 19:17:46

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

实验串口返回情况


驴友花雕 发表于 2024-12-25 20:25:28

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

实验场景图


驴友花雕 发表于 2024-12-25 20:32:20

【花雕学编程】Arduino动手做(243)--动态测试X、Y与Z数值

代码解读

1、引脚模式设置:在 setup 函数中,使用 pinMode(6, INPUT_PULLUP) 将6号引脚设置为上拉输入模式。这是为了读取摇杆的按键状态。

2、串行通信初始化:使用 Serial.begin(9600) 初始化串行通信,以便通过串行监视器查看摇杆的X、Y轴值和按键状态。

3、读取模拟值:在 loop 函数中,使用 analogRead(A0) 和 analogRead(A1) 读取摇杆的X、Y轴的模拟值。

4、读取数字值:使用 digitalRead(6) 读取摇杆按键的数字值(按键状态),用以检测是否按下。

5、串行输出:通过 Serial.print 和 Serial.println 函数将X、Y轴的模拟值和按键状态输出到串行监视器,以便调试和观察。

这段代码每隔1秒读取一次摇杆的X、Y轴值和按键状态,并输出到串行监视器,非常适合用于基础实验和学习。


驴友花雕 发表于 2024-12-25 20:34:30

【花雕学编程】Arduino动手做(243)--动态测试X、Y与Z数值

实验串口返回情况


驴友花雕 发表于 2024-12-26 20:49:00

【花雕学编程】Arduino动手做(243)---绘制X轴与Y轴的曲线

代码解读

1、引脚定义:在代码的开头,使用变量定义了X轴、Y轴和按键的引脚,便于后续代码的使用和维护。

2、引脚模式设置:在 setup 函数中,使用 pinMode(JoyStick_Z, INPUT) 将按键引脚设置为输入模式,以便读取按键状态。

3、串行通信初始化:使用 Serial.begin(9600) 初始化串行通信,设置波特率为9600,以便通过串行监视器查看摇杆的X、Y轴值和按键状态。

4、读取和输出值:在 loop 函数中,通过 analogRead 和 digitalRead 函数分别读取X轴、Y轴的模拟值和按键的数字值,并通过串行通信输出。

5、数据格式:通过 Serial.print 和 Serial.println 函数输出X轴、Y轴的值和按键状态,使用逗号分隔符使输出格式更加清晰和规范。

这段代码每隔500毫秒读取一次摇杆的X、Y轴值和按键状态,并输出到串行监视器,适用于基础实验和学习。


驴友花雕 发表于 2024-12-26 20:50:21

【花雕学编程】Arduino动手做(243)---绘制X轴与Y轴的曲线

实验串口返回情况


驴友花雕 发表于 2024-12-26 20:52:12

【花雕学编程】Arduino动手做(243)---绘制X轴与Y轴的曲线



实验串口绘图器返回情况




驴友花雕 发表于 2024-12-27 11:17:49

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之四:检测X轴与Y轴的数值

Mind+图形编程



驴友花雕 发表于 2024-12-27 11:19:30

【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板

实验串口返回情况


页: [1] 2
查看完整版本: 【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板