系统设计与开发 实验报告-1

1. 实验内容

本实验设计一个无线遥控的小车,小车通过树莓派无线连接至摇杆,通过摇杆控制小车运动方向,让小车可以前进、后退、左转、右转、左转圈、右转圈。

2. 实验目的

通过本实验掌握:

  1. 蜂鸣器驱动
  2. 舵机驱动
  3. 单独轮子控制方法
  4. 摇杆模式控制方法
  5. 小车运动起来
  6. 正方形平移
  7. 环绕模式
  8. PS2 手柄简单测试

3. 程序清单

3.1 任务一

通过手柄控制 Raspblock 蜂鸣器,按下数字 1 键鸣笛,抬起关闭鸣笛。

3.1.1 实验步骤

  1. 手柄连接电脑,获取其索引值
  2. 编写相关程序代码,使按下手柄的数字 1 时开启蜂鸣器,按键抬起时关闭蜂鸣器

3.1.2 实验分析

通过网页来获取手柄操作对象及其按键状态 controller.buttons[i],蜂鸣器的操作需要调用 Raspblock 库内的 Raspblock 方法,将手柄的按键状态传入来控制蜂鸣器的开关状态。

3.1.3 实验结果

按下按键 1,蜂鸣器开始工作,抬起按键 1,蜂鸣器停止工作。

3.2 任务二

通过 PS2 手柄控制小车运动。

3.2.1 实验步骤

  1. 手柄连接电脑,获取其索引值,并将手柄工作模式调整为模拟模式
  2. 编写相关程序代码,使左侧摇杆控制全向车运动,右侧摇杆控制摄像头云台

3.2.2 实验分析

  • 通过网页获取手柄各按键状态并通过函数接受,该函数接收 x、y 两个参数,将手柄摇杆读取的 x、y 模拟量映射到函数参数上
  • 涉及到控制小车轮子移动的函数,只有在不断被执行的过程中才生效,因此,涉及手动控制小车移动时,应不断执行相应移动函数
  • 当摇杆模拟量绝对值不为 0,表明摇杆正在被推动,应不断调用相应的移动函数使小车移动

3.2.3 实验结果

左侧摇杆可控制小车向不同方向前进,右侧摇杆可控制小车摄像头云台向不同方向偏转,按下右侧摇杆可复位云台,数字 4:左旋,数字 2:右旋。

3.3 任务三

控制小车按照手绘五角星路线行走并转向。

3.3.1 实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import time

from Raspblock import Raspblock

robot = Raspblock()

speed=5
time=1000
turn_time=1000

def ran(s,t):
for i in range(0,t):
robot.Speed_Wheel_control(s,s,s,s)

def turn(a1,a2,a3,a4,t):
for i in range(0,t):
robot.Speed_Wheel_control(a1,a2,a3,a4)

turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
turn(5,5,-5,-5,turn_time) # 左旋
ran(speed,time)
turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
turn(5,5,-5,-5,turn_time) # 左旋
ran(speed,time)
turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
turn(5,5,-5,-5,turn_time) # 左旋
ran(speed,time)
turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
turn(5,5,-5,-5,turn_time) # 左旋
ran(speed,time)
turn(-5,-5,5,5,turn_time) # 右旋
ran(speed,time)
del robot

3.3.2 实验分析

定义直线运动和转弯的函数,通过控制运动时间来调整转弯角度,通过不断进行直行和转弯的函数循环来绘制小车轨迹。

3.3.3 实验结果

小车按照手柄十字键的轨迹行动。

4. 分析与思考

  1. 实验总结与收获:会了控制小车运动的相关程序。
  2. 实验失败/待改进:小车运动轨迹比较简单,需要进行更精细的操作。

系统设计与开发 实验报告-1
https://flowerdown.org/posts/20221012-094806
作者
Unrealfeathers
发布于
2022年10月12日
许可协议