目录
1. 舵机控制程序
2. 配置文件
3. 摄像机控制程序
关于舵机的理论知识,网上有比较多的介绍,这里我就不赘述了(我也说不清楚)。这里只是简单说一下我所了解的,以及自己的一些想法:
舵机只能有两个旋转方向:要么正转、要么反转
舵机的转动有一个能够转动的最大角度和最小角度,当转动达到最值,也就不能再转动了(在舵机允许的最值之内,你可以自己重新定义这些最值)
要实现摄像头既能水平方向转动,又能垂直方向转动,那就需要两个舵机
我先实现一个控制舵机的类,用来实现一个舵机运动方向的控制;然后定义一个摄像机控制类,来实现摄像机方向的控制
我所实现的功能是输入对应指令,可以控制摄像头上、下、左、右方向的运动,以及让摄像头回归初始位置
说明:摄像头实现摄像功能这里就不讲了,网上有很多资料可以参考,我用的是MJPG-Streamer,实现方式还是比较简单的
安装参考可以戳这里
1. 舵机控制程序
steering.py:
# -*- coding: UTF-8 -*-
import RPi.GPIO as GPIO
import time
import atexit
# 这个类表示单个的SG90模块
class Steering:
max_delay = 0.2
min_delay = 0.04
def __init__(self, channel, init_position, min_angle, max_angle, speed):
self.channel = channel
self.init_position = init_position
self.position = init_position
self.min_angle = min_angle
self.max_angle = max_angle
self.speed = speed
atexit.register(GPIO.cleanup)
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(self.channel, GPIO.OUT, initial=False)
self.pwm = GPIO.PWM(self.c