树莓派实现移动拍照


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简单实现的代理服务器端口映射功能示例
Apr 08 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
python flask实现分页的示例代码
Aug 02 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
利用Python查看微信共同好友功能的实现代码
Apr 24 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
pygame实现五子棋游戏
Oct 29 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
用Python爬虫破解滑动验证码的案例解析
May 06 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 各种排序算法实现代码
2009/08/20 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
Python正则表达式介绍
2012/08/06 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
介绍一下gcc特性
2012/01/20 面试题
另类冲刺标语
2014/06/24 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Vue和Flask通信的实现
2021/05/19 Vue.js
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
OpenCV 图像梯度的实现方法
2021/07/25 Python
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫