如何在Arduino上部署emlearn模型:从训练到LED控制的完整教程
📅 2026/8/1 21:09:46
👁️ 次浏览
如何在Arduino上部署emlearn模型从训练到LED控制的完整教程【免费下载链接】emlearnMachine Learning inference engine for Microcontrollers and Embedded devices项目地址: https://gitcode.com/gh_mirrors/em/emlearnemlearn是一款专为微控制器和嵌入式设备设计的机器学习推理引擎能帮助开发者在资源受限的硬件上轻松实现AI功能。本教程将带你完成从模型训练到在Arduino上部署并控制LED的全过程即使是新手也能快速上手。准备工作搭建开发环境开始前需要准备以下工具和材料安装 Arduino IDE准备任意Arduino兼容开发板如Arduino Leonardo安装emlearn Python库用于模型训练杜邦线、LED灯和220Ω电阻用于电路连接首先克隆emlearn项目仓库git clone https://gitcode.com/gh_mirrors/em/emlearn然后安装必要的Python依赖cd emlearn pip install -r requirements.txt第一步训练简单的XOR模型我们将从经典的XOR逻辑函数入手训练一个能根据输入状态控制LED的模型。创建训练脚本xor_train.py可参考 docs/helloworld_xor/xor_train.pyimport emlearn import numpy as np from sklearn.tree import DecisionTreeClassifier # 准备XOR训练数据 X np.array([[0, 0], [0, 1], [1, 0], [1, 1]], dtypenp.float32) y np.array([0, 1, 1, 0], dtypenp.int32) # 训练决策树模型 model DecisionTreeClassifier(max_depth2) model.fit(X, y) # 转换为C代码并保存 cmodel emlearn.convert(model) cmodel.save(xor_model.h)运行脚本生成模型文件python xor_train.py成功执行后会生成xor_model.h文件这就是我们需要部署到Arduino的模型。第二步安装emlearn Arduino库emlearn提供了专门的Arduino库包含模型推理所需的核心函数python -m emlearn.arduino.install该命令会自动将emlearn库安装到Arduino的库目录中通常路径类似C:\Users\用户名\Documents\Arduino\libraries\emlearnWindows或/home/用户名/Arduino/libraries/emlearnLinux第三步编写Arduino控制代码打开Arduino IDE创建新 sketch 并保存为emlearn_led_control复制以下代码完整代码可参考 docs/helloworld_xor/helloworld_xor.ino#include emlearn.h #include xor_model.h // 导入我们训练的模型 // 定义输入输出引脚 const int pinA 2; // 数字输入A const int pinB 3; // 数字输入B const int ledPin 13; // 板载LED引脚 void setup() { pinMode(pinA, INPUT); pinMode(pinB, INPUT); pinMode(ledPin, OUTPUT); } void loop() { // 读取输入值 const int a digitalRead(pinA); const int b digitalRead(pinB); // 准备输入特征 const float features[2] { (float)a, (float)b }; // 使用emlearn模型进行预测 const int prediction xor_model_predict(features); // 控制LED digitalWrite(ledPin, prediction ? HIGH : LOW); delay(100); // 短暂延迟 }将之前生成的xor_model.h文件复制到Arduino sketch目录中第四步电路连接与上传代码按照以下方式连接电路将两个数字输入引脚2和3分别通过杜邦线连接到GND或5V模拟高低电平LED的长脚正极通过220Ω电阻连接到引脚13LED的短脚负极连接到GND在Arduino IDE中选择正确的开发板和端口点击上传按钮将代码烧录到设备中。测试模型验证LED控制效果模型实现了XOR逻辑功能当两个输入状态不同时LED点亮相同时LED熄灭LED点亮预测结果1的情况输入A高电平输入B低电平输入A低电平输入B高电平LED熄灭预测结果0的情况输入A高电平输入B高电平输入A低电平输入B低电平进阶应用探索更多可能性掌握基础流程后你可以尝试使用模拟传感器如光敏电阻作为输入训练更复杂的模型如通过 emlearn/trees.py 实现多分类优化模型大小和速度参考 docs/optimizing-tree-models.md尝试其他嵌入式平台如ESP32、STM32emlearn让嵌入式设备上的机器学习变得简单无论是智能家居、工业控制还是物联网设备都能轻松集成AI功能。现在就开始你的嵌入式AI之旅吧【免费下载链接】emlearnMachine Learning inference engine for Microcontrollers and Embedded devices项目地址: https://gitcode.com/gh_mirrors/em/emlearn创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
FormsFX:彻底改变JavaFX表单开发!简单高效创建专业UI表单的终极指南 【免费下载链接】FormsFX A framework for easily creating forms for a JavaFX UI. 项目地址: https://gitcode.com/gh_mirrors/fo/FormsFX
FormsFX是一个专为JavaFX UI设计的…
📅 2026/8/1 21:08:46
牛客周赛 Round 154补题题解
前言 变色的生活 任性的挑拨 疯狂的冒出了头 单方的守候 试探的挑拨 却还是少了点什么 遥远两端 爱挂在天空飞 风停了也无所谓 只因为你总说 Everything will be okey 本周牛客周赛也是在vp之后的闲余时间开始的,由于vp的难度太高&…
📅 2026/8/1 21:08:46
终极C/C库兼容性测试工具:ABI Compliance Checker核心功能详解 【免费下载链接】abi-compliance-checker A tool for checking backward API/ABI compatibility of a C/C library 项目地址: https://gitcode.com/gh_mirrors/ab/abi-compliance-checker
ABI C…
📅 2026/8/1 21:08:46
1. 从OpenClaw看AI硬件的“软肋”与“硬伤”OpenClaw这个名字,在2024到2025年间,几乎成了AI硬件领域一个现象级的“反面教材”。它描绘了一个诱人的蓝图:一个集成了顶级算力、超低功耗、无缝连接云端与边缘的通用AI加速设备,旨在让…
📅 2026/8/2 5:30:03
当评论区的"人"全是 AI:Hacker News 4229 票的热帖,扯下了 AI 内容泛滥的最后一块遮羞布
深夜两点,Hacker News 的头条突然变了。
标题只有一行:“Don’t post generated/AI-edited comments. HN is for conversation…
📅 2026/8/2 5:30:03
新特性发布,让.NET开发更简单Furion v4.9.9.52已经发布,让.NET开发更简单,更通用,更流行。此版本更新了众多新特性,如在HTTP远程请求方面,新增了Action<HttpRequestBuilder>操作符,支持将…
📅 2026/8/2 5:30:03
AI公司集体“发券”现象过去两个月,AI公司突然集体“发券”。北京时间7月31日,OpenAI宣布将GPT - 5.6 Luna的API价格下调80%,Terra降价20%,Codex和ChatGPT Work中调用这两款模型消耗的额度也随之减少。一时间,Token有了…
📅 2026/8/2 5:30:03
1. 项目概述:为什么我们需要关注TCMalloc的统计信息?在构建和维护大规模、高性能的后端服务时,内存管理往往是决定系统稳定性和性能上限的关键因素。很多开发者习惯性地将内存问题归咎于“内存泄漏”,然后一头扎进Valgrind或各种P…
📅 2026/8/2 5:30:03
1. 项目概述:从“画图”到“契约”的思维跃迁提到UML,很多人的第一反应是“画图工具”——画几个小人(参与者),再画几个椭圆(用例),然后用线连起来,一张用例图就完成了。…
📅 2026/8/2 5:29:01
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/2 1:22:12
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/2 0:02:59
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/2 1:22:12