树莓派实现移动拍照

 更新时间:2019年06月22日 10:20:49   作者:不告诉你/tp  
这篇文章主要为大家详细介绍了树莓派实现移动拍照,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

驱动树莓派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实现低通滤波器代码

    今天小编就为大家分享一篇python实现低通滤波器代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python列表中常见的一些排序方法

    python列表中常见的一些排序方法

    在Python实际开发中会经常需要用到对列表进行排序,下面这篇文章主要给大家介绍了关于python列表中常见的一些排序方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Jupyter notebook快速入门教程(推荐)

    Jupyter notebook快速入门教程(推荐)

    这篇文章主要介绍了Jupyter notebook快速入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Python骚操作完美实现短视频伪原创

    Python骚操作完美实现短视频伪原创

    剪辑的视频上传到某平台碰到降权怎么办?视频平台都有一套自己的鉴别算法,专门用于处理视频的二次剪辑,本篇我们来用python做一些特殊处理
    2022-02-02
  • python opencv实现图片旋转矩形分割

    python opencv实现图片旋转矩形分割

    这篇文章主要为大家详细介绍了python opencv实现图片旋转矩形分割,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • python 通过字符串调用对象属性或方法的实例讲解

    python 通过字符串调用对象属性或方法的实例讲解

    下面小编就为大家分享一篇python 通过字符串调用对象属性或方法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Django使用消息提示简单的弹出个对话框实例

    Django使用消息提示简单的弹出个对话框实例

    今天小编就为大家分享一篇Django使用消息提示简单的弹出个对话框实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Pycharm激活方法及详细教程(详细且实用)

    Pycharm激活方法及详细教程(详细且实用)

    这篇文章主要介绍了Pycharm激活方法及详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-05-05
  • python数据XPath使用案例详解

    python数据XPath使用案例详解

    xpath是最常用且最便捷高效的一种解析方式,通用型强,其不仅可以用于python语言中,还可以用于其他语言中,数据解析建议首先xpath
    2021-09-09
  • python mongo 向数据中的数组类型新增数据操作

    python mongo 向数据中的数组类型新增数据操作

    这篇文章主要介绍了python mongo 向数据中的数组类型新增数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论