3dwoo大學簡體電腦書店
JavaScript物聯網硬件編程
( 簡體 字)
作者:[美] 麗薩·丹吉·加德納(Lyza Danger Gardner)著 戢禮晉 譚少輝 許琛 譯類別:1. -> 程式設計 -> 物聯網
   2. -> 程式設計 -> 網路編程 -> Javascript
出版社:清華大學出版社JavaScript物聯網硬件編程 3dWoo書號: 51780
詢問書籍請說出此書號!
有庫存
NT售價: 490
出版日:8/1/2019
頁數:432
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302531098 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第Ⅰ部分針對JavaScript開發者的硬件介紹
第1章將JavaScript與硬件結合3
1.1硬件項目剖析4
1.1.1輸入與輸出4
1.1.2處理過程5
1.1.3電源、電路和系統6
1.1.4邏輯和固件8
1.1.5外殼和封裝9
1.1.6嵌入式系統10
1.2JavaScript和硬件如何協同工作10
1.2.1宿主機-客戶端方法10
1.2.2嵌入式JavaScript13
1.2.3其他硬件-JavaScript組合15
1.3JavaScript非常適合硬件項目嗎18
1.4整合硬件工具包19
1.4.1開發板19
1.4.2輸入和輸出元件20
1.4.3其他電子元件21
1.4.4電源、電線和附件21
1.4.5工具22
1.5本章小結24
第2章用Arduino開啟硬件之旅25
2.1了解ArduinoUno27
2.2使用Arduino的工作流程32
2.2.1ArduinoUno的數字引腳32
2.2.2草圖和ArduinoIDE33
2.2.3將LED連接到數字引腳35
2.2.4對LED進行編程使其閃爍36
2.3使用JavaScript控制Arduino39
2.3.1將Arduino配置為客戶端39
2.3.2安裝Node.js框架Johnny-Five41
2.3.3用Johnny-Five讓HelloWorld的LED閃爍42
2.3.4Firmata、Johnny-Five和宿主機-客戶端方法42
2.3.5使用Johnny-Five組織腳本44
2.4本章小結46
第3章如何構建電路47
3.1電壓、電流和電阻48
3.1.1歐姆定律52
3.1.2問題和危險54
3.2構建電路55
3.2.1使用面包板制作原型電路55
3.2.2在面包板上連接簡單的LED電路56
3.2.3用按鈕擴展串聯電路63
3.2.4串聯LED65
3.2.5并聯電路和分流器69
3.2.6用電池為項目供電75
3.3本章小結76
第Ⅱ部分項目基礎:使用Johnny-Five輸入和輸出
第4章傳感器和輸入81
4.1使用模擬傳感器84
4.1.1模數轉換84
4.1.2光敏電阻的使用85
4.1.3分壓器89
4.1.4布線和使用光敏電阻92
4.1.5使用模擬溫度傳感器97
4.2數字輸入101
4.3本章小結106
第5章輸出:讓事情發生107
5.1點亮LED108
5.1.1使用脈沖寬度調制(PWM)使LED變暗109
5.1.2使用PWM讓LED做動畫113
5.1.3將輸入與LED輸出結合117
5.1.4全彩RGBLED122
5.1.5構建你自己的“氣象球”122
5.2使用并行LCD顯示器126
5.2.1用LCD制作功能齊全的定時器126
5.2.2添加可視的LED“鈴聲”138
5.3用壓電器制造噪聲141
5.4本章小結145
第6章輸出:讓物體運動147
6.1讓電動機運轉148
6.1.1電動機的工作方式149
6.1.2使用按壓按鈕開關控制電動機151
6.1.3用Johnny-Five控制電動機156
6.2制作伺服器159
6.3制作你的第一個機器人165
6.3.1機器人和電動機167
6.3.2制作機器人的基礎底盤169
6.3.3控制機器人的電動機170
6.4本章小結181
第Ⅲ部分更復雜的項目
第7章串行通信185
7.1并行和串行通信數字數據187
7.2串行通信的基礎知識188
7.3異步串行通信189
7.3.1UART191
7.3.2使用GPS擴展板試用軟件串口192
7.3.3學習焊接194
7.3.4構建GPS電路198
7.4同步串行通信200
7.4.1串行外圍設備接口(SPI)201
7.4.2I2C202
7.4.3使用I2C磁力計制作數字羅盤204
7.5整合在一起:搖動-改變多傳感器部件206
7.5.1步驟1:將羅盤與LCD輸出相結合207
7.5.2步驟2:向設備中添加多傳感器210
7.5.3步驟3:更新顯示屏,顯示溫度和壓力211
7.5.4步驟4:使用加速度計添加搖動-交換顯示功能213
7.6本章小結217
第8章無線項目219
8.1為什么你還要使用數據線221
8.1.1數據交換、I/O層和I/O插件221
8.1.2USB充當電源222
8.1.3無線項目通信的選項223
8.2使用Tessel2實現無線項目225
8.3設置Tessel226
8.3.1配置Tessel226
8.3.2在Tessel上運行“HelloWorld”LED閃爍代碼229
8.3.3通過Tessel閃爍外部的LED231
8.3.4探索Tessel的引腳和功能235
8.4基于Tessel的無線項目236
8.5用電池為項目供電252
8.6本章小結259
第9章自己制作硬件261
9.1消費電子產品開發263
9.2用Johnny-Five插件控制遠程開關270
9.2.1開關項目的原型設計270
9.2.2編寫RemoteSwitch插件274
9.3編寫復雜硬件的軟件280
9.3.1項目:Johnny-Five支持APDS-9660手勢傳感器281
9.3.2實現構造函數和初始化方法293
9.3.3集成手勢傳感器和遠程開關299
9.3.4將整個項目整合在一起303
9.4本章小結305
第Ⅳ部分在其他環境中的硬件上使用JavaScript
第10章JavaScript和受限制的硬件309
10.1EspruinoPico平臺311
10.1.1設置Pico312
10.1.2HelloWorld版的LED閃爍313
10.2了解新平臺315
10.2.1了解平臺的核心功能316
10.2.2查找引腳圖318
10.2.3了解配置和工作流程319
10.2.4查找示例和教程319
10.2.5使用API參考文檔319
10.3試驗Pico320
10.3.1Pico和BMP180多傳感器320
10.3.2Pico和Nokia5110液晶顯示器323
10.3.3使用Pico構建高效的天氣小工具329
10.4試驗KinomaElement平臺332
10.4.1Element的核心功能333
10.4.2引腳和硬件圖333
10.4.3配置、管理和工作流程334
10.4.4示例和教程335
10.4.5API參考336
10.4.6案例研究項目:實時更新羅盤讀數336
10.5本章小結344
第11章使用Node.js和微型計算機進行硬件開發347
11.1使用微型計算機349
11.1.1RaspberryPi平臺350
11.1.2配置方式1:傳統方式354
11.1.3配置方式2:無頭配置355
11.2了解RaspberryPi3359
11.2.1核心特性359
11.2.2GPIO特性和引腳361
11.2.3配置和工作流程362
11.2.4示例和教程365
11.2.5API文檔372
11.3為不同的平臺編寫JohnnyFive應用程序372
11.3.1改造迷你氣象站使其適配Pi3373
11.3.2改造迷你氣象站使其適配ArduinoUno379
11.4使用RaspberryPi作為宿主機380
11.5案例研究:BeagleBoneBlack381
11.5.1BeagleBoneBlack381
11.5.2氣象站程序針對BeagleBone進行適配387
11.6本章小結388
第12章在云端、在瀏覽器中以及更多可能性391
12.1IoT與云392
12.2使用resin.io進行容器化部署394
12.2.1創建resin.io應用程序396
12.2.2配置BeagleBoneBlack397
12.2.3適配天氣應用程序軟件399
12.3硬件和Web瀏覽器404
12.3.1Web藍牙API405
12.3.2通用傳感器API405
12.3.3PhysicalWeb405
12.4使用Puck.js探索BluetoothLE406
12.4.1核心特性407
12.4.2GPIO特性和引腳分布408
12.4.3配置和工作流程409
12.4.4示例、教程和API文檔411
12.4.5從網頁控制LED411
12.4.6PhysicalWeb和Puck.js417
12.4.7基于Web的藍牙門鈴419
12.5開拓JavaScript硬件編程的邊界431
12.6本章小結431
主要內容
● 使用JavaScript控制硬件
● 設計和組裝機器人和套件
● 一份電子電路的速成教程
● 十幾個實踐項目
“我對硬件、電子和物聯網(IoT)很感興趣,但是不知該從何處開始學習”,我已從Web開發者那里聽到很多這樣的說法。確實,構建機器人和精巧的裝置很有樂趣。知道如何從傳感器讀取數據,以及使用這些數據做些有意思的事情,就可以構建你自己的自動化的、通過網絡控制的設備(例如,用來及時投喂寵物,監測降雨量,顯示最新的橄欖球賽比分,能做的事情的確太多了)。但是,如果你很少動手讓LED閃爍,或者很少編寫優化的固件程序并燒錄到嵌入式微控制器中,那么這個新的領域就會令人畏懼。
好消息是,你可以使用已掌握的JavaScript技能和通用編程范式來開始學習之旅,并且可以武裝你的大腦,讓你在這個新世界中減少一點紛擾。JavaScript以你熟悉的方式為你提供試金石,以簡化學習電子、硬件和物聯網的過程。
《JavaScript物聯網硬件編程》為那些熟悉基礎JavaScript但是對基本電路甚至都沒有多少經驗的人講述了電路和嵌入式系統的基礎知識。重點放在軟件開發者不熟悉的主題:設計和構建電路的關鍵基礎知識,硬件元件(傳感器、電動機、電阻等),以及硬件和軟件之間的接口。
在《JavaScript物聯網硬件編程》中,你將親自體驗各種開發板、硬件元件和軟件平臺。對于《JavaScript物聯網硬件編程》前2/3的實驗(小項目),我們將使用開源Node.js框架Johnny-Five和Arduino Uno開發板。Johnny-Five的API提供了許多直觀的元件類,可以使用它們快速構建小工具和發明原型。Uno是世界上最受業余愛好者歡迎的開發板,它具有穩定、簡單、可靠等特性,并且擁有龐大的用戶和教育者社區。《JavaScript物聯網硬件編程》的后1/3探索了更廣泛的平臺,包括支持Node.js的Tessel 2和非常受歡迎的Raspberry Pi。
在《JavaScript物聯網硬件編程》的最后,你應該擁有一個基礎工具包——包括精神上的和物理上的——用于規劃、設計、實現和擴展你自己的JavaScript控制的電子作品。
路線圖
《JavaScript物聯網硬件編程》共包含12章內容。
● 第1章定義了什么是嵌入式系統,列舉了其物理元件的構成,也解釋了JavaScript和硬件協同工作的方式。
● 第2章介紹了Arduino Uno開發板,闡述了可以讓你快速上手操作的讓LED閃爍的基本方法。在開始使用JavaScript和Johnny-Five之前,我們將簡要介紹如何使用Arduino IDE控制Uno。
● 第3章聚焦于電子學的基礎知識,這些電子學基礎是你將要構建的所有電路的基礎。你將深入探索歐姆定律并構建一些不同類型的簡單電路。
● 第4~6章介紹了嵌入式裝置的關鍵電子設備和概念。探索輸入(傳感器)、輸出(制動器)和物理運動(電動機和伺服器)。使用Johnny-Five框架,你將有機會使用Arduino Uno開發板構建一系列不同的實驗。
● 第7章研究串行通信,用于交換更復雜的數據。你將嘗試使用Johnny-Five和Arduino Uno等多個串行組件,包括指南針(磁力計)、加速度計和GPS。
● 第8章和第9章介紹了支持Node.js的Tessel 2開發板。在第8章中,將學習制作沒有電線束縛的項目。在第9章中,將探索從構思到開始著手制作項目的過程。
● 第10章和第11章深入研究了其他支持I/O的嵌入式硬件和JavaScript。第10章介紹了Espruino Pico等受限平臺上的JavaScript和類似JavaScript的環境。第11章探討了更多通用的單板機(SBC),如Raspberry Pi。
● 第12章介紹云服務和從瀏覽器端控制硬件,并展望未來。你將學習如何使用云服務resion.io進行管理,將Johnny-Five應用部署到BeagleBone Black,你將使用Puck.js設備和Web Bluetooth API構建一個瀏覽器內的無線門鈴。
《JavaScript物聯網硬件編程》讀者對象
《JavaScript物聯網硬件編程》適合那些有一定的JavaScript經驗,但對于電子電路和微控制器編程知之甚少或根本不了解的讀者。
《JavaScript物聯網硬件編程》中的代碼示例并不復雜。我的理念是,具有可讀性和可理解性的代碼更實用。當然,你不需要深入了解ECMA-262規范(這是定義JavaScript語言的文檔)中的每個單詞,但如果你還不適應箭頭函數或者還不熟悉Promise,那么需要溫習一下JavaScript知識,或者參閱Secrets of the JavaScript Ninja, Second Edition一書,該書由John Resig、Bear Bibeault和Josip Maras合作編寫(Manning, 2016; www.manning.com/books/ secrets-of-the-javascript-ninja-second-edition)。代碼復雜性和現代語言功能的使用在《JavaScript物聯網硬件編程》的后面也逐步增加。
雖然實驗的分步驟說明提供了構建項目所需要的所有命令,但你應具備安裝、管理和使用Node.js和npm包管理器的基本能力。你還應該熟悉在終端環境中執行命令。
代碼約定和下載
《JavaScript物聯網硬件編程》包含大量示例,其中包括應用程序和實驗所需要的各種資源:JavaScript、HTML、CSS和JSON等。列表或文本中的源代碼采用等寬字體,以將其與普通文本分開。
Johnny-Five是開源的,根據MIT軟件授權發布。《JavaScript物聯網硬件編程》使用了許多其他開源軟件項目,包括十幾個第三方npm模塊。所探索的大多數硬件平臺也是開源的,一個例外是Raspberry Pi 3,見第11章。要完成第5章中的“氣象球”示例,你需要來自Dark Sky的免費的API密鑰(https://darksky.net/dev/register)。
很多源代碼清單都帶有注釋,突出顯示了重要的概念。
《JavaScript物聯網硬件編程》中所有示例的源代碼和資源都可以在https://github.com/lyzadanger/ javascript-on-things上找到,也可掃封底的二維碼獲得。《JavaScript物聯網硬件編程》中的大多數示例包括正文中所需的所有代碼和標記(不包括第三方模塊的源代碼)。你可以在《JavaScript物聯網硬件編程》的最后找到一些較長例子的完整資料來源,以及代碼庫中的二進制資源(例如,第12章中網頁控制的門鈴中使用的MP3)。
發布時包含源代碼的zip文件也可以在出版商的網站上找到。
書籍論壇
購買《JavaScript物聯網硬件編程》可以免費訪問由Manning Publication運營的私人網站論壇,你可以在其中對該書發布評論,提出技術問題,并從作者和其他用戶那里獲得幫助。論壇網址為,你還可以訪問h,了解有關Manning論壇和行為規則的更多信息。
Manning承諾為讀者提供一個場所,讓讀者之間以及讀者與作者之間進行有意義的溝通。這并不是對作者任何具體參與的承諾,作者對論壇的貢獻仍然是自愿的(而且是無償的)。為了引起作者的興趣,我們建議你嘗試向作者提出一些具有挑戰性的問題。只要《JavaScript物聯網硬件編程》出版,論壇和之前討論的合集就可以從出版商的網站上獲取。
pagetop