news 2026/10/5 10:32:23

开源FarmBot:网页画格子,机器去种菜

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开源FarmBot:网页画格子,机器去种菜

听说自动种菜,很多人会以为是一辆自己满地跑的小车。FarmBot 不是。它像 3D 打印机:铝架钉在苗床两边的导轨上,只在这块地里按坐标前后、左右、上下动,把种子点进格子、把水浇到指定位置,再拍照看苗在不在。它完全开源,硬件原理图和源码都公开,公司也卖 Genesis / Express 套件。软件协议以 MIT 为主。官网 farm.bot,设备端系统 github.com/farmbot/farmbot_os。

真正会翻车的点不是「会不会写代码」,而是:种植图里的格子,和龙门真实坐标对不上。没回零、没标定步距,序列照样能点「播种」——只是种子落在空地或压到已有苗上。网页画得再漂亮,MCU主控只认毫米。

它怎么从网页走到苗床上


图1:电脑画图,机器去种菜

浏览器(种植图 · 序列 · 日程 · 手动点动) ↕ HTTP 存档 + MQTT/AMQP 实时消息 树莓派 FarmBot OS · 和网页同步植物、序列、日志 · USB 串口下发 G 码 / F 码 Farmduino(Arduino 架构控制板) · 步进电机、工具头、电磁阀、编码器 · 限位 / 堵转检测后回传

网页负责「这块地哪一格种什么、几点浇水」。树莓派不自己规划整片菜地的路径规划算法,它把网页上的序列拆成运动指令,经 USB 发给 Farmduino。Farmduino 才是动手的那一层:走轴、吸种、开阀。和 Klipper 很像——Host 算事,MCU 守节拍——对象从热床换成了苗床。

摄像头接在树莓派上,不经过 Farmduino。拍照、杂草检测、上传缩略图,都是 Pi 侧的活。Genesis 一类机型还有UTM(通用工具座):播种器、浇水嘴、除草铲、土壤传感器可以换;Express 常见是三合一工具头固定在 Z 轴上,图省事,扩展少。

当前 Genesis 文档里的电脑是树莓派 4B,电机四台 NEMA 17,驱动常见 TMC2130,带编码器做闭环位置。Express 用过 Pi Zero,算力弱,同步和拍照更容易卡。自己抄作业,优先按 Genesis 的「Pi + Farmduino」来理解,别把 Zero 当主力脑。

软件里不是一个「开始种菜」按钮

图2:电脑、树莓派、控制板、种菜架

网页不是一个大按钮「开始种」。它拆成几块,搞混了就会觉得「软件是不是有bug」:

概念干什么
种植图(Farm Designer)在地图上摆植物、工具、种子盒、拍照点
序列(Sequence)一组动作:移动、读传感器、播种、浇水、拍照、检测杂草
方案(Regimen)按植物生长阶段套序列,例如出苗后每隔几天浇一次
事件(Event)把序列或方案挂到日历上,到点执行
Lua序列里嵌脚本,做判断、HTTP、发消息;给会写代码的人

一次「把生菜种上」,时间线上大概是:图上先有生菜的坐标和工具座位置 → 序列写清「去种子盒吸种 → 移到格子 → 下 Z 点种 → 回工具座」→ 事件定在今天 9:00。到点后网页经 MQTT 通知设备;Pi 执行序列,一条条变成 G00 移动和 F 开头的 FarmBot 专用指令。固件文档写得很直白:配置没批准前,轴不会动;要先完成配置,再G00 X… Y… Z…。

杂草检测也不是摄像头「看见就铲」。标准流程是:先标定颜色阈值,再在图上铺一圈拍照点,序列对每个点「移动 + Detect Weeds」,识别结果变成待处理杂草点,你再决定铲还是忽略。阈值没调、光照一变,不是漏检就是把菜认成草。

技术栈大概长什么样

设备端FarmBot OS用Elixir,靠Nerves编成一张可刷的镜像,不是你在树莓派桌面里apt install出来的普通系统。和网页之间走 HTTP(配置、图、序列落库)和 MQTT(实时控制、日志)。配网用机载Configurator:设备自己开热点,手机连上去填家里 Wi‑Fi 和网页账号。

网页 FarmBot Web App(Ruby on Rails + 前端 + MQTT) · 官方实例 my.farm.bot · 可自建,官方明确劝普通用户别建 ↕ 树莓派 FarmBot OS(Elixir / Nerves) · 同步账户数据、跑序列、拍 USB 摄像头 · 可选 Lua;旁路电脑可用 farmbot-py ↕ USB 串口 Farmduino 固件(C++ / Arduino) · G 码移动,F 码开关工具和读针脚

自建网页要 Docker、PostgreSQL、环境变量里的API_HOST/MQTT_HOST。官方说这是给改代码、做审计用的,家庭种菜用my.farm.bot更稳。免费额度按他们的说法够家用;超过约 3m×6m、很多植物并发、多机多用户,可能要付费或自建。树莓派没有可靠 RTC 时,NTP 对不上,日程和证书都会乱——完全离线不是他们的目标场景,硬离线还得自己供时间源。

一句话:Rails 网页 + MQTT + Nerves 镜像 + Arduino G 码龙门。栈是为「按格子种菜」收的,不是通用农机自动驾驶。

怎么把它跑起来

图3:先对准位置,再真正播种

买套件或按开源 BOM 抄,机械校直比刷系统更耗时间。导轨不平行、皮带松、Z 轴晃,后面所有标定都是在给误差找补。官方对非套件 DIY不提供排障,问题走社区论坛。

1. 刷 FarmBot OS。按当前软件文档写卡,不要拿普通树莓派桌面镜像凑。卡插进 Pi,和 Farmduino 用 USB 连好,24V 电源和电机线按手册,防呆插头别硬插反。

2. 配网进网页。上电后用 Configurator 连 Wi‑Fi,填my.farm.bot账号(或你自建实例的地址)。设备上线后,网页里应能看到日志和手动控制。

3. 回零、标定、空载点动。先 Find Home / 设轴长和步距,再在行程内点动,看实际位置和页面坐标是不是一回事。编码器报丢步,先查机械和供电,别先改序列。

4. 摄像头。对好高度和色彩范围,再铺拍照网格。没标定就开检测,地图上会刷一批假杂草。

5. 画种植图,序列先干跑。把浇水、下钻、除草从序列里拿掉或改成「只移动」,走完一遍。确认工具座、种子盒、苗坐标无干涉,再加泵和播种器。水、土靠近 24V 电器,漏电和短路按户外电气常识处理。

龙门会撞手、会绞进皮带。试车时人不要伸进行程,急停和断电手段要在够得着的地方。

现象优先排查
网页能登、设备离线苗床边 Wi‑Fi、账号、MQTT 被墙或自建 Host 填错
指令发了轴不动固件配置未批准、急停、未回零、USB 串口
种偏了 / 撞边步距、轴长、回零开关、导轨平行
照片糊、杂草乱标对焦高度、曝光、HSV 阈值、网格间距
到点不执行事件时区、NTP、设备当时正忙另一条序列
Express 又慢又重启算力不够,别拿它当 Genesis 的平替脑

边界

  • 它是固定龙门,不是巡田小车,也不是大田农机。面积受导轨长度限制。
  • 户外要防雨、防锈、防土进滑块;软件开源救不了没做的防水。
  • 套件不便宜,DIY 省钱但校直、开模、找件都算进成本。
  • 官方云够家用;自建网页维护成本高,普通用户没必要一上来就 Docker。
  • 检测杂草、估产都依赖光照和标定,别写成「AI 农场已经全自动」。
  • 能吃的菜仍要你自己管土、种、季节和食品安全,机器只负责按坐标执行。

参考

https://farm.bot/
https://farm.bot/pages/open-source
https://software.farm.bot/v13/FarmBot-Software/intro.html
https://developer.farm.bot/v12/Documentation/farmbot-os.html
https://github.com/FarmBot/farmbot_os
https://github.com/FarmBot/farmbot-arduino-firmware
https://github.com/FarmBot/Farmbot-Web-App
https://genesis.farm.bot/v1.8/assembly/electronics.html
https://software.farm.bot/v15/docs/how-to-guides/scan-the-garden-for-weeds.html
https://developer.farm.bot/v15/docs/web-app/running-servers-offline.html

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 10:31:03

10.3课程笔记加作业

CSS简介 样内行式 写在style属性中的样式 缺点:不能大量使用,太麻烦了内部样式 写在html页面内部,将所有CSS代码提取出来,单独放在style标签里外部样式 写在单独的.css文件中,随后在html文件中引入使用样式表的优先级C…

作者头像 李华
网站建设 2026/10/5 10:29:42

AIHOT静态工程评测:自己找热点、自己写日报的框架,如何用“信源+精选标准”配置化重构垂直热点站

AIHOT静态工程评测:自己找热点、自己写日报的框架,如何用“信源精选标准”配置化重构垂直热点站评测快照:KKKKhazix/AIHOT cc66cce 项目定位:自己找热点、自己写日报的行业热点站框架——换信源与精选标准即成你的垂直热点站 数据…

作者头像 李华
网站建设 2026/10/5 10:29:16

Agent改完数据忘了排活?谷歌把队列塞进数据库

Agent 把订单状态从"待支付"改成"已支付",然后没有然后了。该发的确认邮件没发出去,而数据看起来完全正常。 10 月 2 日​,谷歌宣布 Spanner Queues 正式全面开放。它要做的事一句话能说完:让"改数据"和"排下一个任务"变成同一次…

作者头像 李华
网站建设 2026/10/5 10:26:00

工业网关数据加密实战:从 mTLS、磁盘加密到密钥轮换

工业网关通常部署在公网、客户内网和现场设备之间,既要转发遥测数据,也可能保存设备凭证、生产统计、诊断日志和远程维护指令。真正可信的加密方案,不能只给 HTTP 加一层 TLS,而要同时覆盖传输链路、持久化介质、敏感字段和密钥生…

作者头像 李华
网站建设 2026/10/5 10:24:09

混沌拓扑学(HDT)分形认知下的数字生命世界模型

分形认知与虚实共生:数字生命多坐标系世界模型的架构范式 摘要 数字生命(Digital Life)作为人工智能从“工具理性”向“主体性”演进的关键形态,其核心挑战在于如何构建一个既能精确映射物理法则,又能承载复杂社会情…

作者头像 李华
网站建设 2026/10/5 10:24:09

从自动驾驶到具身智能,一套基础模型真的能通吃吗

目录 1 引言 2 自动驾驶与具身机器人之间的能力共性 2.1 三维空间理解能力 2.2 世界模型与物理因果推演 2.3 时序推理与长序列规划 2.4 多模态输入融合 3 无法直接 “一套模型零修改通吃” 的核心鸿沟 3.1 具身本体差异(最大鸿沟) 3.2 安全与实时性约束差异 3.3 数…

作者头像 李华