回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

无人机播种——小小花农 简单

头像 寻有此人 2021.01.08 736 0

步骤1 案例详情

在《我和我的家乡》中,主人公为家乡创造了一幅独一无二的绘画,同学们是否惊叹于马亮对于颜色的控制的精妙之处呢?我们是否也可以对稻田进行一次无人机播种,在大地上种下属于我们自己的图画,来装点世界呢?

步骤2 本节拟解决的问题

1.如何在规定场地绘出图形(用程序设计)

2.如何寻找准确的花坑(十字激光头的正中心就是要标注的点)

步骤3 教学准备

材料清单

  • 十字激光头 X1
  • TT无人机 X1
  • 扩展件 X1
  • 发泡胶 X1
project-image

电脑一台*1

花种一袋

小铲子*1

十字激光传感器*1

TT无人机*1

遥控器*1

学生*2

热熔器*1(注意在老师指导下使用)

米尺*1

步骤4 课程原理

无人机在空中引导,下方学生做标记点

步骤5 具体操作

构图规划

1.无人机安装自制潜望镜

2.在播种区域拍照(高度控制5米之内)

3.已知相机分辨率2560*1920(h*w),对应无人机回传照片。

4.测量菜地长宽(a*b)

5.相机分辨率与菜地之间做比例变换(h/w=a/b)

6.构图

7.将构图转换为飞行航线(SDK控制)

飞行器改装

1.将传感器垂直安装在机身底部,保持与水平面90°(使用热熔胶固定)

2.使用自制潜望镜(目的,使前置摄像头可以拍摄向下的景物)

操作详情

1.飞行器做飞行前准备

2.打开红外线传感器

3.开始按照预定航线飞行

4.一位同学拿花铲在航线在下面做标记

5.然后在预定标记处种下花种

代码
# MindPlus
# telloesp32
from machine import Pin, PWM
from machine import *
from RMTTLib import *
import time


led = RMTTLedCtrl()
led.start()

p13 = Pin(13, Pin.OUT)

uart1 = UART(1, baudrate=1000000, tx=18, rx=23)

protocol = RMTTProtocol(uart1)


led.normal(0, 0, 255)
p13.value(1)
time.sleep(3)
protocol.startUntilControl()
time.sleep(1)
protocol.sendTelloCtrlMsg("motoron")
time.sleep(1)
protocol.sendTelloCtrlMsg("takeoff")
led.normal(0, 0, 255)
p13.value(1)
time.sleep(3)
protocol.startUntilControl()
time.sleep(1)
protocol.sendTelloCtrlMsg("motoron")
time.sleep(1)
protocol.sendTelloCtrlMsg("takeoff")
led.normal(0, 0, 255)
p13.value(1)
time.sleep(3)
protocol.startUntilControl()
time.sleep(1)
protocol.sendTelloCtrlMsg("motoron")
time.sleep(1)
protocol.sendTelloCtrlMsg("takeoff")
while True:
  protocol.sendTelloCtrlMsg("up "+str(int(40)))
  protocol.sendTelloCtrlMsg("forward "+str(int(50)))
  protocol.sendTelloCtrlMsg("cw "+str(int(90)))
  led.normal(255, 255, 0)
  protocol.sendTelloCtrlMsg("forward "+str(int(50)))
  protocol.sendTelloCtrlMsg("cw "+str(int(90)))
  led.normal(255, 255, 0)
  protocol.sendTelloCtrlMsg("forward "+str(int(50)))
  protocol.sendTelloCtrlMsg("cw "+str(int(90)))
  led.normal(255, 255, 0)
  protocol.sendTelloCtrlMsg("forward "+str(int(50)))
  protocol.sendTelloCtrlMsg("stop")
  led.blink(1, 255, 0, 0, 0, 255, 0)
  time.sleep(3)
  protocol.sendTelloCtrlMsg("land")
  while True:
  g_dadada = 4
  if (4 <= g_dadada):
    protocol.sendTelloCtrlMsg("cw "+str(int(90)))
    protocol.sendTelloCtrlMsg("forward "+str(int(50)))
  else:
    protocol.sendTelloCtrlMsg("stop")
    led.normal(0, 0, 255)
    time.sleep(1)
    protocol.sendTelloCtrlMsg("land")
  while True:
  g_dadada = 4
  if (4 <= g_dadada):
    protocol.sendTelloCtrlMsg("cw "+str(int(90)))
    protocol.sendTelloCtrlMsg("forward "+str(int(50)))
  else:
    protocol.sendTelloCtrlMsg("stop")
    led.normal(0, 0, 255)
    time.sleep(1)
    protocol.sendTelloCtrlMsg("land")
project-image

左边基础版的写法,右边是和左边程序等价的循环结构

步骤6 知识点总结

数学

菜地与TT无人机回传照片之间进行比例转换(目的:飞行器如何在菜地上方绘出目的图形)

航空学

1.航线的绘制

2.使用电脑控制飞行器飞行

3.测量学

1.确定飞行高度5米

2.在目标区域悬停采集照片

图形学

1.了解像素概念

2.简单计算分辨率之间的转换

程序设计

1.App指导

(1)下载安装

(2)与机器的配对和连接

2.搭建Mind+编程环境

3.变量和简单数据类型

4.程序结构

(1)顺序结构

(2)分支结构

(3)循环结构

(4)复合结构

5.简单算法入门

(1)二分法

(2)简单数列求和

6.为TT无人机编写程序

(1)完成程序控制飞行器飞行

(2)更复杂的飞行控制程序

评论

user-avatar