1.物联网操作系统--zephyr介绍
2.å¦ä¹ ç©èç½åºç¨å·¥ç¨å¸ï¼ä»¥åè½ä»äºåªäºå·¥ä½å²ä½ï¼
3.聆思CSK6 视觉AI开发套件试用头肩、源码手势识别体验与PWM舵机控制
4.å¦ä¹ ç©èç½åºç¨å·¥ç¨å¸,解析以åè½ä»äºåªäºå·¥ä½å²ä½
物联网操作系统--zephyr介绍
起源
Zephyr,一个主打轻量级的源码开源软件平台,旨在成为物联网时代资源有限的解析中小设备的最佳选择,由Intel、源码Synopsys、解析琳琅网址导航源码NXP等公司于年创立,源码并由Linux基金会管理。解析其简洁的源码名字“微风”反映了Zephyr作为嵌入式软件平台的轻量级特性。与Linux等通用操作系统相比,解析Zephyr强调安全设计,源码尤其是解析信息安全与功能安全,旨在为物联网设备提供一个高效、源码安全的解析运行环境。
Zephyr的源码创立是基于物联网时代对嵌入式软件的更高要求,旨在创建一个开放、活跃的手机 源码 查看生态,以满足复杂化、平台化的趋势。物联网设备的碎片化特性并未减弱,相反,它们正在向更复杂的系统演进。在汽车电子、工业控制、医疗设备等领域,Zephyr提供了一种更为灵活、安全的解决方案,以适应不同应用领域的需求。
主要特点
Zephyr以其独特的特点在物联网软件平台领域中脱颖而出。开源是其核心优势之一,Zephyr的代码、文档和工具等大部分资料开源托管在GitHub上,提供详尽的plc 源码作用开发活动记录,包括代码提交、bug/issue列表、讨论记录、测试记录与结果、发布计划、路线图等。这使得Zephyr的开源和开发流程更加透明和易于跟踪。
自成立以来,Zephyr发展迅速,吸引了众多机构加入成为会员,形成了一个活跃的社区。根据GitHub的统计数据,截至年2月日,Zephyr的有效代码提交者达到名,总提交数为次,位居所有GitHub上类似平台之首。kali 2.0 源码这些数据反映了Zephyr社区的活跃度和开发者的积极参与。
安全设计是Zephyr的另一大亮点。它采用质量保证(QA)体系,应用测试驱动开发(Test-Driven-Development),构建了大量的开源测试用例,并通过自动化流程实现多方面的测试,包括代码风格检查、静态代码检查、单元测试、集成测试和文档生成等。此外,Zephyr在运行时通过硬件保护机制实现类似Linux的用户态/内核态隔离、堆栈溢出检测和可信执行环境(TEE),为设备提供强大的安全保护。
在功能安全方面,Zephyr正在筹备通过相关认证,圈子社区 源码如代码上应用MISRAC 标准,核心部件符合IEC标准,适用于汽车电子、工业控制、医疗设备等高可靠性需求的应用。
跨平台特性是Zephyr的一大优势,支持多种处理器架构,包括x、ARM、ARC、Tensilca以及RISCV等,支持超过个开发板。这使得Zephyr能够满足不同应用领域的硬件需求,实现更好的移植性和可扩展性。
治理模型
Zephyr的治理模型基于中立原则,由Linux基金会管理和运作,资金由会员公司的会费支持。理事会、技术委员会和社区构成了Zephyr的治理结构,确保项目的持续发展和社区的积极参与。理事会负责战略决策、商务和市场活动,技术委员会是最高技术决策机构,社区则作为开发和用户活动的基础。这一治理模型促进了Zephyr生态的健康发展,吸引了来自不同背景的开发者和用户参与。
Apache 2.0许可证的采用为Zephyr提供了商业友好的许可环境,用户可以在商业用途下使用Zephyr而无需开放源码。对于外部集成模块,Zephyr也尽可能选择兼容Apache 2.0许可证的模块,以避免许可证污染。
在系统框架方面,Zephyr内核是一个实时内核,具备实时内核的全部功能,包括任务调度、任务间同步、数据传输、内存管理等。Zephyr构建了设备驱动框架,网络协议栈,以及支持信息安全、功能安全的组件,为物联网应用提供了完整的开发环境。此外,Zephyr还提供了长期支持版(LTS)以满足可靠性要求高的应用,同时通过一系列认证,如ARM PSA Level 1认证,增强开发者和用户对Zephyr的信心。
Zephyr的治理模型和系统框架旨在构建一个开放、灵活、安全的物联网操作系统平台,满足物联网时代对嵌入式软件的高要求,提供高效、稳定、可靠的服务。
å¦ä¹ ç©èç½åºç¨å·¥ç¨å¸ï¼ä»¥åè½ä»äºåªäºå·¥ä½å²ä½ï¼
ç©èç½åºç¨å·¥ç¨å¸ç人æ群ä½ï¼ä¸»ä½åºè¯¥å æ¬ITåOTå·¥ç¨å¸ãä»äºæ¹å大æ¦æï¼æºæ §äº¤éãç¯å¢ä¿æ¤ãæ¿åºå·¥ä½ãå ¬å ±å®å ¨ãå¹³å®å®¶å± ãæºè½æ¶é²ãå·¥ä¸çæµãç¯å¢çæµãè人æ¤çã个人å¥åº·ãè±åæ ½å¹ãæ°´ç³»çæµãé£å溯æºãææ 侦æ¥åæ æ¥æéçå¤ä¸ªé¢åèå ·ä½
å·¥ä½å²ä½æï¼ç¡¬ä»¶è®¾è®¡å¸ãåµå ¥å¼åºä»¶å¼å人åãæ 线é讯ä¸å®¶ ãå端å¼å人å ãå端å¼å人å ãåºç¨å¼å人å ãèªå¨åä¸ç³»ç»éæå·¥ç¨å¸ ãæ°æ®ç§å¦å®¶çã
硬件设计å¸ï¼å¤§å¤æ°ç©èç½é¡¹ç®é½æ¶åæç§å½¢å¼çå®å¶ç¡¬ä»¶è®¾è®¡ã硬件çå¤æ度å 项ç®èå¼ãå¨æäºæ åµä¸ï¼ä½¿ç¨ç¡¬ä»¶æ¨¡åååè设计ï¼åºç¡ç¥è¯åçµæ°å·¥ç¨ç¥è¯å°±è¶³å¤äºãèæäºæ´å¤æç项ç®åéè¦æ´å¤çç»éªåä¸ä¸ç¥è¯ã常è§çææ¯æå°å·çµè·¯æ¿ï¼PCBï¼è®¾è®¡ãæ 线çµé¢çä¸å¤©çº¿è®¾è®¡ãæ¶éï¼ä¿¡å·è·¯ç±ç¸å ³çç»éªãä½åè设计ååèä¼åç
åµå ¥å¼åºä»¶å¼å人åï¼è®©ç¡¬ä»¶åæ¥ä½ç¨ï¼ä½ å°±éè¦åµå ¥å¼å¼å人åãä»ä»¬æ¯ä»äºæåºå±ãææ¥è¿è£¸æºç¡¬ä»¶ç软件å¼å人åãè¿æ ·ç软件称为åºä»¶ï¼ä»äºè½¯ä»¶å硬件ä¹é´çåºä»¶ï¼ãä¸è¬è¿äºå¼å人åçèæ¯ç»åäºçµæ°å·¥ç¨ã计ç®æºä½ç³»ç»æå软件å¼åãåµå ¥å¼å¼å人åçå·¥ä½éè¦ä¸æç»ç¡¬ä»¶çååçæ¬æ交éï¼å æ¤é常ä»ä»¬çåå ¬æ¡çèµ·æ¥é½å¾åä¹±ã 常è§çææ¯æç¼ç¨è¯è¨ï¼Cãæ±ç¼è¯è¨ãC++ï¼ãå®æ¶æä½ç³»ç»ï¼RTOSï¼ç»éªï¼FreeRTOSãContikiãZephyrï¼ãåµå ¥å¼Linuxãæºä»£ç çæ¬æ§å¶ãç©çåä¿¡æ¯å®å ¨ç
æ 线é讯ä¸å®¶ï¼å¤§å¤æ°ç©èç½é¡¹ç®é½æ¯æ 线çï¼ä½æ 线ææ¯é½å¾é¾ï¼å 为æ 线éç©çä¸è½¯ä»¶çåéå¤æ度äºä¸èº«ãé常æ 线éä¿¡ä¸å®¶é½æ¥èªæ 线éä¿¡ãç½ç»åè®®å软件å¼åã对äºå¤§åç©èç½ç³»ç»æ¥è¯´ï¼æ¥ææ 线éä¿¡çä¸é¿æè½éå½å°ç¡®å®ç½ç»ä¸é信模å¼ãèæ¶è´¹çº§ç©èç½ç³»ç»åéè¦æ 线éä¿¡ä¸é¿æ¥ç¡®ä¿éè¿èç顺å©å°å°è®¾å¤è¿æ¥å°ç¨æ·çæºè½ææºã 常è§çææ¯æç½ç»æ¨¡æãæ 线ç½æ ¼ç½ç»ã对æ çº¿ä¼ æææ¯çææ¡ã对åèçææ¡ãåè®®ï¼TCP/IPãIPv4ãIPv6ãRPLãTLSãWiFiãèçã6lowpanãZigBeeãLoRAãMQTTãCoAPï¼
å端å¼å人åï¼å¨ç©èç½ç³»ç»ä¸ï¼å端éè¦å¤çæ°æ®åºååºç¨ç¨åºé»è¾ãé常ï¼å端é½é¨ç½²å¨äºä¸»æºä¸ï¼å¹¶è´è´£åå¨æ¥èªç©èç½è®¾å¤çæ°æ®ã对ç¨æ·è¿è¡èº«ä»½éªè¯ã为å端以åä¸å ¶ä»ç³»ç»çéææä¾APIã 常è§çææ¯æç¼ç¨è¯è¨ï¼JavaScriptãGoãPythonãRubyï¼ãæ°æ®åºï¼MySQLãMongoDBãRedisï¼ãå¼åè¿ç»´ç»éªãäºå¹³å°ï¼äºé©¬éçAWSãHerokuã微软çAzureï¼
å端å¼å人åï¼å¤§å¤æ°ç©èç½é¡¹ç®é½æç½é¡µå½¢å¼çå端ãç¨æ·å¯ä»¥éè¿è¿ç±»ç½é¡µä¸ç³»ç»äº¤äºãå æ¤ï¼è¿äºç½é¡µéè¦åå°æäºä½¿ç¨ãå®å ¨ãå¯å¨æ常è§çWebæµè§å¨ä¸è¿è¡å¹¶ä¿æææ°ç¶æãè¿äºå端æ¯ç¨HTMLå¼åçï¼èä¸é常é½ä¼éç¨æäºç°æçJavaScriptå端æ¡æ¶ãå端å¼å人åéè¦éè¿å¤§éè¾åºå°ç½é¡µä¸çææ¬æ¥å建è§è§ä½éªã 常è§çææ¯æUI/UX设计ãç¨æ·è®¿è°ä¸äººæºäº¤äºçç»éªãHTMLãCSSãJavascriptãWebå¼åæ¡æ¶ï¼Vue.jsãReactãBootstrapï¼
åºç¨å¼å人åï¼è®¸å¤é¢åç¨æ·çç©èç½é¡¹ç®é½éè¦ä½¿ç¨ç§»å¨åºç¨ä½ä¸ºç¨æ·çé¢ãéç项ç®çæ¨è¿ï¼ç§»å¨åºç¨ä½éªçéè¦æ§è¶æ¥è¶çªåºãé常ï¼æ们éè¦å¼ååç»´æ¤ä¸¤ä¸ªçæ¬ï¼iOSåAndroidãææ¶ä¹å¯ä»¥å¼åæ··ååçåºç¨ï¼é常ç¨HTMLå¼åï¼ã大å¤æ°åºç¨å¼å人åé½æ¸ æ¥åçä¸æ··åæ¡æ¶çä¼ç¼ºç¹ã 常è§çææ¯æAndroidãiOSå¼ååç/æ··åæ¡æ¶ï¼Phonegap/CordovaãIonicãAngularãReactãVueï¼ãç¼ç¨è¯è¨ï¼JavaãSwiftãObjective CãJavaScriptï¼
èªå¨åä¸ç³»ç»éæå·¥ç¨å¸ï¼è®¸å¤ç©èç½é¡¹ç®é½éè¦ä¸ç°æ软件éæã软件éææ¯ä¸é¡¹ç»å¸¸è¢«ä½ä¼°çä»»å¡ï¼æ们常常éè¦è±è´¹å¤§éç²¾åï¼è¿ç¨ä¸å¥ç¹å®çææ¯æè½åå¾æåãæ¤å¤ï¼ä¸æ¦è½¯ä»¶éæå¼å§ï¼ä½ å°±å¿ é¡»ç¡®ä¿éæä¿ææ£å¸¸è¿è¡ãè¿æ¶æ们就éè¦éç¨èªå¨æµè¯ãç³»ç»éæåèªå¨åå·¥ç¨å¸éè¦æ¥æ大éå®è·µç»éªååæ°ï¼å 为è¿æ¯ä¸é¡¹è°å·¨çå·¥ä½ã 常è§çææ¯æèªå¨æµè¯æ¡æ¶ï¼JenkinsãMochaãTravisï¼ãREST APIãç¼ç¨è¯è¨ï¼JavascriptãJavaãPythonãBashï¼
æ°æ®ç§å¦å®¶ï¼ç©èç½é¡¹ç®é½éè¦å´ç»æ°æ®å±å¼ï¼èä¸ä½ éè¦å åå©ç¨è¿äºæ°æ®ãå¨é¡¹ç®çæ©æé¶æ®µï¼è¿é¨åçå·¥ä½å¯è½å¾ç®åï¼åªéå°å ³é®ç»©æææ æ¾å ¥Excelå·¥ä½è¡¨ä¸è¿è¡æ¯è¾å³å¯ãä½æ¯éç项ç®çåå±ï¼ä½ éè¦é对æ°æ®å±å¼æ´æ·±å ¥çåæãè¿æ¶å°±éè¦æ°æ®ç§å¦å®¶ç帮å¿ãæ°æ®ç§å¦å®¶å¯ä»¥éè¿å¤æçæ°æ®ï¼å¯»æ¾æ¨¡å¼ä»¥åå¯ä»è¯¸è¡å¨çä¿¡æ¯ï¼èè¿ææ¯æ°æ®çæç»ä»·å¼ã 常è§çææ¯æç»è®¡ã人工æºè½ãæºå¨å¦ä¹ ãæ°æ®ææãç¼ç¨è¯è¨ï¼MatlabãRãPythonï¼
聆思CSK6 视觉AI开发套件试用头肩、手势识别体验与PWM舵机控制
聆思科技与极术社区联合组织的CSK6视觉AI开发套件活动已让《酷电玩家》带来了深度的开发体验。本次分享针对AI识别应用与PWM舵机控制两大功能进行全面介绍,并通过步骤分解详述实现过程。环境搭建
首先,通过官方文档指引,在环境搭建部分完成以下步骤:下载Git并安装,安装lisa zep工具以初始化CSK6 SDK开发环境,然后进行开发环境验证。获取源码
操作中使用Git获取Sample项目与SDK到本地环境,可自动完成初始化。AI案例体验
通过VSCODE打开项目结构,其中prj.conf文件是工程配置的关键。更改配置CONFIG_WEBUSB=n至CONFIG_WEBUSB=y,以便在后续测试阶段使用PC工具预览功能。接下来,完成固件编译与烧录,并通过USB接口烧录至CSK6开发板。安装与调试工具
工具预览使用Edge浏览器加载csk_view_finder_spd/src目录下index.html页面。完成Windows系统驱动安装,确保CSK6 USB端口能被系统识别。PWM舵机控制
对于引脚定义与设备树概念,开发者在.sdk\zephyr\dts文件中获取详细信息。选择适合的PWM通道与引脚(例如GPIOB , GPIOB 等),并在主程序中配置PWM控制与舵机驱动代码。总结
上述步骤涵盖CSK6视觉AI开发套件的基本操作,从环境搭建、代码获取到AI应用体验与PWM舵机控制实现。结合头肩识别与坐标信息,进一步实现动态头肩跟踪功能成为可能。完整代码实现与进阶功能探索请参阅官方文档。å¦ä¹ ç©èç½åºç¨å·¥ç¨å¸,以åè½ä»äºåªäºå·¥ä½å²ä½
ç©èç½åºç¨å·¥ç¨å¸ç人æ群ä½ï¼ä¸»ä½åºè¯¥å æ¬ITåOTå·¥ç¨å¸ãä»äºæ¹å大æ¦æï¼æºæ §äº¤éãç¯å¢ä¿æ¤ãæ¿åºå·¥ä½ãå ¬å ±å®å ¨ãå¹³å®å®¶å± ãæºè½æ¶é²ãå·¥ä¸çæµãç¯å¢çæµãè人æ¤çã个人å¥åº·ãè±åæ ½å¹ãæ°´ç³»çæµãé£å溯æºãææ 侦æ¥åæ æ¥æéçå¤ä¸ªé¢åèå ·ä½
å·¥ä½å²ä½æï¼ç¡¬ä»¶è®¾è®¡å¸ãåµå ¥å¼åºä»¶å¼å人åãæ 线é讯ä¸å®¶ ãå端å¼å人å ãå端å¼å人å ãåºç¨å¼å人å ãèªå¨åä¸ç³»ç»éæå·¥ç¨å¸ ãæ°æ®ç§å¦å®¶çã
硬件设计å¸ï¼å¤§å¤æ°ç©èç½é¡¹ç®é½æ¶åæç§å½¢å¼çå®å¶ç¡¬ä»¶è®¾è®¡ã硬件çå¤æ度å 项ç®èå¼ãå¨æäºæ åµä¸ï¼ä½¿ç¨ç¡¬ä»¶æ¨¡åååè设计ï¼åºç¡ç¥è¯åçµæ°å·¥ç¨ç¥è¯å°±è¶³å¤äºãèæäºæ´å¤æç项ç®åéè¦æ´å¤çç»éªåä¸ä¸ç¥è¯ã常è§çææ¯æå°å·çµè·¯æ¿ï¼PCBï¼è®¾è®¡ãæ 线çµé¢çä¸å¤©çº¿è®¾è®¡ãæ¶éï¼ä¿¡å·è·¯ç±ç¸å ³çç»éªãä½åè设计ååèä¼åç
åµå ¥å¼åºä»¶å¼å人åï¼è®©ç¡¬ä»¶åæ¥ä½ç¨ï¼ä½ å°±éè¦åµå ¥å¼å¼å人åãä»ä»¬æ¯ä»äºæåºå±ãææ¥è¿è£¸æºç¡¬ä»¶ç软件å¼å人åãè¿æ ·ç软件称为åºä»¶ï¼ä»äºè½¯ä»¶å硬件ä¹é´çåºä»¶ï¼ãä¸è¬è¿äºå¼å人åçèæ¯ç»åäºçµæ°å·¥ç¨ã计ç®æºä½ç³»ç»æå软件å¼åãåµå ¥å¼å¼å人åçå·¥ä½éè¦ä¸æç»ç¡¬ä»¶çååçæ¬æ交éï¼å æ¤é常ä»ä»¬çåå ¬æ¡çèµ·æ¥é½å¾åä¹±ã 常è§çææ¯æç¼ç¨è¯è¨ï¼Cãæ±ç¼è¯è¨ãCï¼ãå®æ¶æä½ç³»ç»ï¼RTOSï¼ç»éªï¼FreeRTOSãContikiãZephyrï¼ãåµå ¥å¼Linuxãæºä»£ç çæ¬æ§å¶ãç©çåä¿¡æ¯å®å ¨ç
æ 线é讯ä¸å®¶ï¼å¤§å¤æ°ç©èç½é¡¹ç®é½æ¯æ 线çï¼ä½æ 线ææ¯é½å¾é¾ï¼å 为æ 线éç©çä¸è½¯ä»¶çåéå¤æ度äºä¸èº«ãé常æ 线éä¿¡ä¸å®¶é½æ¥èªæ 线éä¿¡ãç½ç»åè®®å软件å¼åã对äºå¤§åç©èç½ç³»ç»æ¥è¯´ï¼æ¥ææ 线éä¿¡çä¸é¿æè½éå½å°ç¡®å®ç½ç»ä¸é信模å¼ãèæ¶è´¹çº§ç©èç½ç³»ç»åéè¦æ 线éä¿¡ä¸é¿æ¥ç¡®ä¿éè¿èç顺å©å°å°è®¾å¤è¿æ¥å°ç¨æ·çæºè½ææºã 常è§çææ¯æç½ç»æ¨¡æãæ 线ç½æ ¼ç½ç»ã对æ çº¿ä¼ æææ¯çææ¡ã对åèçææ¡ãåè®®ï¼TCP/IPãIPv4ãIPv6ãRPLãTLSãWiFiãèçã6lowpanãZigBeeãLoRAãMQTTãCoAPï¼
å端å¼å人åï¼å¨ç©èç½ç³»ç»ä¸ï¼å端éè¦å¤çæ°æ®åºååºç¨ç¨åºé»è¾ãé常ï¼å端é½é¨ç½²å¨äºä¸»æºä¸ï¼å¹¶è´è´£åå¨æ¥èªç©èç½è®¾å¤çæ°æ®ã对ç¨æ·è¿è¡èº«ä»½éªè¯ã为å端以åä¸å ¶ä»ç³»ç»çéææä¾APIã 常è§çææ¯æç¼ç¨è¯è¨ï¼JavaScriptãGoãPythonãRubyï¼ãæ°æ®åºï¼MySQLãMongoDBãRedisï¼ãå¼åè¿ç»´ç»éªãäºå¹³å°ï¼äºé©¬éçAWSãHerokuã微软çAzureï¼
å端å¼å人åï¼å¤§å¤æ°ç©èç½é¡¹ç®é½æç½é¡µå½¢å¼çå端ãç¨æ·å¯ä»¥éè¿è¿ç±»ç½é¡µä¸ç³»ç»äº¤äºãå æ¤ï¼è¿äºç½é¡µéè¦åå°æäºä½¿ç¨ãå®å ¨ãå¯å¨æ常è§çWebæµè§å¨ä¸è¿è¡å¹¶ä¿æææ°ç¶æãè¿äºå端æ¯ç¨HTMLå¼åçï¼èä¸é常é½ä¼éç¨æäºç°æçJavaScriptå端æ¡æ¶ãå端å¼å人åéè¦éè¿å¤§éè¾åºå°ç½é¡µä¸çææ¬æ¥å建è§è§ä½éªã 常è§çææ¯æUI/UX设计ãç¨æ·è®¿è°ä¸äººæºäº¤äºçç»éªãHTMLãCSSãJavascriptãWebå¼åæ¡æ¶ï¼Vue.jsãReactãBootstrapï¼
åºç¨å¼å人åï¼è®¸å¤é¢åç¨æ·çç©èç½é¡¹ç®é½éè¦ä½¿ç¨ç§»å¨åºç¨ä½ä¸ºç¨æ·çé¢ãéç项ç®çæ¨è¿ï¼ç§»å¨åºç¨ä½éªçéè¦æ§è¶æ¥è¶çªåºãé常ï¼æ们éè¦å¼ååç»´æ¤ä¸¤ä¸ªçæ¬ï¼iOSåAndroidãææ¶ä¹å¯ä»¥å¼åæ··ååçåºç¨ï¼é常ç¨HTMLå¼åï¼ã大å¤æ°åºç¨å¼å人åé½æ¸ æ¥åçä¸æ··åæ¡æ¶çä¼ç¼ºç¹ã 常è§çææ¯æAndroidãiOSå¼ååç/æ··åæ¡æ¶ï¼Phonegap/CordovaãIonicãAngularãReactãVueï¼ãç¼ç¨è¯è¨ï¼JavaãSwiftãObjective CãJavaScriptï¼
èªå¨åä¸ç³»ç»éæå·¥ç¨å¸ï¼è®¸å¤ç©èç½é¡¹ç®é½éè¦ä¸ç°æ软件éæã软件éææ¯ä¸é¡¹ç»å¸¸è¢«ä½ä¼°çä»»å¡ï¼æ们常常éè¦è±è´¹å¤§éç²¾åï¼è¿ç¨ä¸å¥ç¹å®çææ¯æè½åå¾æåãæ¤å¤ï¼ä¸æ¦è½¯ä»¶éæå¼å§ï¼ä½ å°±å¿ é¡»ç¡®ä¿éæä¿ææ£å¸¸è¿è¡ãè¿æ¶æ们就éè¦éç¨èªå¨æµè¯ãç³»ç»éæåèªå¨åå·¥ç¨å¸éè¦æ¥æ大éå®è·µç»éªååæ°ï¼å 为è¿æ¯ä¸é¡¹è°å·¨çå·¥ä½ã 常è§çææ¯æèªå¨æµè¯æ¡æ¶ï¼JenkinsãMochaãTravisï¼ãREST APIãç¼ç¨è¯è¨ï¼JavascriptãJavaãPythonãBashï¼
æ°æ®ç§å¦å®¶ï¼ç©èç½é¡¹ç®é½éè¦å´ç»æ°æ®å±å¼ï¼èä¸ä½ éè¦å åå©ç¨è¿äºæ°æ®ãå¨é¡¹ç®çæ©æé¶æ®µï¼è¿é¨åçå·¥ä½å¯è½å¾ç®åï¼åªéå°å ³é®ç»©æææ æ¾å ¥Excelå·¥ä½è¡¨ä¸è¿è¡æ¯è¾å³å¯ãä½æ¯éç项ç®çåå±ï¼ä½ éè¦é对æ°æ®å±å¼æ´æ·±å ¥çåæãè¿æ¶å°±éè¦æ°æ®ç§å¦å®¶ç帮å¿ãæ°æ®ç§å¦å®¶å¯ä»¥éè¿å¤æçæ°æ®ï¼å¯»æ¾æ¨¡å¼ä»¥åå¯ä»è¯¸è¡å¨çä¿¡æ¯ï¼èè¿ææ¯æ°æ®çæç»ä»·å¼ã 常è§çææ¯æç»è®¡ã人工æºè½ãæºå¨å¦ä¹ ãæ°æ®ææãç¼ç¨è¯è¨ï¼MatlabãRãPythonï¼