万事起头难,不开始就不难 ᕕ( ゚ ∀。)ᕗ
第一篇文章有请柴柴镇楼 (´∀`),开始挖坑!
首先让我们从认识陌生朋友开始。
一般而言,我们都会根据具体需求设计专用韧体,烧入单晶片中,但是这次主题是 Modern Web,所以我们这次不写任何韧体,而是直接使用 Firmata。
(如果我写一篇将 MCU 当成游戏服务器,提供 SPA 网页游戏,并透过 Websocket 让大家连线对战的主题,会有人想看吗?(´,,•ω•,,))
所以 Firmata 什麽鬼?能吃吗?别急,接下来我们来依序认识此主题中几个主要专有名词。
同时介绍我们的吉祥物兼小助教「麻糬」登场!
接下来麻...电子助教会穿插在各种图解中,协助大家理解概念。
「电」的某些性质与「水」类似,为了方便理解,有时会用水来类比电。
又称微控制器单元(microcontroller unit,MCU),一般而言就是将 CPU、RAM、ROM 和各类 I/O 介面整合成一个积体电路,可以透过烧入自订韧体达成读取、计算、输出等等功能。
其中最出名的开发平台非 Arduino 莫属,Arduino Uno 电路板就算没用过可能都有看过,如下图:
是这一个才对:
刚才提到 MCU 可以烧入自制韧体,也就是说一开始 MCU 里面就和星期一上班的脑袋一样都是空空的,需要烧入韧体才能进行通讯或控制。
(实际上不会完全空,可能会有 bootloader 等等,不过并非此次主题,就不展开讨论。)
而 Firmata 是一个完整的控制协定,描述了如何利用通讯进行 I/O 控制,只要依照 Firmata Protocol 的内容发送命令,就可以控制 MCU 上对应的功能,正如官方文档所说的:
Firmata is a protocol for communicating with microcontrollers from software on a computer (or smartphone/tablet, etc). The protocol can be implemented in firmware on any microcontroller architecture as well as software on any computer software package (see list of client libraries below).
换个比喻,Firmata 就像一个已经设计完成的菜单,只要依照菜单规定的内容(协定),就可以简单的取得对应的餐点(资料),不用自己从头设计原料、烹调、摆盘等等细节(扩展性、强健性)。
顾名思义就是指透过资料通道,每次传输一个位元的通讯方式。
Arduino Uno 上有内建多种通讯界面,其中最常用的是 UART。透过 USB 线将 Arduino Uno 接上电脑所使用的介面便是 Uno 的 UART。
将 Arduino Uno 透过 USB 线接上电脑後,电脑的连接埠会跑出对应的 COM。
以往要呼叫 COM 进行通讯都会需要有对应权限的应用程序。如果网页要取得 COM 资料,通常都是开启一个 Web Server 作为中介,而 Web Serial API 则可以让 JavaScript 可以透过浏览器,直接存取 COM。
不过目前支援的浏览器很少,下图是目前的支援度列表(2021/08/30):
(没想到 Opera 竟然有支援,还以为只能在 Chrome 上自嗨呢 ᕕ( ゚ ∀。)ᕗ)
以上介绍完毕,接下来我们正式开始吧!
由於本篇不是基础教学文(窝怕误人子弟 ( ´•̥̥̥ ω •̥̥̥` )),所以以下内容不会特别说明:
(所有程序码都会放在 GitLab 上让大家下载,可以慢慢研究)
接下来预期的内容与技术:
介面呈现
使用 Web 技术设计一个类 Windows 的介面
Firmata Protocol
阅读协定并设计收发模组
电子零件
功能应用
那就让我们开始吧!
以下影片是最後的成果,大家可以参考看看 (๑•́ ₃ •̀๑)
希望大家会期待後续内容 (´,,•ω•,,)
<<: Day 03:不用三分钟,建立第一个 Angular 专案范本
英文对工程师来说是非常重要可以说是必备的技能之一。很多最新的技术介绍或是文件,几乎都是用英文撰写,如...
前言 终於在 Day28 的文章提到标题的 Next.js 了XD 这也是本系列文的源头,我开始学前...
前言 本来想要跳过这章直接进入正题,但如果写那些攻击原理的时候边讲HTTP的东西,感觉会有点混乱,於...
今天要来分享我看 Youtube 影片做出来的 timer, 照惯例先放影片连结, 用他里面提到的观...
戳泡泡 ( 视讯侦测 ) 教学原文参考:戳泡泡 ( 视讯侦测 ) 这篇文章会介绍,如何在 Scrat...