一、实验目的 ⑴ 学习开源硬件树莓派硬件知识。

⑵ 掌握应用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:检查软件环境和软件,检查小车和树莓派接线是否正确。

四、实验作业 【题目】 探索树莓派的更多应用。 【要求】 ⑴ 在树莓派上加入测距传感器,进行带有蔽障功能的树莓派控制小车设计;

⑵ 思考树莓派在生活中的应用可能性。

results matching ""

    No results matching ""