树莓派实现移动拍照


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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
python通过pil为png图片填充上背景颜色的方法
Mar 17 Python
在Python中使用sort()方法进行排序的简单教程
May 21 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
用pickle存储Python的原生对象方法
Apr 28 Python
详解Python读取配置文件模块ConfigParser
May 11 Python
Django Rest framework三种分页方式详解
Jul 26 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
Apr 08 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
Python字符串及文本模式方法详解
Sep 10 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
python+opencv实现目标跟踪过程
Jun 21 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
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
PHP常用处理静态操作类
2015/04/03 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
vscode下的vue文件格式化问题
2018/11/28 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python在控制台输出进度条的方法
2015/06/20 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
python实现按行分割文件
2019/07/22 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
在pycharm中实现删除bookmark
2020/02/14 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
UNIX特点都有哪些
2016/04/05 面试题
七一建党日演讲稿
2014/09/05 职场文书
Python中第三方库Faker的使用详解
2022/04/02 Python