树莓派实现移动拍照


Posted in Python onJune 22, 2019

驱动树莓派gpio的中间层库函数有wiringPi,BCM2835,以及PRi.GPIO,这里我选择使用Python语言开发的PRi.GPIO。

1、安装RPi.GPIO

(1)先安装python-dev,输入以下指令。

sudo apt-get install python-dev

(2)安装RPi.GPIO

wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz
#解压:
tar -zxvf RPi.GPIO-0.5.11.tar.gz
#进入解压之后的目录 :
cd RPi.GPIO-0.5.3a
#启动安装 :
sudo python setup.py install

2、编写驱动电机的程序

(1)树莓派与XY-160D驱动板连接方法

# 树莓派供电:
# 5V电源正极接到树莓派4号5V电源引脚,负极接到树莓派39号GND引脚
# 树莓派绿色ATC灯闪烁则SD卡正在运行,红色PWR灯常亮则供电正常
# 更多指示灯状态请参照:树莓派LED指示灯状态的解释

#
# 驱动板电源端供电:
# 14.8V电源接驱动板电源端正极,电源负极接驱动板电源端负极
#
# 驱动板信号端供电:
# 树莓派1号引脚3.3V接到驱动板信号端+5V引脚,14号引脚GND接到驱动板信号端GND引脚
# 驱动板供电正常则DS1指示灯亮起

(2)代码

使用一段简单的电机驱动代码进行测试,新建motor_drive.py文件,添加如下代码并保存:

#!/usr/bin/python2
#coding=utf-8
import RPi.GPIO as GPIO
import time
 
# 初始化设置引脚输出
IN1 = 12     #11号引脚对应GPIO0,12号引脚对应GPIO1
IN2 = 11     #11号与12号引脚分别接到驱动板IN2,IN1引脚,控制其中一侧电机
IN3 = 13     #13号引脚对应GPIO2,15号引脚对应GPIO3
IN4 = 15     #13号与15号引脚分别接到驱动板IN3,IN4引脚,控制另一侧电机
def init():
  GPIO.setmode(GPIO.BOARD) #设置GPIO编码为物理引脚BOARD编码
  GPIO.setup(IN1, GPIO.OUT)
  GPIO.setup(IN2, GPIO.OUT)
  GPIO.setup(IN3, GPIO.OUT)
  GPIO.setup(IN4, GPIO.OUT)
 
# 所有引脚置低电平,用于复位、停止运行的功能
def reset():
  GPIO.output(IN1, GPIO.LOW)
  GPIO.output(IN2, GPIO.LOW)
  GPIO.output(IN3, GPIO.LOW)
  GPIO.output(IN4, GPIO.LOW)
  
def forward(): 
  GPIO.output(IN1, GPIO.HIGH)
  GPIO.output(IN2, GPIO.LOW)
  GPIO.output(IN3, GPIO.HIGH)
  GPIO.output(IN4, GPIO.LOW)
def back():
  GPIO.output(IN1, GPIO.LOW)
  GPIO.output(IN2, GPIO.HIGH)
  GPIO.output(IN3, GPIO.LOW)
  GPIO.output(IN4, GPIO.HIGH)
 
def stop():
  reset()
if __name__ == "__main__":
  init()
  reset()
  try:
   while True:
    forward()
    time.sleep(5)
    stop()
    time.sleep(1)    
    back()
    time.sleep(1)
    stop()
    time.sleep(1)
  except KeyboardInterrupt:
   print("except")
   stop()
  GPIO.cleanup()

执行程序,按Ctrl + c结束程序

sudo python motor_drive.py

注:

(1)#!/usr/bin/env python,定义python解析脚本的绝对路径。
(2)# -*- coding: utf-8 -*- ,python文件为utf-8格式,否则无法写入中文注释。
(3)GPIO.setmode(GPIO.BOARD),采用board编号方式。
(4)python程序使用try except语言,当按下Ctrl+C结束程序是会触发异常,程序执行gpio.cleanup()语句清楚GPIO管脚状态。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python定时检查某个进程是否已经关闭的方法
May 20 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
Django中的ajax请求
Oct 19 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
Python读取xlsx文件的实现方法
Jul 04 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
Python使用protobuf序列化和反序列化的实现
May 19 Python
基于Python实现将列表数据生成折线图
Mar 23 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 #Python
Python数据结构与算法(几种排序)小结
Jun 22 #Python
python+opencv实现摄像头调用的方法
Jun 22 #Python
python算法与数据结构之冒泡排序实例详解
Jun 22 #Python
分析运行中的 Python 进程详细解析
Jun 22 #Python
机器学习实战之knn算法pandas
Jun 22 #Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 #Python
You might like
PHP使用者状态管理功能的应用
2006/10/09 PHP
PHP动态变静态原理
2006/11/25 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
Python实现快速计算词频功能示例
2018/06/25 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python——全排列数的生成方式
2020/02/26 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
幼儿园教师辞职信
2014/01/18 职场文书
员工考核评语大全
2014/04/26 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
师德先进个人材料
2014/12/20 职场文书
军训通讯稿范文
2015/07/18 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers