直接拆箱上图
拿到手里的开发版确实惊艳到我了,高度集成合种传感器~~~依次有OLED显示屏、红外接受/发射模块、声音传感器、光线传感器、2路电机驱动、温湿度传感器、陀螺仪、RGB全彩灯、蜂鸣器、按键模块、电位器、WIFI模块只能说太良心了!!!
dfrobot的做工说实话在座吃瓜的大老爷们都知道,那就是很nice.
拆开立马找根数据线跟PinPongBoard过上了没羞没臊的上手测试,由于我用的苹果系统,插上开发版电脑竟然没识别到~·不管啦,后面在看这个问题,拿起身边的WIN电脑开肝。
今天我们的主角将和大疆的Robimaster TT共同演出。嗯还有配角~PAJ7620U2 手势识别传感器
各位坐好、开始表演了
材料清单
- PinPong Board X1
- DJI Robomaster TT X1
- PAJ7620U2 手势识别传感器 X1 链接
步骤1 安装PinPong python库
安装库的方法很简单,有python基础的同学基本都知道、我们这里直接上命令(直接使用国内源)
pip install pinpong -i http://mirrors.aliyun.com/pypi/simple/
当然这里有的同学没怎么接触python,觉得python一套安装下来很费劲,那接下来的软件让你眼界大开
那就是 Mind+
这里特别说明下只有win最新版本才有python模块
点击python模式即可开始编程,再点击项目文件中的加号添加文件,这里注意给文件命名的同时要写上后缀.py
不然创建的只是一个文档,希望官方后面可以优化
接下来我们就直接在这个软件立马直接进行库的安装
点击库管理就可以看到硬件控制里面的第一个,我们需要的库,然后直接点击安装即可,有需要的同学可以把👆的源改为豆瓣…额我觉得豆瓣快点
步骤2 安装完毕库之后我们简单的点亮板载 RGB LED
我们控制RGB灯的引脚为D9,我这里直接用官方提供的代码进行编程控制了,这里有个问题,有的电脑插上板子之后不识别,我们需要安装CH341驱动才可正常使用,驱动等会放附件里面,此段代码实验效果就是RGB灯闪烁
import time
from pinpong.board import Board,Pin,NeoPixel
NEOPIXEL_PIN = Pin.D9
PIXELS_NUM = 1 #灯数
Board("uno").begin() #初始化,选择板型和端口号,不输入端口号则进行自动识别
np = NeoPixel(Pin(NEOPIXEL_PIN), PIXELS_NUM)
while True:
np[0] = (255, 0 ,0) #设置RGB灯为红色
time.sleep(2)
np[0] = (0, 255 ,0) #设置RGB灯为绿色
time.sleep(2)
np[0] = (0, 0 ,255) #设置RGB灯为蓝色色
time.sleep(2)
步骤3 安装djitellopy库
和刚刚一样,点击库管理,这次需要进入PIP模式,输入djitellopy即可,然后运行即可安装,不得不说mind+这这个模块设计很人性化,用于青少年python教学也是非常方便
步骤4 安装完毕库之后,我们先写一段测试代码,控制无人机起飞降落
import time
from djitellopy import Tello
tello=Tello()
tello.connect()
tello.takeoff()
time.sleep(1000)
tello.land()
步骤5 到这里我们介绍的差不多了,剩下的就是我们的手势识别传感器
官方介绍如下 :AJ7620U2手势识别传感器是一款以IIC通信的3D手势识别交互式传感器。工作电流仅3.5mA, 手势识别距离达20mm。在最远20cm范围内,可以识别的手势多达13种。该手势传感器具备良好的手势识别稳定性,反应快,准确率高,可识别多种手势。支持两种手势识别模式,高速模式(可识别9种)和低速模式(可识别13种)。支持用户自定义识别手势。
PAJ7620U2手势识别传感器在高速模式下可识别上,下,左,右,前,后,顺时针,逆时针,快速挥手。而低速模式除了支持高速基础包含的所有手势外,还支持慢速上下,慢速左右,慢速前后,乱序。此外,低速模式可以自定义单位采样时间,还可根据自己需要轻松定义识别手势。
市面上主流的手势传感器可识别手势通常仅为六种,而对于非接触式遥控器,手势游戏机等应用,仅有的基础性6种识别模式完全不够。而PAJ7620U2手势识别传感器的出现,解决了手势识别模式欠缺的问题。PAJ7620U2手势识别传感器广泛适用于非接触式遥控器,机器人交互,手势操作游戏机,手势控制酷炫灯光等应用。
关于传感器的详细说明,在产品的资料库中有详细说明,但是里面没有python的使用说明,因此PinPong就脱颖而出啦。
步骤6 连接手势传感器至PinPong Board
这里我们需要观察手势识别传感器的接口和PinPong Board开发版的对应接口
PinPong 开发版 手势识别传感器
5V --------------→ +
GND -------------→ -
SCL --------------→ C
SDL --------------→ D
步骤7 编写代码,驱动手势传感器,代码
from pinpong.board import Board
from pinpong.libs.dfrobot_paj7620u2 import PAJ7620U2,Gesture
Board("uno").begin() #初始化,选择板型和端口号,不输入端口号则进行自动识别
paj = PAJ7620U2()
paj.set_gesture_high_rate() #设置高速模式
#paj.set_gesture_low_rate() #设置低速模式
Gesture.print_all() #打印可识别的手势以及其编号
while True:
description,gesture = paj.get_gesture()
if gesture != Gesture.none:
print("gesture code =%s"%gesture)
print("gesture description =%s"%description)
步骤8 最后一阶段,融合刚刚2段代码,实现人机交互
from djitellopy import Tello
from pinpong.board import Board
from pinpong.libs.dfrobot_paj7620u2 import PAJ7620U2,Gesture
tello=Tello()
tello.connect()
Board("uno").begin() #初始化,选择板型和端口号,不输入端口号则进行自动识别
#Board("uno","/dev/cu.wchusbserial1460").begin()
paj = PAJ7620U2()
paj.set_gesture_high_rate() #设置高速模式
#paj.set_gesture_low_rate() #设置低速模式
Gesture.print_all()
while True:
description,gesture = paj.get_gesture()
if gesture != Gesture.none:
print("gesture code =%s"%gesture)
if description == "Right":
tello.move_right(50)
elif description == "Backward":
tello.takeoff()
elif description == "Forward":
tello.land()
elif description == "Left":
tello.move_left(50)
elif description == "Up":
tello.move_up(30)
elif description == "Down":
tello.move_down(30)
elif description == "Clockwise":
tello.flip_forward()
print("gesture description =%s"%description)
上面的代码都是简单的示例,同学们拿去之后可以加入更加有意思的项目进去
到这里吧,这个教程贴已经接近尾声,祝大家顺利调试成功!
再次感谢DFRobot给的这么好的一个平台。
嗯…真的爽
评论