感知生长——桌面植物景观
【项目源起】去年DF社区举办了一场主题为“创客大作战暖冬行动”比赛,当时我从淘宝上购买了种子和种植盆,并利用掌控,制作了一个基于物联网的种植项目。今天,我们将对其进行改造,使其更微型化,智能化,既具备植物水培的功能,又能作为植物景观摆放在桌面上。项目展示如图1。【项目展示】桌面植物景观系统具有三种工作模式:加速模式、景观模式、休息模式,如图2—4所示。
【功能简介】(1)智能水培:通过微环境控制系统采用无土栽培方式,集成模拟了植物生长所需要的阳光、空气、水和养分等自然环境,使种植不受天气和环境的影响,全年生长。该控制系统带有一个蠕动泵,加速模式下工作保持水体含氧量有效防止植物烂根。(2)分类模式:该控制系统可设定三种模式:加速模式、景观模式、休息模式。(3)空气流通:该系统带有风扇,加快空气流通,促进植物更好呼吸,为种植提供良好的植物生长环境。。(4)感知生长:使用HuskyLens视觉识别传感器对植物进行感知,当植物叶片出现增大,则触发拍照记录植物照片到TF卡中。
【硬件材料】
序号名称数量
1Arduino uno1
2IO 传感器扩展板 V7.11
3DHT11温湿度传感器1
4HuskyLens AI 视觉传感器1
5模拟角度传感器1
6RGBled灯带1
7130 直流电机风扇1
8蠕动泵1
97.4V锂电池及充电器1
【制作过程】
1.系统设计桌面植物景观系统有三种工作模式:加速模式、景观模式、休息模式。加速模式使用红光加速植物进行光和作用,促进植物生长,同时蠕动泵工作,加快营养液循环,防止植物烂根;景观模式使用彩灯达到一种点缀环境氛围的效果,可作为桌面摆件装饰环境;休息模式使用蓝光,促进植物根茎部发育,防止植物疯长、徒长。
2.结构设计本次作品结构设计涉及两部分,一部分是激光切割松木板和亚格利板,用作系统结构。另一部分是3D打印的自浇花的花盆和摆件,作为水培种植盆。框架结构设计,使用LaserMaker绘制结构图。3D打印的自浇花花盆从网上下载。
(1)框架结构件设计(松木板)
首先以3mm厚的松木板为原料,使用“快速造盒工具”,生成一个盒体。然后删除盒体底部,并对前后左右四面绘制出窗体,用于安装亚格利板,并绘制螺丝孔位。最后在盒体顶部,绘制主控及相关传感器安装孔位。具体设计如下图7所示。
(2)窗体设计(亚格利)以3mm亚格利板为原料,绘制下图所示的矩形(尺寸见模型文件),并定位螺丝孔,与图7的结构件能吻合安装。此部分需要切割两份。
3.电路连线
装置电路连接如图11所示。两个迷你巡线模块分别接D7,D8口,人体红外传感器接D2口,RGBLED接D10口,继电器接D12口。
4. 代码编写主程序如下图所示,模拟角度传感器接A3口读取的数值我们通过映射函数将其映射为0-125之间,对其定义区间休息(0-40),景观(40-80),加速(80以上),与之对应在主程序中,我们定义了加速模式、景观模式、休息模式三个函数以及感知植物生长的感知函数。感知生长函数,我们使用了哈士奇的物体追踪功能,先完成对植物的学习,而当植物生长叶片其宽度和高度超过我们设定的值时,屏幕出现“grow yes”提示,同时拍照记录植物生长过程。/*!
* MindPlus
* uno
*
*/
#include <DFRobot_DHT.h>
#include <DFRobot_NeoPixel.h>
#include <DFRobot_HuskyLens.h>
#include <DFRobot_Libraries.h>
// 动态变量
volatile float mind_n_M;
// 函数声明
void DF_JiaSuMoShi();
void DF_XiuXiMoShi();
void DF_JingGuanMoShi();
void DF_NO_PUMP();
void DF_pump();
void DF_GanZhiShengChang();
// 创建对象
DFRobot_HuskyLens huskylens;
DFRobot_NeoPixelneoPixel_4;
DFRobot_Servo360servo360_2;
DFRobot_DHT dht11_5;
// 主程序开始
void setup() {
servo360_2.attach(2);
dht11_5.begin(5, DHT11);
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_OBJECT_TRACKING);
neoPixel_4.begin(4, 40);
neoPixel_4.setBrightness(255);
mind_n_M = 0;
}
void loop() {
mind_n_M = (map(analogRead(A3), 0, 1023, 0, 125));
huskylens.request();
huskylens.writeOSD(String((String("temp:") + String(dht11_5.getTemperature()))), 200, 35);
huskylens.writeOSD(String((String("humi:") + String(dht11_5.getHumidity()))), 200, 65);
DF_JiaSuMoShi();
DF_JingGuanMoShi();
DF_XiuXiMoShi();
DF_GanZhiShengChang();
}
// 自定义函数
void DF_JiaSuMoShi() {
if ((80<mind_n_M)) {
huskylens.writeOSD(String((String("mode:") + String("acce"))), 200, 95);
neoPixel_4.setRangeColor(0, 40, 0xFF0000);
DF_pump();
digitalWrite(9, HIGH);
}
}
void DF_XiuXiMoShi() {
if ((mind_n_M<40)) {
huskylens.writeOSD(String((String("mode:") + String("rest"))), 200, 95);
DF_NO_PUMP();
digitalWrite(9, LOW);
neoPixel_4.setRangeColor(0, 40, 0x0000FF);
}
}
void DF_JingGuanMoShi() {
if (((mind_n_M<80) && (40<mind_n_M))) {
huskylens.writeOSD(String((String("mode:") + String("land"))), 200, 95);
DF_NO_PUMP();
digitalWrite(9, LOW);
neoPixel_4.showRainbow(0, 40, 1, 360);
delay(200);
neoPixel_4.rotate(1);
}
}
void DF_NO_PUMP() {
servo360_2.speed(0);
}
void DF_pump() {
servo360_2.speed(100);
}
void DF_GanZhiShengChang() {
if (huskylens.isLearned(1)) {
if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
if (((120<huskylens.readBlockParameter(1).height) || (80<huskylens.readBlockParameter(1).width))) {
huskylens.writeOSD(String((String("grow") + String("yes"))), 200, 95);
huskylens.takePhotoToSDCard();
delay(500);
}
}
}
}
5.设备组装第一步:激光切割框架和窗体。第二步:拿出顶板,在主控、二哈、传感器位置上固定铜柱。
第三步:在顶板的背面粘贴灯带,如图18所示。
第四步:拿出温湿度传感器DH11安装在对应的铜柱上,如图19所示。
第五步:在顶板上安装Arduino Uno、二哈及模拟角度传感器,如图20所示,注意安装主控部分时,先将主控板与对应的支撑铜柱对齐,用螺母固定后,再叠加拓展板。
第六步:拿出窗体与框架结构,按照对应的孔位用螺丝固定,如下图21所示。
第七步:拿出蠕动泵,按如图22方式安装,注意将硅胶管,放置在内部。
第八步:将前后左右顶五片结构件进行组装,如图23所示。
第九步:本次使用的风扇模块本身无法合理的固定在顶板上。因此,我们使用激光切割加工出图24所示的三片木板,叠加后与风扇模块固定。再将此部分与顶板内部用502胶水粘贴,从而完成风扇模块的安装。
6.系统测试(1)系统加电对其进行测试,通过旋转模拟角度传感器,分别测试对应的加速模式mode:acce(如图25)、景观模式mode:land(如图26)、休息模式mode:rest(如图27)。
(2)感知生长:当植物叶片长大其宽度或高度超过我们设定的值时,会触发哈士奇拍照,并在哈士奇屏幕上出现提示信息。如图28所示。
7.改进与提升本次制作过程中,风扇的安装设计的比较粗糙,后续有待改进。另外作品内部的走线,虽然在安装时,尽量在铜柱上绕线,避免缠绕,但是在实施过程中还是出现了缠绕的情况。对于功能上,后续可以增加物联网的功能。 保存在二哈的TF卡里吗?谢谢 赞 rzyzzxw 发表于 2021-1-18 08:39
赞
come back 二哈如何保持始终学习的状态呢? 小含糊online 发表于 2021-5-15 23:28
二哈如何保持始终学习的状态呢?
你可以强制它进入学习状态
页:
[1]