树莓派实现移动拍照


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实现查询IP地址所在地
Mar 29 Python
详解python3中tkinter知识点
Jun 21 Python
Sanic框架配置操作分析
Jul 17 Python
Python Requests库基本用法示例
Aug 20 Python
使用python socket分发大文件的实现方法
Jul 08 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
python 实现目录复制的三种小结
Dec 04 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 Python
用python批量下载apk
Dec 29 Python
python 如何获取页面所有a标签下href的值
May 06 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 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实现的在线人员函数库
2008/04/09 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
PHP new static 和 new self详解
2017/02/19 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
jQuery中:header选择器用法实例
2014/12/29 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
暖通工程师岗位职责
2014/06/12 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
旷工检讨书大全
2015/08/15 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
python基础之错误和异常处理
2021/10/24 Python
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS