Contiki仿真神器Cooja:从零搭建无线传感器网络实验环境

contiki仿真模拟器cooja的使用 最近想学习一下无线传感器网络,慢慢接触了6LowPan和Ipv6以及RPL, 但是手里没有相关硬件,再机缘巧合的情况下发现了contiki,以及里面强大的模拟器。这篇文章就记录一下cooja仿真模拟的步骤吧。 下面看一下效果图: 运行cooja得下载contiki源码以及搭建环境等一系列复杂步骤,但是我们可以通过直接下载官方虚拟机镜像运行,省去了搭建环境的麻烦。 虚拟机镜像:Instant Contiki-3.0 下载好后用Vmware打开就好了。 进入cooja目录 user@instant-. 阅读详情

1. 为什么你需要Cooja:零硬件成本的无线网络实验室

想学无线传感器网络,特别是现在挺火的6LowPan、IPv6和RPL协议,但一搜开发板价格,再看看那复杂的硬件接线和调试,是不是瞬间头大?别急,这几乎是每个初学者都会遇到的“劝退”第一关。几年前我刚接触这个领域时也这样,直到我发现了Contiki和它内置的“神器”——Cooja仿真器。

简单来说,Cooja就是一款专门为Contiki操作系统设计的网络仿真模拟器。Contiki本身是一个开源的、专为物联网和无线传感器网络设计的轻量级操作系统。而Cooja,就像是给这个操作系统搭建的一个虚拟沙盒。你不需要任何真实的传感器节点(比如TelosB、Z1这些硬件),就能在你的电脑上模拟出几十、上百个节点组成的无线网络,让它们跑起来,互相通信,执行你写的程序。你可以亲眼看到数据包是如何在节点间跳跃(多跳路由),网络拓扑是如何动态变化的,这对于理解RPL这种路由协议的原理,简直直观得不能再直观了。

我当初就是靠它,在没有花一分钱买硬件的情况下,把6LowPan的报文压缩、IPv6在低功耗网络里的适配、以及RPL路由的构建和维护过程摸了个门儿清。它特别适合这几类朋友:一是学生和研究者,想做算法验证或协议研究;二是嵌入式或物联网方向的开发者,想快速上手无线传感器网络开发流程;三是任何对物联网底层通信感兴趣,但又不想被硬件门槛绊住的朋友。有了Cooja,你的笔记本电脑就是一座功能完备的无线传感器网络实验室。

2. 最快上手:用官方虚拟机镜像跳过所有环境坑

最让人头疼的往往不是学习本身,而是配环境。Contiki和Cooja的依赖环境涉及到Java、Ant、编译工具链等等,在Windows、macOS或者不同版本的Linux上,可能会遇到各种稀奇古怪的报错。我踩过的坑可以写满好几页纸。所以,对于纯粹想快速开始学习、体验仿真的朋友,我强烈推荐,甚至只推荐一种方法:使用官方预配置好的虚拟机镜像。

这个镜像叫 Instant Contiki。你可以把它理解为一个“开箱即用”的Linux系统,里面已经把Contiki源代码、Cooja仿真器、所有必要的编译工具、甚至示例程序全都装好了,并且配置妥当了。你只需要像运行一个普通软件一样打开它,就能直接进入工作状态。

具体操作步骤,跟着我做就行:

  1. 获取镜像:去Contiki的官方GitHub仓库或者一些大学的研究页面(搜索“Instant Contiki 3.0 download”),找到这个虚拟机镜像的下载链接。它通常是一个.ova或.vmx格式的文件,大小在1-2GB左右。
  2. 导入虚拟机:你需要一个虚拟机软件,比如 VMware Workstation Player(个人使用免费)或者 VirtualBox(完全免费)。我习惯用VMware,兼容性更好一些。安装好虚拟机软件后,直接选择“打开虚拟机”,找到你下载的.ova文件,导入即可。过程中可能会问你是否要更改存储路径,按默认的来就行。
  3. 启动虚拟机:导入成功后,你会在虚拟机软件列表里看到一个叫“Instant Contiki”的系统。启动它。第一次启动可能会提示“你已复制或移动此虚拟机”,选择“我已复制它”。
  4. 进入系统:等待系统启动完毕,你会看到一个Ubuntu桌面环境。默认用户名是user,密码是user。登录进去,恭喜你,环境已经100%就绪了!

注意:为了获得更好的性能,建议你在虚拟机设置里,给这个系统分配至少2GB内存(4GB更佳),处理器核心数也可以给1-2个。这样跑起仿真来会更流畅。

3. 初识Cooja:创建你的第一个仿真网络

好了,现在我们已经在Instant Contiki的桌面上了。打开终端(Terminal),我们准备启动Cooja。

第一步:找到并启动Cooja 在终端里,依次输入以下命令:

cd contiki/tools/cooja/
ant run

第一条命令是进入Cooja所在的目录。第二条命令ant run是利用Apache Ant构建工具来编译并运行Cooja。稍等片刻,一个Java Swing风格的图形界面就会弹出来,这就是Cooja的主界面了。第一次运行可能会花一两分钟,因为它在进行初始构建。

第二步:创建新仿真 点击菜单栏的 File -> New simulation。会弹出一个对话框,让你填写仿真的基本信息,比如仿真名称(Simulation name),这里我们填个简单的MyFirstWSN。下面的“Random seed”是随机数种子,保持默认就行,它会影响无线通信中一些随机因素(如链路质量),对于初次体验,不用管它。直接点击右下角的 Create 按钮。

这时,你会看到一个空白的仿真界面,主要分为几个区域:中间是空的网络视图区(现在啥也没有),右边是仿真控制面板,左边是节点类型和节点列表区。

第三步:创建并添加“服务器”节点 无线传感器网络通常有不同类型的节点,比如一个收集数据的汇聚节点(Sink或Server),和一群负责感知和发送数据的普通节点(Client)。

  1. 点击菜单栏的 Motes -> Add motes -> Create new mote type。
  2. 在弹出的“Create Mote Type”窗口中,首先选择硬件平台。我们选择最经典、最常用的 Sky mote。这是一个在仿真和研究中被广泛使用的虚拟硬件模型。
  3. Description 我们修改为 udp-server,以便识别。
  4. 最关键的一步:选择固件(Firmware)。点击 Browse 按钮,在弹出的文件选择器中,导航到 contiki/examples/ipv6/rpl-udp/ 目录,选择 udp-server.c 这个文件。这是一个已经写好的UDP服务器示例程序。
  5. 点击 Compile 按钮。Cooja会调用Contiki的交叉编译器,把这个C源代码编译成能在Sky mote上运行的二进制文件。编译成功后,下方日志窗口会显示“BUILD SUCCESSFUL”。
  6. 点击 Create 按钮。这样,我们就创建好了一个名为“udp-server”的节点类型。

现在,我们需要把这个类型的节点实例化,也就是真正加入到仿真网络中。上一步完成后,会自动弹出“Add motes”窗口。在“Mote type”下拉框里选择我们刚创建的“udp-server”,在“Number of motes”里输入 1,然后点击 Add motes。你可以用鼠标把网络视图中的这个节点拖到一个你喜欢的位置。

第四步:创建并添加“客户端”节点 重复上面的过程,我们再创建客户端节点。

  1. Motes -> Add motes -> Create new mote type。
  2. 硬件平台依然选 Sky mote。
  3. Description 修改为 udp-client。
  4. 固件这次选择 contiki/examples/ipv6/rpl-udp/udp-client.c。
  5. 点击 Compile,等待编译成功。
  6. 点击 Create。
  7. 在“Add motes”窗口,选择“udp-client”类型,数量这次我们输入 8,然后点击 Add motes。

一瞬间,网络视图里就出现了8个新的节点,它们可能堆在一起。你可以用鼠标把它们拖开,摆成一个你喜欢的拓扑结构,比如让服务器节点在中间,客户端节点散布在周围。

4. 让网络动起来:运行仿真与观察

现在我们的仿真网络里有1个服务器和8个客户端了,但它们还是静止的。我们需要启动仿真,让程序跑起来,让网络活起来。

启动与基础观察 在界面右侧或下方的 Simulation control 面板上,点击大大的绿色 Start 按钮。仿真时间线开始走动,右边的速度滑块可以调节仿真速度(比实时更快或更慢)。

你会立刻看到一些变化:

  • 网络视图:节点之间可能出现了绿色的连线。这表示节点之间发现了彼此,并建立了无线连接(邻居关系)。Cooja的无线模型会模拟通信距离和链路质量,距离太远的节点之间不会有连线。
  • 节点颜色:节点的图标颜色可能会改变。在Cooja的默认设置中,这通常表示节点的状态,比如是否成为了RPL路由中的根节点(DODAG Root)。
  • 日志窗口:界面底部的输出日志开始刷屏。这是最宝贵的信息源!你会看到每个节点输出的调试信息。例如,服务器节点可能会打印“UDP server listening on port”,客户端节点会打印“Client connected to server”以及它发送的数据包序列号。

利用可视化工具深入洞察 光看节点和日志还不够直观。Cooja提供了一系列强大的可视化插件,能让你“看见”网络。

在菜单栏点击 Tools -> Network,这里可以勾选各种可视化工具。我强烈推荐打开这几个:

  • Radio Messages:勾选后,节点发送数据包时,你会看到有动画效果的小点在节点间移动,非常直观地展示了数据流向。
  • DGRM(Directed Graph Radio Medium):这个工具能以图形化的方式显示当前的无线连接关系,比单纯的绿色连线更详细。
  • RPL:如果仿真中运行了RPL协议,这个视图会显示路由拓扑,清晰地告诉你哪个节点是根,数据路径是如何构建的。

你可以把这些工具窗口拖到界面合适的位置。现在再点击仿真控制面板上的 Restart(先停止再开始),重新运行仿真。结合动态的无线电消息动画、RPL拓扑图以及滚动的日志,你会对整个网络的启动、邻居发现、RPL DODAG构建、以及最终的UDP数据收发有一个全景式的理解。这比读任何教科书都要生动。

5. 进阶玩法:修改代码与调试你的协议

只会跑现成的例子当然不够。我们的目标是学会开发自己的协议或应用。这就需要我们修改代码,重新编译,并加载到仿真中。

找到并修改示例代码 假设我们想修改客户端发送数据的行为。用终端或桌面上的文件浏览器,找到 contiki/examples/ipv6/rpl-udp/udp-client.c 文件,用文本编辑器(如gedit)打开它。

搜索代码中的主循环部分,你可能会找到一个每隔一段时间就发送数据的函数。例如,找到类似 static void send_packet(void) 的函数。在里面,你可以修改它发送的数据内容。比如,把原本发送一个简单字符串,改成发送一个随着时间变化的传感器读数(虽然是模拟的)。改完后保存文件。

在Cooja中更新固件 回到Cooja界面,首先停止仿真。然后,在左边“Mote Types”面板,找到你之前创建的“udp-client”节点类型,右键点击它,选择 “Reload firmware (C)”。

Cooja会重新编译你刚才修改过的 udp-client.c 文件。如果编译成功,所有属于“udp-client”这个类型的节点(也就是那8个客户端)的固件就自动更新了!你不需要删除重建节点。这是一个非常高效的工作流程。

使用Cooja内置调试器 Cooja甚至集成了一个简单的调试器。在节点上右键,选择 Mote tools for XXX -> Debug,可以打开一个调试窗口。这里你可以看到该节点程序的汇编代码、设置断点、单步执行、查看变量和内存。这对于深入分析程序逻辑、排查死锁或异常行为非常有帮助。虽然不如专业的IDE调试器强大,但对于嵌入式仿真来说,这功能已经非常实用了。

6. 仿真环境深度配置:让实验更贴近现实

默认的仿真环境可能有点“理想化”,比如无线电传播是理想的圆,没有外部干扰。为了让仿真更贴近真实世界,Cooja允许我们进行深度配置。

配置无线信道模型 在创建新仿真(New simulation)时,或者通过 Settings -> Radio medium,你可以选择不同的无线传播模型。除了默认的“Unit Disk Graph (UDG)”,还有:

  • Distance Loss:会考虑距离导致的路径损耗,信号强度随距离衰减。
  • ITU:使用国际电信联盟的模型,更复杂。
  • Multi-path Ray-tracer:多径射线追踪模型,能模拟反射、衍射,非常接近真实物理环境,但计算量也最大。

对于研究路由协议稳定性、链路质量估计等课题,选择一个合适的信道模型至关重要。

配置节点移动性 传感器节点不总是静止的。Cooja支持节点移动。在“Mote Types”创建时,你可以勾选“Enable mobility”。或者在仿真中,右键一个节点,选择 Mote tools -> Mobility。你可以设置移动路径(直线或自定义坐标点)、速度等。这对于研究移动自组织网络(MANET)或网络拓扑动态变化的影响非常有用。

控制仿真时间和种子 在Simulation control面板,你可以设置仿真的停止时间(Stop time),比如让仿真运行模拟的1小时就自动停止。前面提到的“Random seed”也非常重要。如果你想做一个可重复的实验,以便对比不同算法或参数的效果,一定要记录下每次仿真使用的随机种子。使用相同的种子,可以保证无线信道中的随机因素(如丢包)序列完全相同,这样你的对比才是公平的。

7. 从仿真到实践:下一步可以做什么?

当你熟练使用Cooja完成了一系列仿真实验后,你可能已经不满足于虚拟世界了。这时,你可以考虑向真实硬件过渡,而Contiki让这一步变得相对平滑。

为真实硬件编译 在Cooja中,我们一直选择的是“Sky mote”这个仿真平台。Contiki支持众多真实的硬件平台,比如TI的CC2538DK、Zolertia的Z1等。操作流程惊人地相似:你不需要改变你的应用层代码(比如那个udp-client.c),只需要在编译时指定不同的目标平台即可。

例如,在Instant Contiki的终端里,进入你的项目目录,使用make TARGET=z1这样的命令,就能编译出用于Z1硬件的固件。然后通过USB线将固件烧录到真实的节点上,这些节点就能运行你在仿真中调试好的程序了。

仿真与实物的差异 需要注意的是,仿真终究是模型。Cooja无法完美模拟硬件的所有细节,比如精确的功耗、芯片级的射频特性、复杂的环境电磁干扰等。因此,在仿真中跑得很好的协议,在真实硬件上可能需要做一些参数调优。但仿真的价值在于,它让你以极低的成本和极高的效率,完成了算法逻辑的验证、协议流程的学习和系统架构的设计,避免了在硬件调试初期陷入无尽的底层问题。我的经验是,用Cooja完成70%的设计和验证工作,再到硬件上做最后的30%适配和优化,这是最高效的学习和开发路径。

折腾Cooja的乐趣,就在于你能在短短几分钟内,构建一个复杂的网络场景,观察协议的每一个细微动作,并快速迭代你的想法。它就像给你的思维插上了翅膀,让你能自由地在无线传感器网络的世界里探索。

contiki_cooja仿真模拟教程 最近想学习一下无线传感器网络,慢慢接触了6LowPan和Ipv6以及RPL, 但是手里没有相关硬件,再机缘巧合的情况下发现了contiki,以及里面强大的模拟器。Description修改为server,选取examples/ipv6/rpl-udp/udp-server.c, 点击Complie,等待编译完成后点击Create.运行cooja得下载contiki源码以及搭建环境等一系列复杂步骤,但是我们可以通过直接下载官方虚拟机镜像运行,省去了搭建环境的麻烦。执行ant命令,进入主界面。 阅读详情

相关推荐

Contiki仿真模拟器Cooja的快速入门指南

本文是Contiki仿真模拟器Cooja的快速入门指南。通过使用官方虚拟机镜像Instant Contiki,无需真实硬件即可快速搭建仿真环境。指南详细演示了从启动Cooja、创建仿真、添加Sky Mote节点、编译UDP示例固件,到运行仿真并利用Network、Timeline等视图观察网络行为的完整流程,帮助初学者高效学习无线传感器网络协议与开发。

weixin_29201313的博客 76

在cooja上使用collectview

Cooja是Contiki无线嵌入式系统自带的网络模拟器,Cooja的功能十分强大,开发者通过使用Cooja可以建立基于软件的开发工程,对各种所支持的板进行模拟,而不需要硬件资源。 collectview是cooja中自带的工具,可以对WSN中的节点进行详细的分析,如占空比、能源消耗、网络结构图等。开始在cooja上使用collectview的过程中,遇到了许多问题,而且相关资料比较少,纠结了挺长

xiangwenchao的专栏 3533

RPL仿真实验全流程指南:从Cooja入门到性能分析实战

网络仿真是物联网与无线传感器网络领域的关键技术,通过在虚拟环境中构建、测试和分析网络协议行为,能够以极低成本验证算法收敛性、拓扑稳定性及复杂场景下的性能表现。其核心原理在于利用离散事件驱动或实时操作系统模拟,对网络节点、信道与数据流进行精确建模,从而高效评估路由协议的各项指标。这项技术的核心价值在于为协议设计、优化与部署提供可重复、可扩展且低风险的验证平台,尤其适用于低功耗有损网络(LLN)等资源受限环境。在物联网开发、学术研究和产品预研等场景中,仿真实验能帮助开发者深入理解如RPL(低功耗有损网络IPv6

corg81763的博客 472

contiki cooja仿真

    最近在做contiki平台上的一些cooja仿真的东西,发现现在网上能学到的东西实在是很有限,现在在这里将我最近学到的一些东西做一下总结。 一、 关于运行的一般步骤: https://www.zhihu.com/question/48708549/answer/139050874   知乎上这个问答已经相当详细了,可以满足一般的仿真需求;   对于有相当程度想要深入学习的人,co...

ljm1995的博客 7732

无线传感器网络仿真实战:用Cooja搭建RPL和6LowPAN测试环境(含udp-server/client配置)

本文详细介绍了如何使用Cooja仿真器搭建无线传感器网络的RPL和6LowPAN测试环境,包括UDP服务端与客户端的配置。通过Contiki操作系统的Cooja工具,开发者可以高效验证低功耗有损网络(LLN)的核心技术,实现从物理层到应用层的完整协议栈调试。文章还提供了环境准备、网络拓扑构建、RPL协议观察以及6LowPAN数据流测试的实战指南。

weixin_29239661的博客 86

Contiki新手必看:5分钟搞定Cooja仿真环境搭建(附虚拟机镜像下载)

本文为Contiki新手提供5分钟快速搭建Cooja仿真环境的完整指南,包含虚拟机镜像下载和详细配置步骤。通过官方预配置的Instant Contiki镜像,轻松绕过复杂的环境配置,快速开始无线传感器网络仿真实验。文章还深入解析了Cooja仿真器的核心功能和高级优化技巧,帮助用户高效完成物联网开发和研究。

weixin_42529366的博客 406

ubuntu下的contiki-ng仿真环境之cooja搭建

文章目录前言1.安装docker2.确保您的用户已添加到 unix 组docker3.下载 Contiki-NG 镜像:4.下载contiki-ng源码5.便于访问docker,起个别名6.安装完成,直接启动cooja 前言 此安装教程,在github上已经给出,因此大家可以参照,链接如下: 开发环境搭建教程 下面我来对步骤进行一下说明。 1.安装docker 我想docker文档上已经描述的很清楚了,链接如下: docker安装教程 文档教程说的非常详细,只需按步骤操作即可。最终显示如下,即可证明安装成功

zhuhongtu94的博客 2426

实验二十二——CoAP协议仿真实验

CoAP协议仿真实验 实验目的 理解CoAP协议的基本原理和实现 利用Cooja仿真器分析CoAP协议 实验原理和背景 物联网的典型应用层协议是受限应用协议(Constrained Application Protocol, CoAP),主要面向受限节点和低功耗有损网络环境的特制应用层Web传输,类似因特网中的HTTP。 实验环境和模块 本实验采用Contiki系统的Cooja仿真器。实验创建了1个CoAP服务器节点和一个边界路由节点,并采用tunslip6 连通边界路由和本地主机,使主机能访问CoAP服务

qq_47605698的博客 1605

RPL-UDP的cooja仿真过程

RPL原理以及流程,简单案例分析

WU20121212的博客 4193

Cooja 提供一个仿真环境,使开发人员能够看到他们的应用程序运行在大型网络,使得开发和调试变得更简单。

Cooja 是 Contiki 操作系统中的网络模拟器,Contiki 设备经常组成大型无线网络,Cooja 提供一个仿真环境,使开发人员能够看到他们的应用程序运行在大型网络,使得开发和调试变得更简单。 Contiki是一个小型、开源、极易移植的多任务电脑操作系统。它专门设计以适用于一系列的内存受限的网络系统,包括从8位电脑到微型控制器的嵌入系统。Contiki只需几千字节的代码和几百字节的内存就能提供多任务环境和内建TCP/IP支持。

基于Cooja仿真器的RPL网络实现.doc

无线 传感器网络结课大作业,基于Cooja仿真器的RPL网络实现

【 无线网络技术 】实验二十二、CoAP协议仿真实验

实验目的 理解CoAP协议的基本原理和实现 利用Cooja仿真器分析CoAP协议 实验步骤 打开终端 输入 cd contiki/tools/cooja 进入Cooja仿真器 选择实验 出现四个窗口 Simulation control 控制仿真开始停止或重新加载实验 NetWork 显示网络节点的物理布局 Mote output 显示节点输出信息 Radio message 捕获通信数据包 Radio message操作 Network查看节点信息 打开Serial Socket S

zwj 911

SEG-Y 数据介绍及读写

无

1万+

cooja的原理

最近一直在关注cooja的实现,看了很多源代码,大概理解了一点点,总结一下: 1,contiki的代码里面:platform目录里面有cooja这个平台,在这个平台里面有软件实现contiki仿真的底层实现: SYS 首先我们看到sys,这部分代码是软件实现了线程,与contiki里的线程是不同的,这个线程是linux平台的 NET 这里是net的抽象接口,与通常contiki平

持之以恒 4370

TensorRT-LLM环境配置避坑指南:从安装到实战

本文是一份详尽的TensorRT-LLM环境配置避坑指南。文章重点解析了从Python、CUDA、PyTorch版本选择,到解决mpi4py安装这一核心难题的完整流程,并提供了经过验证的稳定版本组合与实战排错方案,帮助开发者高效部署大语言模型推理优化环境。

a0b1c2d3的专栏 983

SRAM ECC原理与应用:从汉明码到高可靠嵌入式系统设计

在嵌入式系统与高可靠性计算领域,内存数据完整性是系统稳定运行的基石。软错误(Soft Error)由宇宙射线或芯片内部粒子引发,可能导致存储单元发生位翻转,进而引发程序跑飞或数据损坏。为应对这一物理层挑战,错误校验与纠正(ECC)技术应运而生,其核心原理基于扩展汉明码,通过增加校验位实现单错误纠正、双错误检测(SECDED)能力。这项技术通过硬件透明纠错,在提升系统可靠性的同时,几乎不影响访问性能。在汽车电子、工业控制及航空航天等对安全性要求极高的场景中,ECC已成为保障长期稳定运行的关键硬件机制。本文聚焦

weixin_28728265的博客 529

基于cooja的RPL OF的修改与仿真

为了使用contiki中的仿真软件cooja进行rpl组网实验,这里对以下网页进行翻译,以获取修改RPL objective function 的相关信息@RPL objective function modification and simulation in cooja 1、介绍 低功耗有损网络(RPL)的路由协议使用目标函数(OF)构建面向目标的有向无环图(DODAG)。目标函数根据某些算法...

mistletoe65的博客 2219

企业级智能问数开发的核心痛点与技术聚焦

本文介绍了企业级智能问数系统开发的三大核心问题和解决方案:语义解析不精准、SQL生成不健壮、企业适配难落地。文章从开发者视角出发,详细拆解了NLU语义解析、SQL生成、对话记忆、企业级适配四大核心模块的技术实现。 在技术选型方面,推荐了LangChain+DeepSeek-R1、FAISS/Milvus、SQLAlchemy等工具链组合。针对企业级需求,重点讲解了: 语义解析模块的意图识别优化和要素提取技术 SQL生成模块的语法校验与性能优化方案 对话记忆模块的Redis存储实现 企业级适配的三层防护体系和

lamehsl的专栏 1046

Contiki开发工具完全指南:Cooja模拟器的10个高级用法

Contiki是面向物联网的开源操作系统,而Cooja模拟器作为其核心开发工具,为开发者提供了强大的网络仿真环境。本文将详细介绍Cooja模拟器的10个高级用法,帮助开发者高效测试和调试物联网应用。 ## 1. 网络拓扑可视化与自定义 Cooja允许开发者通过直观的界面创建复杂的网络拓扑结构。在模拟环境中,您可以拖拽不同类型的节点,设置节点间的通信范围和链路质量,构建接近真实场景的物联网网络。

gitblog_00979的博客 1193

pytorch多层感知机实现假钞识别(完整项目构建)

目录1 项目构建2 超参数设置 config.py3 数据集预处理 preprocess.py4 数据集类构建 dataset_banknote.py5 模型构建 model.py6 训练trainer.py6.1 查看损失曲线7 在测试集上运行 inference.py 1 项目构建 构建项目文件夹Banknote,以及子文件夹与py文件。 名称 作用 data目录 存放原始数据与预处理后切分为训练集、验证机、测试集的数据 log目录 存放训练过程中保存的指标,如损失、精确度等

Demon_LMMan的博客 2026

手把手完整实现STM32+NB-IoT+MQTT+ThingsCloud云平台+手机APP(Android或iOS)及微信小程序及Web app 应用

本教程以远程温湿度显示及点灯作为示例。最终效果实现本地OLED显示屏、云平台和手机APP、微信小程序和Web App可远程查看温湿度数据,并可远程控制LED灯亮灭。以此完成基于MQTT协议的NB-IoT远程发布订阅数据,以此在本教程基础上可扩展开发更多的功能。

嵌入式阿齐Archie 2万+

RPL协议仿真理解

利用cooja完成对rpl协议的仿真

code120302的博客 1226

仿真模型简单介绍

同时,各种以伯克利的Spice仿真程序的算法为核心的商用Spice电路仿真工具也随之产生,运行在PC和UNIX平台,许多都是基于原始的SPICE2G6版的源代码,这是一个公开发表的版本,它们都在Spice的基础上做了很多实用化的工作,比较常见的Spice仿真软件有HSpice、Pspice、Spectre、Tspice、SmartSpcie、IsSpice等,虽然它们的核心算法雷同,但仿真速度、精度和收敛性却不一样,其中以Synopsys公司的Hspice和Cadence公司的Pspice最为著名。...

小幽余生不加糖 8001

Cooja中有关collect-view插件

最近一周折腾了cooja和collect-view,本来寄予厚望可以用其进行数据收集和绘图,结果令人失望。 Collect-View像timeline等一样,都是cooja的插件,这也是cooja保持扩展性的特点。 Collect-view是既可以单独使用,也可以在cooja仿真中被调用。单独使用的话好像只能在硬件实体测试的时候使用,可以参见Collect View那篇文章。本文主要就是介

团长的专栏 2637

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: Dify生产环境实战:从零搭建高可用AI平台的5个关键步骤
下一篇: Xcode 上传 ipa 实战指南:从 uni-app 打包到 App Store 审核全解析
普通网友
博客等级 码龄27年 204粉丝 1502原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值