我造轮子,你造车,创客一起造起来!更多塔克创新资讯【塔克社区 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. Harmonic Number (调和级数+欧拉常数)题解

    Harmonic Number In mathematics, the nth harmonic number is the sum of the reciprocals of the first n ...

  2. Ubuntu 14.04 下 安装Protocol Buffers

    参考: Protocol Buffers - Google's data interchange format Ubuntu 14.04 下 安装Protocol Buffers 环境 Ubuntu ...

  3. 51nod 1444 破坏道路(最短路)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1444 题意: 思路: 哇,思路爆炸. 因为每条边的权值都为1,所以可以直 ...

  4. HDU 6141 I am your Father!(最小树形图+权值编码)

    http://acm.hdu.edu.cn/showproblem.php?pid=6141 题意: 求最大树形图. 思路: 把边的权值变为负值,那么这就是个最小树形图了,直接套模板就可以解决. 有个 ...

  5. Django本地开发,debug模式引用静态文件

    debug为true ,不用设置static_root debug 为false ,设置static_root STATIC_ROOT = ( os.path.join(BASE_DIR, 'stat ...

  6. shell 杀掉指定进程的服务

    check_results=`ps -ef|grep bp_driver.launch|awk '{print $2}'|sed -n 1p` echo `kill - $check_results` ...

  7. 创意时钟 人形时钟 可惜不是 https

    ; (function () { $('#header').css({ 'position':'relative' }).prepend('<div id="clockWrap&quo ...

  8. node - web 服务器 、server 服务器

    node 作为服务端 - 基本使用 1. web 服务器 web.html <!DOCTYPE html> <html> <head> <meta chars ...

  9. 音视频学习系列第(七)篇---MediaCodec的使用

    音视频系列 什么是MediaCodec MediaCodec是安卓官方提供的一套用于音视频编码和解码的API,该API是在安卓4.1(API 16)引入的,因此只能用于4.1以上的手机 MediaCo ...

  10. Interactive Reporting , SQL*Net not loaded successfully 问题的解决。

    .bashrc 什么的,早就把 TNS_ADMIN , 和 LD_LIBRARY_PATH 加进去了,可就是不好使. 终极方法还是在 workspace 的 R&A -> Service ...