2016年4月24日 星期日

[LinkIt Samrt 7688]MPU與MCU溝通方式


7688 Duo 有2個核心 , MT7688 與ATmega,

  MT7688上跑的是是OpenWRT ( MPU) ,

 而ATmega則是如同常見的Arduino (MCU) 。


















MPU 的運算能力較強,運行了一個Linux核心,

而MCU的運算能力不強,你可以把它當Arduino使用。

但透過MCU,7688可以獲得Arduino的功能。


MPU與MCU溝通



1.MPU 與MCU之間可以透過透過UART來溝通,但這樣你必須要在MPU與MCU皆寫上程式,並且處理UART相關的通訊,這樣做的好處是你有最大的彈性去處理MPU與MCU之間的通訊。

2.透過Firmata協定:

Firmata 是一個 MCU 與 MPU 之間的通訊協議。至今許多Firmata 實行普及化因為它的彈性很高,因此對熟悉 Python, Node.js 或 C 語言編程的開發者來說是一種方便,他們能選擇語言來編程 MPU 軟件,然後使用 Firmata 來執行 MPU 與 MCU 之間的通訊而不必再替 MCU 編程軟件完成該通訊。


這樣你只需要將Firmata的程式燒錄進MCU,之後直接在MPU上寫程式控制I/O。


3.透過Arduino Yun Bridge Library

用這種方式的話,MPU的角色像是個黑盒子,只負責提供Wi-Fi及USB功能。整個7688 Duo

的角色會非常的類似Arduino Yun。


參考網址:

http://www.makerzoo.com/artdetail/b745a3d9daa6480983eb4e705b5b8ba3

http://draw-bruce.blogspot.tw/2016/01/iot8-firmata-pyfirmata7688-mpu-arduino.html

[LinkIt Samrt 7688] Arduino IDE 編譯失敗

最近剛好要用Firmata ,所以想要燒東西進去MCU內,但無論怎樣都會編譯失敗,

即使是空空的只有一個Setup()和Loop(),一樣的錯誤訊息,





















查詢了網上後,發現是USBCore.cpp中出了錯。

只要將USBCore.cpp中的430行


auto length = len;   改成  int length = len;

以及435行

auto recvLength = length;  改成 int recvLength = length; 

之後存檔,重新編譯即可正常。


註:有些時候USBCore.cpp的檔案位置可能會在(我把Arduino放在應用程式裡)

/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp 

環境

MAC OSX  11.0

Arduino IDE  1.6.8

MediaTek  LinkIT Smart Boards  0.1.6


參考網址:


2016年4月20日 星期三

[LinkIt Samrt 7688] Arduino IDE 板子管理員找不到7688

如果在Arduino版子管理員找不到7688的身影,可以試試以下作法

1.開啟Perferences


2.在額外的版子管理員網址打上

http://download.labs.mediatek.com/package_mtk_linkit_smart_7688_test_index.json

3.開啟版子管理員


4.安裝一下 LinkIt Smart 7688 Duo by Seed Studio and MediaTek Labs
5.之後再看一下版子,就會出現7688的選項了
參考資料:

2016年4月17日 星期日

[LinkIt Samrt 7688] 更新Firmware

看到Blue大大在網路上轉貼7688更新Firmware並解決之前USB速度問題,

決定更新Firmware.

0.到以下網址下載Firmware

https://labs.mediatek.com/site/global/developer_tools/mediatek_linkit_smart_7688/sdt_intro/index.gsp




1. 先連進7688的WEB UI,找到Software information ,點下UPGRADE FIRMAWARE


2.然候點擊 "Chose the file"


3.接著選剛才下載的lks7688.img,然候點選UPGRAD & RESTART
4.此時正在由你的電腦將更新檔傳送到7688
5.更新前的通知,告知你WI-FI燈號會快速閃爍,整個過程大約要3分鐘,接著按下OK
6.升級完成後,重新連進WEB UI,你就會發現Firmware Version變成最新的v0.9.3了。


















參考資料:
https://iamblue.gitbooks.io/linkit-smart-nodejs/content/zh-TW/intro/update_firmware.html

[分享]健保卡損壞,換新筆記。

俺的健保卡突然之間讀不出來了,每次去看病都要在在本子上簽名"健保卡不良",

自己覺得很不好意思,每次看掛號小姐不死心的在試,拿像皮擦出來摖一下晶片。

抽了個空到九如路的健保局申請換了一張健保卡。


整個過程約25分鐘,需要一張2吋大頭貼(掃描後發還),身份證正本

,抽個號碼牌後到櫃台出示讀不出來的健保卡,服務人員將我舊的健保卡收回。

等大約10分鐘後看號碼就可以領到新的健保卡,免費,也不必寫申請書


至於免費或要200元這個問題,我也很疑惑,我第一張健保IC卡用不到2年就壞了,

之前更換是要收錢,後來這張超耐用(超過5年),被我壓到卡有點灣灣的,

都還可以用,健保局到底是依換何種標準來判定要不要錢,我也很疑惑。

這裡有一篇文章,似乎是非人為損壞可以不用錢,參考一下(二)

http://gameimp.myweb.hinet.net/page_1.4.htm


(二)申請換補健保IC卡類型
      1.應繳交工本費200元:身分資料變更(如變更姓名)、更換照片、遺失、 毀損(如卡片斷
                裂)。
   ※身分資料之變更,應由投保單位先行填送「變更事項申報表」並檢具證明 文件,送轄區
                 分局辦理。
      2.免繳交工本費:首次領卡(如新生嬰兒、新聘外籍勞工)
      其他原因(如原來的卡片不良,致無法使用)應繳回原卡。
新生嬰兒、新聘外籍勞工等新加保者,應先透過投保單位向所屬健保 分局
                     辦理加保手續,同時填送「請領健保IC卡申請表」,一起送交所屬健保分局申請領卡。

2016年4月14日 星期四

[分享]Garmin Forerunner 235 異常問題

昨天(4/14) 下午突然手錶跳出要我設定身高體重、性別之類的資料,

而且我的錶面也回復出廠值,一時之間沒有多想,今早起床發現不對,



















阿我整晚的心率勒~怎麼都沒有,關機重開也一樣,

仔細注意了一下,心率感測器的燈一直都沒亮過,




























但感測器是自動的狀態,代表有開啟。

檢查了一下Firmware 版本,4.20。























翻找了一下剛入手時的照片,是3.30。

















看起來Garmin Connect App 會自動幫我更新Firmware。

到官網看看更新了什麼:


Change History

Changes made from version 4.10 to 4.20:

  • Improve BLE stability
  • Improve 4 hour heart rate plot

Changes made from version 3.30 to 4.10:

  • Added support for speed/pace and heart rate audio prompts.
  • Added support to download stored heart rate data from compatible straps (HRM-Tri and HRM-Swim).
  • Fixed an issue in which the virtual partner pace could get set to 4:00/mile when switching between activity profiles.
  • Fixed pace alerts in workouts.
  • Includes various bug fixes and stability improvements.

看起來我升級了2次Firmware了,主要是修一些BUG以及修改BLE連線

穩定性、改善4小時心律繪圖,看起來有可能是Firmware更新造成的???

經詢問後,建議使用電腦版的Garmin Express 做更新看看,設定完裝置後,

進入到主畫面提示有軟體更新。










































看起來是感測器相關的更新,死馬當活馬醫,更新看看。


















同步之後,不久手錶上會跳出有更新,更新完畢後,心律就復活了。

















害我擔心了一整天,自動更新也是有壞處滴。









2016年4月10日 星期日

「分享」半反射玻璃

最近看到一個東西,smart mirror:

聽完高手分享後,才知道它前面用的那一塊是半反射玻璃,這種玻璃有一個特性,當背面

為全黑時,有如鏡子一般的效果,但背景很亮時,則回復一般玻璃的透光效果。

上圖照片中的效果,其實是鏡子後方有一個螢幕,只有顯示字的地方是白色,其他部份都維

持黑色,即可呈現字顯示在鏡子上的效果,如果找不到半反射玻璃,亦可以用綠反射玻璃替

代。







參考資料:

[Android] 取得Build Date

最近在工作上遇到一個問題, 當版本號不能改變時,

必須加入一個編譯時間來做識別, 如何紀錄編譯時間呢?

很簡單, 首先在build.gradle(Module: app)  裡面的android { } 加入紅框框內容



這樣在每次編譯後,都會紀錄下編譯的時間,接下來我們介紹一下要如何取出這個值


TextView date=(TextView)findViewById(R.id.date); 
Date buildDate = new Date(BuildConfig.TIMESTAMP); 
  // 直接格式化輸出現在時間的方法 
  SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");     
  date.setText(sdFormat.format(buildDate));


執行結果






















參考資料:




http://stackoverflow.com/questions/7607165/how-to-write-build-time-stamp-into-apk

[電路]將PWM訊號轉換成0~10V

最近有一個需求是透過PWM訊號去控制一個服用0~10 V的裝置.

但手上的Arduino只能輸出0~5V的PWM , 在朋友和谷哥幫助下,

找到一個轉換電路 ,成功將PWM 轉0~10V .
















開心之餘再拿另一塊他牌的開發版試一下PWM , 結果GG 了,

只有輸出到6.6V  XD  , 拿3用電錶量一下, 原來他牌的PWM最高是3.3V,

所以這一個電路剛好是放大2倍, 在朋友的幫助下, 嘗試了一下將R2改成20K ,

成功輸出9.9V , 變成3倍.

















困難的問題來了, 當我插上一支LED上去, 臥槽, 電壓掉到2.7伏特,

朋友表示, 負載可能改變電路的電阻值, 導致輸出電壓改變了,

此時必須搭配一個電壓隨隅器, 來解決這個問題.


















本人不懂電路,朋友告訴我此電路的公式為(R2+R3)/R3 ,也就是我在In輸入5V,輸出會變成

In * ((10k+10k)/10k)= 2倍的In,也就是10V,如果我將R2換成20K,則會變成3倍。

參考來源:


強者我朋友 Andy Lin

http://electronics.stackexchange.com/questions/169287/how-to-interface-this-circuit-with-a-0-10v-theatrical-lighting-dimmer