2014/09/28

Arduino小知識:error: 'TKD2' was not declared

當使用Arduino IDE 1.5.7時(應該早自1.5.5 r2便有此錯誤),若想使用紅外線程式庫IRremote,光是底下這短短的草稿碼:

#include <IRremote.h>
void setup() {
}
void loop() {
}

就會出現底下的編譯錯誤訊息(若選擇「Arduino Robot Control」以外的板子):

path-to-arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope
 int RECV_PIN = TKD2; // the pin the IR receiver is connected to
 
原因在於,Arduino IDE 1.5.5 r2開始加入一套縮減版的IRremote程式庫,名為RobotIRremote,更動了不少東西,但有些地方卻沒變(譬如檔名),以至於起衝突。

此錯誤的詳細情況,大致如此:想使用自行安裝的IRremote,但Arduino IDE卻以內建的RobotIRremote為優先;RobotIRremote的檔案IRremoteTools.cpp需要TKD2的腳位定義,而只有「Arduino Robot Control」板子的腳位定義檔裡才有TKD2這玩意兒,如此一來,就會發生上述的錯誤訊息。

解決之法:

  • 若你想使用自己安裝的IRremote,而且不是使用Arduino Robot Control板子,那就乾脆把path-to-arduino-1.5.x\libraries\RobotIRremote整個移除算了。
  • 也可以自行更改RobotIRremote裡的檔名,並連帶修改相關程式碼,解決衝突;較為困難,屬於暫時性解法,照理說應該由Arduino官方開發團隊修改。
  • 若想使用內建的RobotIRremote,目前似乎只有Arduino Robot Control板能用;要不然就要自己修改程式庫。

參考資料:

2014/09/27

Raspberry Pi情報彙整(37)

我將網路上看到的、感興趣的、跟Raspberry Pi相關的資訊收集如下。如果您發現任何新奇驚人的新聞或專案,還請留言告知。

BruceS — *Raspberry Pi smart watch,呃,有你的,好大一支智慧型手錶啊。

ProtoCam - The Raspberry Pi Camera Module Prototyping Board by Richard Saville — Kickstarter,預設相機模組位置的原型擴充板。募資期限是10/15。
Our first jam was a massive success,英國黑潭第一次舉辦Raspberry Pi Jam。
HDMIPi Raspberry Pi displays are shipping now! Touch screens and 10" model in the works | Raspberry Pi TodayHDMIPi螢幕開始出貨囉,嗯,真後悔當初沒下手啊。下一代產品將會是10吋大小與觸控螢幕。
Sugru Raspberry Pi corners,以超級黏土Sugru製作腳墊。
Build a board game with the Raspberry Pi B+ | element14,現代小孩大概沒看過古老的遊戲Snakes and Ladders,何不利用rpi加以數位化呢。
Revealed: Images of moon are first ever to be captured by DIY Pikon telescope - and you could PRINT your own at home for £100 | Daily Mail Online,嘿,使用rpi與相機模組來自製天文望遠鏡吧,還能拍攝月亮喔。由Sheffield大學製作並分享設計,rpi基金會Ben Nuttall也撰文報導
The balancing act of the one-eyed robot – Part #1 technical description | Paolo's blog,雙輪平衡車。
Raspberry Pi Goblin Detector - Andrew Oakley,嘿,有小妖精(goblin)會侵入女兒的房間,怎麼辦,做個偵測器吧。
Stepper Music Box • Hackaday Projects,一邊播放音樂、一邊舞動步進馬達與伺服馬達,專案裡含有rpi、Iteaduino Mega、Dual Stepper Shield、兩個步進馬達、兩個伺服馬達、以及由UBEC提供電源,由rpi把預先處理好的MIDI檔交給Iteaduino播放。
Ben Heck's Raspberry Pi Point and Shoot Camera - YouTube,Ben Heck真是太強了,拿著一塊rpi板子,逐步去掉不需要的元件、連接埠、排針等等,然後再接上相機模組、PiTFT、鋰電池、充電電路,設計專屬的外殼並3D列印,嘿,變成相當迷你的數位相機囉。

其他:

2014/09/22

Raspberry Pi:在主控台(命令列模式)下看圖

有時候,只是想簡簡單單看張圖,若還要進入X視窗的話,未免太過麻煩,所幸在主控台下便可觀看圖檔。

首先更新套件清單與已安裝的套件,
$ sudo apt-get update
$ sudo apt-get upgrade

然後安裝套件fbi(Linux frame buffer image viewer)與套件fim(a scriptable frame buffer and ascii art image viewer),
$ sudo apt-get install fbi
$ sudo apt-get install fim

fbi可看圖,而fim在fbi的基礎之上提供進一步的功能。

想用fbi看圖的話,輸入指令fbi、後面跟著圖片檔名,如此即可:
$ fbi xyz.png

按下「H」鍵,可看到快速鍵清單,譬如ESC(或Q)可跳出,+、-鍵可放大縮小,如果下指令時輸入多個檔名(譬如$ fbi *.jpg),便可使用PgDn或Space鍵切換到下張圖。
當然啦,fim也能做得到,其快速鍵也差不多:
$ fim abc.png
若只輸入fbi或fim,便可看到可用的指令參數,恕不一一介紹。其中fim若加上參數-t,便可以ASCII的形式輸出圖像。
$ fim -t abc.png

參考資料: