我造轮子,你造车,创客一起造起来!更多塔克创新资讯【塔克社区 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智能小车的更多相关文章

  1. 玩转X-CTR100 l STM32F4 l PS2无线手柄

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...

  2. 玩转X-CTR100 l 平台-4WD智能小车

    我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍使用X-CTR100控制器搭建4WD智能 ...

  3. 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 AD转换接 ...

  4. 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 板载加速度 ...

  5. 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...

  6. 玩转X-CTR100 l STM32F4 l 舵机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...

  7. 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器控制步进电机 ...

  8. 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器基础板载资源 ...

  9. 玩转X-CTR100 l STM32F4 l DSP指令集性能测试

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 DSP库的 ...

随机推荐

  1. Leetcode——Target Sum

    Question You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you ha ...

  2. 4:JavaScript中的对象

    对象 --属性+方法(都可以添加) ------继承关系------------原型(类) 获取变量属性:obj.x或者obj[“x”]: this对象----a---范围 arguments对象 参 ...

  3. Hibernate与iBastis 比较(转载)

    Hibernate  VS  iBATIS 简介 Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05.它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS ...

  4. net网站发布-允许更新此预编译站点 及修改发布后内容

    我们可以通过如下的方法发布VS2010的网站: “生成”→“发布网站”:弹出对话框! 在打开的对话框中,有一个选项是至关重要的,那就是“允许更新此预编译站点”: “允许更新此预编译站点”这一项,默认情 ...

  5. React生命周期钩子

    最近的工作都很忙,所以很少完整的时间可以用来总结和回顾知识点,今天就趁着是周末,我准备在这里复习和回顾一下React的基础.工作中主要用的vue比较多,在工作中使用React也已经是一年前了,当时用的 ...

  6. 一个纯净的webpack4+angular5脚手架

    该篇主要是结合刚发布不久的webpack4,搭建一个非cli的angular5的脚手架demo,主要分为以下几个方面阐述下脚手架结构: # 脚手架基础架构(根据angular5的新规范) /** * ...

  7. Unity打包的时候保存默认的输出路径,再次使用该路径的时候读取之

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; us ...

  8. [转]UTF-8网页中的头部部分多出一行空白

    最近做php开发,我自己的习惯都是用utf-8编码,有时候却在网页顶部多了一个空白行,甚至引起了式样的错乱,后来google到这么一篇文 章,彻底解决问题UTF-8的BOM问题通常情况下,使用Wind ...

  9. 把Java Web工程转换为基于Maven的Web工程

    有一个之前的工程,在使用了基于Maven的Web开发后,发现这种方式很便利,于是就想把之前老的传统的J2EE Web Project转为Maven Web Project. 转换的思路如下: 1.新建 ...

  10. Confluence 6 启用嵌套用户组

    一些目录服务器能够允许你在一个组中定义另外一个组.在这种结构下的用户组称为用户组嵌套.嵌套组的配置能够让子用户组继承上级用户组的权限,使系统的权限配置变得简单. 这个页面描述了 Confluence ...