树莓派实现移动拍照


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入门篇之字典
Oct 17 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
详解python中的线程
Feb 10 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
python实现用户名密码校验
Mar 18 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
python3 配置logging日志类的操作
Apr 08 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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 CURL模拟GET及POST函数代码
2010/04/25 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
Python程序设计入门(2)变量类型简介
2014/06/16 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
python组合无重复三位数的实例
2018/11/13 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
用Python实现职工信息管理系统
2020/12/30 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
如何开发一个JQuery插件
2016/07/28 面试题
最新教师自我评价分享
2013/11/12 职场文书
读书小明星事迹材料
2014/05/03 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
让世界充满爱观后感
2015/06/10 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL