接觸Linux也有一段不算短的時日了,但萬萬沒想到居然有這種東西。嘿,學海無涯啊。
首先在Raspbian命令列模式下安裝所需套件:
$ sudo apt-get install cowsay fortune-mod fortunes
其中cowsay能產生牛的ASCII文字圖案與對話框,fortune-mod能亂數給出名言錦句(格言、諷刺、謎題、玩笑),fortunes則是含有更多名言錦句的套件。
試試看吧,讓牛說Hello World:
$ cowsay "Hello World"
2014/02/16
Raspberry Pi小玩意兒:Raspbian讓牛說Hello World
標籤: Raspberry Pi
2014/02/11
Arduino練習:旋轉編碼器
旋轉編碼器(rotary encoder)可將旋轉位置或旋轉量轉變成訊號(類比或數位),透過某種方式(機械、光學、磁力等),得知轉軸轉動了,發出訊號通知我們。可分為絕對型(absolute)及增量型(incremental)或稱為相對型(relative),絕對型將轉軸的不同位置一一編號,然後根據目前位置輸出編號;增量型編碼器則是當轉軸旋轉時輸出變化,轉軸不動就沒有輸出。
底下是我購買的增量型旋轉編碼器模組,可以一直旋轉,旋轉一整周被分為20小格,正轉逆轉皆可,當轉動時,CLK腳位就會呈低電位,此時可讀取DT資料腳位,若為HIGH代表正轉,LOW代表逆轉;SW則是開關腳位,轉軸可被按下改變此腳位的狀態。另外+需接正電源,GND接地。
增量型旋轉編碼器會有類似齒輪缺口與感應的機制,以此可有兩個輸出A與B,旋轉時,A與B將輸出不同的訊號,正轉與逆轉可得到不同的一串訊號,如此便可區分正逆轉。
我用的板子是Arduino Uno R3,軟體開發環境版本為1.0.5、Windows版。
電路如下:
Arduino腳位2,連接模組的CLK。
Arduino腳位3,連接模組的DT。
Arduino腳位4,連接模組的SW。
草稿碼如下,當偵測到正轉時,就增加全域變數count、並輸出到序列埠,逆轉則減少,按下開關則歸零。
#define SERIAL_BAUDRATE 115200
#define CLK_PIN 2 // 定義連接腳位
#define DT_PIN 3
#define SW_PIN 4
#define interruptA 0 // UNO腳位2是interrupt 0,其他板子請見官方網頁
volatile long count = 0;
unsigned long t = 0;
void setup() {
Serial.begin(SERIAL_BAUDRATE);
// 當狀態下降時,代表旋轉編碼器被轉動了
attachInterrupt(interruptA, rotaryEncoderChanged, FALLING);
pinMode(CLK_PIN, INPUT_PULLUP); // 輸入模式並啟用內建上拉電阻
pinMode(DT_PIN, INPUT_PULLUP);
pinMode(SW_PIN, INPUT_PULLUP);
}
void loop() {
if(digitalRead(SW_PIN) == LOW){ // 按下開關,歸零
count = 0;
Serial.println("count reset to 0");
delay(300);
}
}
void rotaryEncoderChanged(){ // when CLK_PIN is FALLING
unsigned long temp = millis();
if(temp - t < 200) // 去彈跳
return;
t = temp;
// DT_PIN的狀態代表正轉或逆轉
count += digitalRead(DT_PIN) == HIGH ? 1 : -1;
Serial.println(count);
}
執行後,開啟序列埠監控視窗,用手轉動旋轉編碼器,正轉時可看到不斷變大的數字,逆轉則減少。不過有時會出現錯誤,應該加1的情況卻先加1、再減1、再加1,不夠完美。
參考資料:
- 旋轉編碼器 - 維基百科。
- 我購買的旋轉編碼器模組官方網頁,有說明文件與範例程式碼,但是...。
- HobbyTronics Ltd的Arduino UNO Tutorial 6 - Rotary Encoder。
- Arduino官方網站的attachInterrupt()。
2014/02/07
Raspberry Pi情報彙整(20)
我將網路上看到的、感興趣的、跟Raspberry Pi相關的資訊收集如下。如果您發現任何新奇驚人的新聞或專案,還請留言告知。
OCR Raspberry Jamboree 27 & 28 February 2014,二月底的Raspberry Pi大聚會,舉行三天,真想去啊。可以看看去年聚會的影片過過乾癮。
標籤: Raspberry Pi
Subscribe to:
Posts (Atom)






















