玩转X-CTR100 l STM32F4 l PS2无线手柄-4WD智能小车

我造轮子,你造车,创客一起造起来!更多塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 】

前面已介绍X-CTR100控制器解码PS2无线手柄,本文继续前文,使用PS2无线手柄,实现4WD智能小车的控制,实现两种控制模式,方向模式和坦克模式。
例程-PS2无线手柄-4WD智能小车(方向模式)

使用4个方向按键,实现智能小车前进、后退、原地左转、原地右转四个运动操作。
硬件说明
硬件资源:
- 串口UART1
- LC扩展接口(非串口,作为普通IO口使用)
- RO、RP接口,控制电机
- X-CTR100-MDX2电机驱动模块或自备其它直流电机驱动模块(自备)
- PS2无线手柄(需自备)
PS2手柄连接关系如下,
DATA——LC接口-D6
COMM——LC接口-D5
GND——LC接口-GND
VCC——LC接口-3.3V
ATT——LC接口-D7
CLOCK——LC接口-D4
ACK——LC接口-D3
特别说明,注意左右电机连接顺序和电机正反连接顺序,如果不能按照预期动作,请自行调整,或修改程序代码。
软件说明
主程序代码如下。
|
int main(void) { //X-CTR100初始化 AX_Init(115200); printf("***X-CTR100 PS2无线手柄例程***\r\n\r\n"); //功能配置 AX_MOTOR_TIM1_MNOP_Init(20); //初始化电机控制端口,PWM频率为20KHz AX_PS2_Init(); //PS2初始化 AX_Delayms(10);
while (1) { AX_PS2_ScanKey(&my_joystick);
//LR按键控制方式(塔克模式) if((my_joystick.btn1|0xEF) == 0xEF) //前 { AX_MOTOR_TIM1_O_SetSpeed(60); AX_MOTOR_TIM1_P_SetSpeed(60); } else if((my_joystick.btn1|0xBF) == 0xBF) //后 { AX_MOTOR_TIM1_O_SetSpeed(-60); AX_MOTOR_TIM1_P_SetSpeed(-60); } else if((my_joystick.btn1|0xDF) == 0xDF) //右 { AX_MOTOR_TIM1_O_SetSpeed(-60); AX_MOTOR_TIM1_P_SetSpeed(60); } else if((my_joystick.btn1|0x7F) == 0x7F) //左 { AX_MOTOR_TIM1_O_SetSpeed(60); AX_MOTOR_TIM1_P_SetSpeed(-60); } else //停止 { AX_MOTOR_TIM1_O_SetSpeed(0); AX_MOTOR_TIM1_P_SetSpeed(0); }
printf("MODE:%2x BTN1:%2x BTN2:%2x RJOY_LR:%2x RJOY_UD:%2x LJOY_LR:%2x LJOY_UD:%2x\r\n", my_joystick.mode, my_joystick.btn1, my_joystick.btn2, my_joystick.RJoy_LR, my_joystick.RJoy_UD, my_joystick.LJoy_LR, my_joystick.LJoy_UD);
AX_Delayms(30); } } |
转速可根据自己的4WD转速调试,支持-200~200转速,负为倒转,0为停止。
例程-PS2无线手柄-4WD智能小车(坦克模式)

像坦克车一样使用左右摇杆控制小车,左摇杆控制左轮前进后退,可调速,右摇杆控制右轮。
硬件说明
硬件资源:
- 串口UART1
- LC扩展接口(非串口,作为普通IO口使用)
- RO、RP接口,控制电机
- X-CTR100-MDX2电机驱动模块或自备其它直流电机驱动模块(自备)
- PS2无线手柄(需自备)
PS2手柄连接关系如下,
DATA——LC接口-D6
COMM——LC接口-D5
GND——LC接口-GND
VCC——LC接口-3.3V
ATT——LC接口-D7
CLOCK——LC接口-D4
ACK——LC接口-D3
特别说明,注意左右电机连接顺序和电机正反连接顺序,如果不能按照预期动作,请自行调整,或修改程序代码。
软件说明
主程序代码如下。
|
int main(void) { //X-CTR100初始化 AX_Init(115200); printf("***X-CTR100 PS2无线手柄例程***\r\n\r\n"); //功能配置 AX_MOTOR_TIM1_MNOP_Init(20); //初始化电机控制端口,PWM频率为20KHz AX_PS2_Init(); //PS2初始化 AX_Delayms(1);
while (1) { AX_PS2_ScanKey(&my_joystick);
//双摇杆控制方式(塔克模式) //左摇杆控制左轮前进后退,右摇杆控制右轮 AX_MOTOR_TIM1_O_SetSpeed((0x7F-my_joystick.RJoy_UD)/2); AX_MOTOR_TIM1_P_SetSpeed((0x7F-my_joystick.LJoy_UD)/2);
//打印手柄键值 printf("MODE:%2x BTN1:%2x BTN2:%2x RJOY_LR:%2x RJOY_UD:%2x LJOY_LR:%2x LJOY_UD:%2x\r\n", my_joystick.mode, my_joystick.btn1, my_joystick.btn2, my_joystick.RJoy_LR, my_joystick.RJoy_UD, my_joystick.LJoy_LR, my_joystick.LJoy_UD);
AX_Delayms(30); } } |
玩转X-CTR100 l STM32F4 l PS2无线手柄-4WD智能小车的更多相关文章
- 玩转X-CTR100 l STM32F4 l PS2无线手柄
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...
- 玩转X-CTR100 l 平台-4WD智能小车
我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍使用X-CTR100控制器搭建4WD智能 ...
- 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 AD转换接 ...
- 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 板载加速度 ...
- 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...
- 玩转X-CTR100 l STM32F4 l 舵机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...
- 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器控制步进电机 ...
- 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器基础板载资源 ...
- 玩转X-CTR100 l STM32F4 l DSP指令集性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DSP库的 ...
随机推荐
- 织梦dedecms多选checkbox字段值独立输出样式调用方法
在做织梦网站时发现dedecms的自建字段的checkboxcook输出是一段证不能把每个标签分开写样式,在晚上查了好多没页没有好的,最终用中方式来做会好 {dede:field.fyuantese ...
- 【镜像地址】Maven地址列表
1.国内OSChina提供的镜像,非常不错 <mirror> <id>CN</id> <name>OSChina Central</name> ...
- 使用Apache Kylin搭建企业级开源大数据分析平台
转:http://www.thebigdata.cn/JieJueFangAn/30143.html 我先做一个简单介绍我叫史少锋,我曾经在IBM.eBay做过大数据.云架构的开发,现在是Kylige ...
- UVa 12108 特别困的学生
https://vjudge.net/problem/UVA-12108 题意:给出n个学生的“清醒—睡眠”周期和初始时间点,每个学生在睡眠时需要判断全班睡觉人数是否严格大于清醒人数,否则在坚持一个清 ...
- React Native控件之Picker
1. import React,{Component}from 'react'; import { AppRegistry, StyleSheet, Text, View, Picker, } fro ...
- 51nod 1042 数字0-9的数量 数位dp
1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-1 ...
- ubuntu16.04上安装Jenkins,获取登陆密码
sudo cat /usr/share/tomcat7/.jenkins/secrets/initialAdminPassword
- 将正在使用的Ubuntu14.04 制作成镜像文件
remastersys 是一个能够备份你的ubuntu系统的工具. 源码在github上能找到:Remastersys Source 可以直接 apt 安装: sudo add-apt-reposit ...
- jq 便捷api jq 常用 api jq 快捷 api
jq 选择器 1.相对值用法 width("+=250px") $("input").width("+=250px"); 2.使用函数来 ...
- Idea设置默认不折叠一行的函数