回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

【PinPong Board】PinPongBoard 结合手势传感器控制大疆无人机 简单

头像 天明zzb 2021.04.24 538 0

直接拆箱上图

project-image
project-image

拿到手里的开发版确实惊艳到我了,高度集成合种传感器~~~依次有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模块

project-image

点击python模式即可开始编程,再点击项目文件中的加号添加文件,这里注意给文件命名的同时要写上后缀.py

不然创建的只是一个文档,希望官方后面可以优化

project-image

接下来我们就直接在这个软件立马直接进行库的安装

点击库管理就可以看到硬件控制里面的第一个,我们需要的库,然后直接点击安装即可,有需要的同学可以把👆的源改为豆瓣…额我觉得豆瓣快点

project-image
project-image

步骤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)
project-image

步骤3 安装djitellopy库

和刚刚一样,点击库管理,这次需要进入PIP模式,输入djitellopy即可,然后运行即可安装,不得不说mind+这这个模块设计很人性化,用于青少年python教学也是非常方便

project-image

步骤4 安装完毕库之后,我们先写一段测试代码,控制无人机起飞降落

代码
import time
from djitellopy import Tello

tello=Tello()
tello.connect()
tello.takeoff()
time.sleep(1000)
tello.land()
project-image

步骤5 到这里我们介绍的差不多了,剩下的就是我们的手势识别传感器

官方介绍如下 :AJ7620U2手势识别传感器是一款以IIC通信的3D手势识别交互式传感器。工作电流仅3.5mA, 手势识别距离达20mm。在最远20cm范围内,可以识别的手势多达13种。该手势传感器具备良好的手势识别稳定性,反应快,准确率高,可识别多种手势。支持两种手势识别模式,高速模式(可识别9种)和低速模式(可识别13种)。支持用户自定义识别手势。

PAJ7620U2手势识别传感器在高速模式下可识别上,下,左,右,前,后,顺时针,逆时针,快速挥手。而低速模式除了支持高速基础包含的所有手势外,还支持慢速上下,慢速左右,慢速前后,乱序。此外,低速模式可以自定义单位采样时间,还可根据自己需要轻松定义识别手势。

市面上主流的手势传感器可识别手势通常仅为六种,而对于非接触式遥控器,手势游戏机等应用,仅有的基础性6种识别模式完全不够。而PAJ7620U2手势识别传感器的出现,解决了手势识别模式欠缺的问题。PAJ7620U2手势识别传感器广泛适用于非接触式遥控器,机器人交互,手势操作游戏机,手势控制酷炫灯光等应用。

关于传感器的详细说明,在产品的资料库中有详细说明,但是里面没有python的使用说明,因此PinPong就脱颖而出啦。

project-image

步骤6 连接手势传感器至PinPong Board

这里我们需要观察手势识别传感器的接口和PinPong Board开发版的对应接口

PinPong 开发版 手势识别传感器

5V --------------→ +

GND -------------→ -

SCL --------------→ C

SDL --------------→ D

project-image

步骤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)
project-image

步骤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)
project-image

上面的代码都是简单的示例,同学们拿去之后可以加入更加有意思的项目进去

到这里吧,这个教程贴已经接近尾声,祝大家顺利调试成功!

再次感谢DFRobot给的这么好的一个平台。

嗯…真的爽

评论

user-avatar