实验一、小车运动起来

一、实验简介

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

二、实验目的

通过本实验掌握:

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

三、实验步骤

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

实验步骤

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

实验分析

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

实验结果

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

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

实验步骤

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

实验分析

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

实验结果

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

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

实验代码

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
import time
from Raspblock import Raspblock

robot = Raspblock()
time=1000
turn_time=1000
speed=5

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

实验分析

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

实验结果

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

四、思考分析

  1. 实验总结与收获:
    会了控制小车运动的相关程序。

  2. 实验失败/待改进:
    小车运动轨迹比较简单,需要进行更精细的操作。


实验一、小车运动起来
https://flowerdown.org/posts/20221012-094806.html
作者
Unrealfeather
发布于
2022年10月12日
许可协议