树莓派实现移动拍照


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 从远程服务器下载日志文件的程序
Feb 10 Python
Python FTP操作类代码分享
May 13 Python
python中list循环语句用法实例
Nov 10 Python
Python中的rjust()方法使用详解
May 19 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
python numpy格式化打印的实例
May 14 Python
python ---lambda匿名函数介绍
Mar 13 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
Python代码块及缓存机制原理详解
Dec 13 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
Django REST framwork的权限验证实例
Apr 02 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
php连接mysql数据库
2017/03/21 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
简历里的自我评价
2014/01/31 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
2014年检验员工作总结
2014/11/19 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
MySQL优化之慢日志查询
2022/06/10 MySQL