步骤1 案例详情
在《我和我的家乡》中,主人公为家乡创造了一幅独一无二的绘画,同学们是否惊叹于马亮对于颜色的控制的精妙之处呢?我们是否也可以对稻田进行一次无人机播种,在大地上种下属于我们自己的图画,来装点世界呢?
步骤2 本节拟解决的问题
1.如何在规定场地绘出图形(用程序设计)
2.如何寻找准确的花坑(十字激光头的正中心就是要标注的点)
步骤3 教学准备
材料清单
- 十字激光头 X1
- TT无人机 X1
- 扩展件 X1
- 发泡胶 X1
电脑一台*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")
左边基础版的写法,右边是和左边程序等价的循环结构
步骤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)更复杂的飞行控制程序
评论