DIY人脸跟踪电风扇送女朋友(2)
接着之前的内容,我们来编写一下云台控制的代码。实际上由于安装了开源的Adafruit_Python_PCA9685模块,操作舵机非常的简单。这里我们把舵机的控制分成x轴和y轴,x轴可以像左或者向由旋转一定的角度。y轴可以向上或者向下旋转一定的角度。所以舵机控制的接口定义为:
# channel 控制x轴还是y轴
# direction 控制方向,对应x轴的left或者right, y轴的up和down
# angle 为旋转的角度,0 - 45 度之间
def ServoControl(channel, direction, angle):...# 如果想让云台像左转动15度,如下调用方式:
ServoControl('x', 'left', 15)# 如果想让云台像上转动20度,如下调用方式:
ServoControl('y', 'up', 20)# 如果想让云台恢复到水平中间位置,如下调用方式:
ServoControl('x', 'left', 0) #'right' 也可以
ServoControl('y', 'up', 0) #'down' 也可以
下面是完整的舵机控制代码:
from __future__ import division
import time
import Adafruit_PCA9685
import threadingplus_y_up = 350
plus_y_down = 550
plus_y_middle = int((plus_y_up + plus_y_down) / 2)
plus_y_half = int((plus_y_down - plus_y_up) / 2)
plus_y_current = plus_y_middleplus_x_left = 600
plus_x_right = 150
plus_x_middle = int((plus_x_left + plus_x_right) / 2)
plus_x_half = int((plus_x_left - plus_x_right) / 2)
plus_x_current = plus_x_middlepwm = Nonedef ServoInit():global pwmpwm = Adafruit_PCA9685.PCA9685()pwm.set_pwm_freq(60)pwm.set_pwm(0, 0, plus_x_current)pwm.set_pwm(1, 0, plus_y_current)def ServoControl(channel, direction, angle):global pwm angle_max = 45if angle > angle_max:angle = angle_maxratio = float(angle) / angle_maxif channel == 'x':if direction == 'right':plus = plus_x_middle - int(plus_x_half * ratio)if direction == 'left':plus = plus_x_middle + int(plus_x_half * ratio)print(plus)pwm.set_pwm(0, 0, plus)if channel == 'y':if direction == 'up':plus = plus_y_middle - int(plus_y_half * ratio)if direction == 'down':plus = plus_y_middle + int(plus_y_half * ratio)print(plus)pwm.set_pwm(1, 0, plus)if __name__ == '__main__': while True:ServoControl('x', 'right', 45) time.sleep(1)ServoControl('x', 'right', 0) time.sleep(1)ServoControl('x', 'left', 45)time.sleep(1)
今天暂时就把云台代码写好吧。
DIY人脸跟踪电风扇送女朋友(2)相关推荐
- DIY人脸跟踪电风扇送女朋友(1)
女朋友的生日快到了,作为一个屌丝程序员,想要送给女朋友一个特别的礼物,最终结合现在火热的深度学习技术,选择做一个人脸跟踪电风扇,能够跟踪人脸,始终对着人脸吹,让女友无时无刻不感受到"清风徐来 ...
- DIY人脸跟踪电风扇送女朋友(4)
成果展示: 如下视频所示为制作好的人脸跟踪电风扇 人脸跟踪风扇 相关代码已经放在百度网盘上面了. 链接:https://pan.baidu.com/s/188AylEd2QgOiA6YFv01N3A ...
- DIY人脸跟踪电风扇送女朋友(3)
下面要重点介绍一下深度学习技术以及yolov3目标检测网络 深度学习技术: 深度学习技术实际上是从早期的人工神经网络发展而来的.本质上就是用一个函数去拟合输入(图片)到结果(目标框)的映射.因为函数本 ...
- 【数学建模】DIY人脸识别(原创)
文章目录 题目 论文:DIY人脸识别技术 摘 要 1.问题的重述 2.问题的分析 3.模型的假设与符号说明 4.模型的准备 4.1 基于Adaboost算法的Haar强特征级联分类器 4.2Adabo ...
- TensorFlow实时任意风格迁移,送女朋友的创意礼物有了
TensorFlow实时任意风格迁移,送女朋友的创意礼物有了 前言 自适应实例规范化 风格迁移网络 编码器结构与实现 通过反射填充(reflection padding)减少块伪影 解码器结构与实现 ...
- 【深度学习】DIY 人脸识别技术的探索(一)
[深度学习]DIY 人脸识别技术的探索(一) 文章目录 摘要 问题重述 模型假设 定义与符号说明 问题分析 模型的建立与求解 参考 摘要 伴随着人工智能技术的发展,人们对信息安全有了更高的要求,传统的 ...
- 【深度学习】DIY 人脸识别技术的探索(二)
[深度学习]DIY 人脸识别技术的探索(二) 文章目录 训练模型 工具 结果展示 问题二的模型建立与求解 基于 KNN 的人脸识别模型 训练模型 MTCNN 可以并行训练(3 个网络同时训练,前提是内 ...
- 非刚性人脸跟踪 —— 实用工具
面向对象设计 与人脸检测和人脸识别一样,人脸跟踪也由两部分组成:数据和算法.算法通过预先储存(即离线)的数据来训练模型,然后对新来的(即在线)数据执行某类操作.因此,采用面向对象设计是不错的选择. 在 ...
- 非刚性人脸跟踪 —— 人脸跟踪
人脸跟踪问题可认为是寻找一种高效和鲁棒性的方法,它能将各种面部特征的单独检测与这些特征的几何依赖性结合起来,已得到连续帧中每幅图像面部特征位置的精确估计.基于此,需仔细考虑几何依赖性的必要性.下图为用 ...
最新文章
- 24 location对象
- 【实验】DHCP、NAT配置案例
- linux 内存 段,Linux内存储器管理之分段机制
- ShardingSphere(五) 公共表配置,实现读写改操作
- mysql 程序编码_MySql编码
- 最简单的c 语言打开串口程序,一个简单的串口程序
- Ubuntu14.04环境编译vlc源码for安卓Android系统
- SPDY、HTTP/2、QUIC协议
- static Splitterwnd hide and show --by wyj
- CSS 双击页面,出现蓝色背景解决方案
- Python JsonPath 详细使用
- 诗经 - 小雅 - 六月
- HttpClient和HtmlUnit的比较总结以及使用技巧(一)
- MAC M1安装Node
- Python:1014 福尔摩斯的约会
- 1个系统节拍 c语言_【菜鸡C语言】菜鸡鼓起勇气用Dev-c++打起节奏来了
- 苹果开发者平台-《测试证书》生成流程
- 江苏省重点软件企业信息汇总(排名不分先后)
- 51CTO稿酬标准2016版正式发布!
- 找男朋友软件测试大乐,抖音2020男朋友测试题答题