- Arduino 教學系列
- Arduino 入門教學
- TOC
- Arduino Video Workshop
- 認識 Arduino
- 準備開發環境
- Lab1 Blink
- Lab2 Button
- Lab3 Fade
- Lab4 potentiometer
- Lab5 LED Bar Graph
- Lab6 Buzzer
- Lab7 Seven Segments
- Lab8 Photocell
- Lab9 2x16 LCD
- Lab10 SHT15 Humidity and Temperature Sensor
- 製作一個溫溼度記錄器(三部曲)
- Lab11 74hc595
- Lab12 Cascading 74hc595
- Lab13 74hc595 and 7 Segs
- Lab14 74hc595 and HD44780
- Lab15 4-digit Seven Segments
- Lab16 Servo
- Lab17 Photocell and Servo
- Lab18 3x4 Keypad
- Lab19 5x7 LED Matrix
- Lab20 PIR
- Lab21 Relay
- IRRemote 紅外線遙控教學
- Amarino: Android meets Arduino
- Bluetooth
- Arduino Keyboard
- V-USB
- ISP
- Arduino 入門教學
2013年11月4日 星期一
2013年9月7日 星期六
Chart.js: 一個簡單的 JS Chart Library
Chart.js 是一個 Open Source 的 JavaScript Chart Library。它一共有 6 種 Chart,全都是 HTML5 based。
底下是 Chart.js 所提供的 6 種 Charts:
Line Chart | Bar Chart |
Radar Chart | Pie Chart |
Polar Area Chart | Doughnut Chart |
快速上手
你可以到 github 下載 Chart.js: https://github.com/nnnick/Chart.js。Chart.js 只需要一個 .js 檔,你可以選擇一般版的 Chart.js,也可以選擇瘦身版的 Chart.min.js。
從 github 下載後,在 samples 資料夾就有 6 種 Chart 的範例。比如打開 samples/line.html 後,瀏覽器馬上就會畫出這樣一張 Line Chart:
line.html 的內容如下 (JavaScript 部份):
如何動態增加資料點?
Chart.js 沒有提供動態增加資料點的方法,這實在有點可惜。不過,我花了點時間研究了一下,發現還是有解。我的方法是這樣:在修改 datasets 的內容後,就再呼叫 new Chart() 重新產生 Chart。程式碼範例如下:
有一點要特別注意,因為 Chart.js 在畫圖時會有動畫,所以必須把 animation 設成 flase 把動畫關掉。
然後就可以動態增加資料點囉:
關閉 Arduino UNO 的 auto reset
在某些特殊情況下,你可能需要把 Arduino 的 auto reset 功能關掉。舉個例子,假設 Arduino 正在跑這段讓 LED 恆亮的 code:
假如這時用 echo 指令傳資料給 Arduino:
$ echo "Hello" > /dev/ttyACM0
你會發現 Arduino 的 LED 會突然閃爍幾下,然後又恢復恆亮。這是因為在開啟 serial port 時會觸發 Arduino 的 auto reset,Arduino 重新開機了,所以 LED 才會閃爍幾下 (開機時 bootloader 叫它閃爍的)。
要關閉 Arduino 的 auto reset,方法很簡單。以 UNO 而言,只要在 RESET 跟 GND 針腳之間放個 10uF 的電容就好 (短腳要接 GND):
其它板子我沒試過。不過,如果接電容的方法無效,據網路上的資料,可以在 5V 跟 RESET 針腳間放個 120 ohm 的電阻 (120 ohm 電阻還真不好找,可能要組合一下才行)。
至於 Leonardo 的話就不需要了,因為 Leonardo 的硬體線路跟 UNO 不一樣,不會在 serial port 連線時 reset,所以應該沒這方面的困擾 (補充: 當以1200 鮑率開個 serial port 時,Leonardo 就會重置)。
參考資料