一、实验目的 ⑴ 学习开源硬件树莓派硬件知识。
⑵ 掌握应用Python语言驱动计算机硬件工作的程序设计能力。
二、实验内容
⑴ 了解树莓派卡片式计算机相关知识。
⑵ 利用树莓派、驱动电机、车配件(底盘、车轮等)等部件搭建控制小车。
⑶ 使用Python语言编写程序,通过驱动电机控制小车前进后退的操作。
三、应用示例 【题目】 用Python编写基于树莓派的控制小车程序 【要求】 ⑴ 了解树莓派卡片式计算机相关知识,查找并阅读传感器、树莓派等相关资料。
⑵ 准备实验用硬件:树莓派一台,相关外设,驱动电机、车配件(底盘、车轮等)等部件。
⑶ 准备实验用软件:树莓派用Linux操作系统,检查是否已经安装Python开发环境。
⑷ 参考源代码,调试运行程序,观察小车运行结果。
⑸ 实验结束后,认真填写实验报告。
【操作步骤】 ⑴ 在百度百科网站中输入“树莓派,或访问树莓派实验室网站(shumeipai.nxez.com)了解树莓派基础知识。 ⑵ 准备实验用硬件 步骤1:准备B+型树莓派一台,相关外设(键盘、鼠标、显示器、网线等)进行连接。准备实验用小车配件:驱动电机、电机模块、车配件(底盘、车轮等),工具等。 步骤2:硬件连接:将小车进行组装(操作视频详见北京交通大学计算机基础教学基地网站)

⑸ 准备实验用软件环境: 步骤1:准备树莓派用Linux文件,拷贝到SD卡中,插入到树莓派卡槽,启动。 步骤2:在Linux窗口环境中,确认是否安装Python程序运行环境。
⑹ 解读源程序
import RPi.GPIO as gpio #调用函数库"RPi.GPIO",简写为“gpio”
import time #调用函数库"time"
import sys #调用函数库"sys"
import Tkinter as tk #调用函数库"Tkinter",简写为“tk”
def init(): #定义函数“init”
gpio.setmode(gpio.BOARD) #定义gpio口
gpio.setup(11, gpio.OUT) #gpio11设置为输出
gpio.setup(12, gpio.OUT) #gpio12设置为输出
gpio.setup(15, gpio.OUT) #gpio15设置为输出
gpio.setup(40, gpio.OUT) #gpio40设置为输出
def forward(tf): #定义函数“forward”小车前进
gpio.output(11, True) #gpio11输出为真
gpio.output(12, False) #gpio12输出为假
gpio.output(15, True)#gpio15输出为真
gpio.output(40, False)#gpio140输出为假
time.sleep(tf)#持续“tf”秒
gpio.cleanup()#清空gpio口
def reverse(tf): #定义函数“reverse” 小车后退
gpio.output(11, False)#gpio11输出为假
gpio.output(12, True)#gpio12输出为真
gpio.output(15, False)#gpio15输出为假
gpio.output(40, True) #gpio140输出为真
time.sleep(tf)#持续“tf”秒
gpio.cleanup()#清空gpio口
def turn_right(tf): #定义函数“turn_right” 小车右转
gpio.output(11, False)#gpio11输出为假
gpio.output(12, False)#gpio12输出为假
gpio.output(15, True)#gpio15输出为真
gpio.output(40, False)#gpio140输出为假
time.sleep(tf)#持续“tf”秒
gpio.cleanup()#清空gpio口
def turn_left(tf): #定义函数“turn_left” 小车左转
gpio.output(11, True)#gpio11输出为真
gpio.output(12, False)#gpio12输出为假
gpio.output(15, False)#gpio15输出为假
gpio.output(40, False)#gpio140输出为假
time.sleep(tf)#持续“tf”秒
gpio.cleanup()#清空gpio口
def pivot_right(tf): #定义函数“pivot_right” 小车右转
gpio.output(11, False)#gpio11输出为假
gpio.output(12, True)#gpio12输出为真
gpio.output(15, True)#gpio15输出为真
gpio.output(40, False)#gpio140输出为假
time.sleep(tf)#持续“tf”秒
gpio.cleanup()#清空gpio口
def pivot_left(tf): #定义函数“pivot_left” 小车左转
gpio.output(11, True)#gpio11输出为真
gpio.output(12, False))#gpio12输出为假
gpio.output(15, False)#gpio15输出为假
gpio.output(40, True) #gpio140输出为真
time.sleep(tf)#持续“tf”秒
gpio.cleanup()#清空gpio口
def key_input(event): #定义函数“key_input”接收键盘控制
init() #执行函数“init”
print 'Key:', event.char #将输入的字符显示出来
key_press = event.char #定义key_press
sleep_time = 0.030#定义sleep_time
if key_press.lower() == 'w':
forward(sleep_time)#如果输出“w”,则执行函数“forward”"sleep_time"秒,下同!
elif key_press.lower() == 's':
reverse(sleep_time)
elif key_press.lower() == 'a':
turn_left(sleep_time)
elif key_press.lower() == 'd':
turn_right(sleep_time)
elif key_press.lower() == 'q':
pivot_left(sleep_time)
elif key_press.lower() == 'e':
pivot_right(sleep_time)
else:
pass
command = tk.Tk()
command.bind('<KeyPress>',key_input)
command.mainloop()
⑺ 调试运行程序 步骤1:运行程序,在键盘中输入“w”、“s”等键,观察小车是否前进后退。 步骤2:检查软件环境和软件,检查小车和树莓派接线是否正确。
四、实验作业 【题目】 探索树莓派的更多应用。 【要求】 ⑴ 在树莓派上加入测距传感器,进行带有蔽障功能的树莓派控制小车设计;
⑵ 思考树莓派在生活中的应用可能性。