2013/11/12

使用 Arduino 及 Android 自製萬能遙控器 (4) - Arduino on ASUSTOR's NAS and Demo



(圖:在電視前多放了一塊板,還好不會太突兀)

還是稍微提一下前三篇提到的四隻主要程式

  1. web.py
  2. iremote (Android App)
  3. serial_tx.c
  4. ir-tx.cpp

現在只需再將 Arduino 放到 ASUSTOR NAS 上執行就完成了。

因為我在 NAS 已經放了個 Ubuntu 12.04 的環境了,所以需要完成的只剩 serial driver 的部分。Arduino 所要用的 driver 為 cdc-acm.c。在編成 .ko 時,會發生以前曾經遇到的問題 Unknown symbol and disagree about version of,所有的解決方法可參考以前寫的這篇這篇即可。

這次用很髒的方法來解,直接將有問題的函式用它的位址直接取代,如下:

// doro <<
#undef dev_info
#define dev_info(dev, fmt, arg...) _dev_info2(dev, fmt, ##arg)
int (*_dev_info2)(const struct device *dev, const char *fmt, ...) = (void *)0xffffffff8140a280;
int (*dev_warn2)(const struct device *dev, const char *fmt, ...) = (void *)0xffffffff8140a340;
int (*device_create_file2)(struct device *device, const struct device_attribute *entry) = (void *)0xffffffff8140a150;
void (*device_remove_file2)(struct device *dev, const struct device_attribute *attr) = (void *)0xffffffff8140a060;
int (*dev_err2)(const struct device *dev, const char *fmt, ...) = (void *)0xffffffff8140a3a0;
// doro >>

完整程式可參考 cdc-acm.c

最後 demo 影片:用手機操作電視


No comments: