2015年6月12日 星期五

Linkit one 上面常見的問題

一樣,整理一下作為筆記使用

1.Conctructure 不能再Setup以前使用

      EX: Adafruit MAX31855 library當中,硬體的設定是在constructure裡面設定的
             Linkit one 會出問題,但是把這段code移動到setup就好

2.Timming 不準
      由於Linkit one 上面跑的是RTOS,對於Arduino的Code會被Driver中斷,所以要在Arduino code裡面做到us等級的delay是不準的(還是可以試試)
    
   EX:DHT11,22 用Adafruit的話需要改
          
                                           DHT dht(DHTPIN, DHTTYPE, 13);

       但是就算是改過了,出錯率還是很高,所以不建議Linkit one的Arduino code拿來刻時序要求很精準的通訊.(然後順便婊一下,DHTXX真的很爛,我的觀察啦,我不喜歡用

3.Analog速度的問題
     Linkit one上面Analog不快,大概20ms,所以也不建議拿內建的Analog pin做示波器等級的東西,但是SPI速度超級快(他的基頻高),所以真的要快速的ADC,Ti有很多選擇,用SPI接上就好

4.I2C一次只能送8byte
    如標題,就是在Start後面最多8 byte,但是可以送Repeat Start
5.delay(1)沒有作用
    因為底層的RTOS systick是4.12ms,所以delay(5)以下其實因為小數點的關係會變成delay(0)
    導致delay(1~4)沒有作用,解決辦法就是改用delayMicroseconds(1000)

還有的話這篇文會增加,有解決的話會附註


2015年6月7日 星期日

Bluetooth Sensor node

其實這東西就是LMX9838 + Atmega32U4,也就是Arduino Leonardo

之所以會用LMX9838其中一個理由是因為這東西很小,這一整組不過十元硬幣的大小,
再來就是為啥會用BT 2.0了,因為這個裝置的目標是快速地把資料採樣,所以BLE的速度太慢了,每20ms 20byte絕對不夠用的,所以用傳統的Bluetooth來傳資料.

另外這個東西還有鋰電池充電器,所以上面那個插頭可以直接接鋰電池然後用USB充電這樣,
PCB:https://github.com/will127534/LMX9838-Arduino-board