開放硬體認知學習指引
1
MakerPRO 技術主筆
陸向陽
2016-05-08
2
開放硬體範疇
開放硬體
機械電子
晶片內晶片外
電路圖 佈線圖 電路圖 佈線圖
3
開放硬體 = Arduino、RPi
24,Arduino
17,Raspberry Pi
241件,Arduino
163件,Raspberry Pi
 2016 年 3 月 Google Trends 關鍵字搜尋統計
 Arduino 自 2005 年開始,Raspberry Pi 自 2012 年開始
4
開放硬體為何贏?
 Arduino 勝 BASIC Stamp
 Raspberry Pi 勝 Beaglebone
Arduino BASIC Stamp Raspberry Pi Beaglebone
5
開門見山:Arduino First
 理由 1:簡單、便宜
 理由 2:除非你的應用沒有燈號、不會移動
 理由 3:範例電路多、程式多、Shield 多
 理由 4:相容開發板多只是功能強化,增加學習負荷、相容性無法保證
 理由 5:不從 Raspberry Pi 起步的理由:
 比較是為了電腦系統學習、應用
 稍貴、準備東西較多
 缺乏 ADC,軟體 PWM
 GPIO 接腳較多也較雜
6
學習路徑建議
Arduino Raspberry Pi
Raspberry Pi
AlternativeArduino Family
Arduino
Compatible
Arduino MEGA 2560
Arduino Due/Zero/Zero Plus
Arduino Yun/Tian
LilyPad
Intel Galelio
Intel Edison
Intel Curie/Arduino 101
LinkIt ONE
LinkIt Smart 7688 Duo
Ameba
ESP8266
Banana Pi
BeagleBone Black
ODROID-C1+
UDOO Dual Basic
Radxa Rock2 Square
NanoPC-T1
MinnowBoard MAX
1.0
1.5a
1.5b
2.0
2.5
7
學習步驟
 GPIO (LED、SW、LCD)、PWM (LED、Motor)、ADC(Sensor)(最基本)
 UART、I2C (Sensor)、SPI、1-Wire、SD
 RFID、NFC、GPS(無線小應用)
 NFC Tag (URL、App、vCard)
 NFC P2P
 NFC Card Emulation
 USB、Wi-Fi、GPRS、Bluetooth(需要一點網路概論了)
 USB Camera、USB Flash Driver
 STA Mode、AP Mode、Wi-Fi Direct、Wi-Fi Miracast、Wi-Fi Aware
 Bluetooth Classic
 Bluetooth Low Energy
 PC、LAN、Web/Cloud、App(需要些其他系統運作概念了,甚至開發經驗)
 DLNA
 Web Server、FTP Server
 MQTT (AMQP、XMPP)
8
RPi 步驟學習建議
 安裝、設定 RPi
 媒體播放器作業系統
 桌上型作業系統
 Linux (Raspbian)
 Internet (FTP、Web)
 Python
 Python GPIO 應用
 其他應用:
 週邊:DSI、CSI
 與 Cloud 互動
 與 PC 互動
 與 LAN 互動
9
很難有書、課程能瀑布式練就
 經常要看多本書、多種資料,交叉比對
SeeedStudio Wiki
eLinux Wiki
10
依意不依語,比對異同破除門戶
 MCLR = Master Clear = Reset = RST
 XTAL1/2 = OSC1/2
 Arduino 領域:Sketch、Shield
 純軟體領域也是一樣:
 Plug-in = Add-on = Extension
 Skin = Theme = Template
 有時同詞不同義 (RTC)
11
感測器學不完,萬變不離其宗
 火焰感測器
 一氧化碳感測器
 二氧化碳感測器
 高度感測器
 磁阻感測器
 酒精感測器(酒駕)
 紫外線感測器
 光敏電阻(亮度感測)
 熱敏電阻
 加速度感測器
 慣性感測器
 手勢感測器
 影像感測器(CMOS)
 聲音感測器(麥克風)
 角加速度感測器(陀螺儀)
 大氣力壓力感測器(高度)
 傾斜角度感測器
 近接感測器(紅外線)
 PM 2.5感測器
 溫度感測器
 濕度感測器
 壓力感測器
 旋轉編碼器
 水位感測器
 土壤濕度感測器
 動作感測器
 心跳感測器
 觸控感測器(觸控按鈕)
 磁力感測器(霍爾元件)
 距離感測器(紅外線、超音波、雷射)
 喇叭、蜂鳴器
 磁簧開關
 水銀開關
 繼電器
 電晶體
 馬達、伺服馬達、步進馬達
12
看穿外觀、直指結構本質
13
摸索抽象層內、歷史發展脈絡
 Arduino 已經包覆了許多東西不用開發者操心:
 沒有使用看門狗計時器
 沒有使用外部接腳中斷
 不讓你知道中斷向量
 不讓你設定堆疊位址
 不讓你調整 PWM 頻率
 熱忱、記憶、對應、社會學 (解決問題的思維)
 去看更早期的 MCU 書籍 (6502、Z80)
 一些包袱指令可以解決問題
 翻很多書才能發現管用小技巧 (軟硬體跳彈消除)
 有些技巧讓人拍案叫絕 (一條掃瞄線,25 個按鈕)
 產業約定成俗很多,小 Know-How 多 (Vcc、mil、pt)
14
實作分享
 別太堅信零件不會壞
 電料行不比一般消費性電子,其實很常壞
 雲端也類似
 網路電料行崛起
 ESP8266 購買經驗
 工具好壞有別
 近期的感想
 除錯
 16 x 2 文字型 LCD 耗時 3 天
 語音 IC 的 Datasheet 描述不足
15
感謝 與 問答

開放硬體認知學習指引