系统设计与开发 实验报告-1
1. 实验内容
本实验设计一个无线遥控的小车,小车通过树莓派无线连接至摇杆,通过摇杆控制小车运动方向,让小车可以前进、后退、左转、右转、左转圈、右转圈。
2. 实验目的
通过本实验掌握:
- 蜂鸣器驱动
- 舵机驱动
- 单独轮子控制方法
- 摇杆模式控制方法
- 小车运动起来
- 正方形平移
- 环绕模式
- PS2 手柄简单测试
3. 程序清单
3.1 任务一
通过手柄控制 Raspblock 蜂鸣器,按下数字 1 键鸣笛,抬起关闭鸣笛。
3.1.1 实验步骤
- 手柄连接电脑,获取其索引值
- 编写相关程序代码,使按下手柄的数字 1 时开启蜂鸣器,按键抬起时关闭蜂鸣器
3.1.2 实验分析
通过网页来获取手柄操作对象及其按键状态 controller.buttons[i],蜂鸣器的操作需要调用 Raspblock 库内的 Raspblock 方法,将手柄的按键状态传入来控制蜂鸣器的开关状态。
3.1.3 实验结果
按下按键 1,蜂鸣器开始工作,抬起按键 1,蜂鸣器停止工作。
3.2 任务二
通过 PS2 手柄控制小车运动。
3.2.1 实验步骤
- 手柄连接电脑,获取其索引值,并将手柄工作模式调整为模拟模式
- 编写相关程序代码,使左侧摇杆控制全向车运动,右侧摇杆控制摄像头云台
3.2.2 实验分析
- 通过网页获取手柄各按键状态并通过函数接受,该函数接收 x、y 两个参数,将手柄摇杆读取的 x、y 模拟量映射到函数参数上
- 涉及到控制小车轮子移动的函数,只有在不断被执行的过程中才生效,因此,涉及手动控制小车移动时,应不断执行相应移动函数
- 当摇杆模拟量绝对值不为 0,表明摇杆正在被推动,应不断调用相应的移动函数使小车移动
3.2.3 实验结果
左侧摇杆可控制小车向不同方向前进,右侧摇杆可控制小车摄像头云台向不同方向偏转,按下右侧摇杆可复位云台,数字 4:左旋,数字 2:右旋。
3.3 任务三
控制小车按照手绘五角星路线行走并转向。
3.3.1 实验代码
▶
Code
1 | |
3.3.2 实验分析
定义直线运动和转弯的函数,通过控制运动时间来调整转弯角度,通过不断进行直行和转弯的函数循环来绘制小车轨迹。
3.3.3 实验结果
小车按照手柄十字键的轨迹行动。
4. 分析与思考
- 实验总结与收获:会了控制小车运动的相关程序。
- 实验失败/待改进:小车运动轨迹比较简单,需要进行更精细的操作。
系统设计与开发 实验报告-1
https://flowerdown.org/posts/20221012-094806