0
发帖人用户名:petertpe
1. 開發環境:
https://www.amebaiot.com/ameba-arduino-getting-started/
按照官網的設定保證不會動作, 這是因為Ameba RTL8915 EVB上的LPC11U35本身是一個CMSIS DAP介面, 第一次上電時是空的, Ameba 同時支持Arm MBED與Arduino 上電後必需安裝驅動才可以, 筆者選擇Arduino開發環境.
https://www.amebaiot.com/change-dap-firmware/
不得不說, NXP的Firmware Update使用Virtual Disk是非常方便的, 開發成本也低. 安裝完成後記得重啟電腦, 不然還是不會動作.
選擇Ambea開發板
2. WIN7-32 驅動問題
**在安裝完MBED SERIAL DRIVER後找不到COM PORT, 手動指向MBED驅動安裝目錄
***Arduino 編譯成功, 上傳發生ERR: Multiple Ameba boards found! Unplug and only have one connected to the host! 訊息, 這是Arduino版本與Ameba SDK 版本不相容問題. Arduio選擇1.8.2以上, Ameba SDK選擇不要低於2.0
*** Ameba 開發板不支持 NFC/RFID Reader
*** Ameba是卡片, 可以透過data exchange 交換資料, 但無法直接當作NFC Reader使用
*** 解決方案: 外掛NXP PN53x Reader芯片
Ameba Arduino範例如下:
*/
/**************************************************************************/
#include
#include
#include
#include
SoftwareSerial Serial1(0, 1); // RX, TX
/*
* This code demonstrate how to read Mifare block value and connect to http base on Ameba boards
* CS : connect to pin 10
* MOSI : connect to pin 11
* MISO : connect to pin 12
* CLK : connect to pin 13
* RXD : softuart to pin 0
* TXD : softuart to pin 1
*/
// If using the breakout with SPI, define the pins for SPI communication.
#define PN532_SCK (13)//(2)
#define PN532_MOSI (11)//(3)
#define PN532_SS (10)//(4)
#define PN532_MISO (12)//(5)
// If using the breakout or shield with I2C, define just the pins connected
// to the IRQ and reset lines. Use the values below (2, 3) for the shield!
#define PN532_IRQ (2)
#define PN532_RESET (3) // Not connected by default on the NFC Shield
**Ameba支持軟件UART, 由於第一組UART使用來DEBUG與程式碼上下載, 修正如後:
void setup(void) {
Serial.begin(115200);
Serial1.begin(9600); //for Ameba boards
while (!Serial) delay(10);
Serial.println("https://www.elecfans.com/");
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.print("Didn't find PN53x board");
while (1); // halt
}
// Got ok data, print it out!
Serial.print("Found chip PN5XX"); Serial.println((versiondata>>24) & 0xFF, HEX);
Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC);
Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
// configure board to read RFID tags
nfc.SAMConfig();
Serial.println("Waiting for an ISO14443A Card ...");
}
*** Serial1.print(data[http_offset], HEX);
*** Serial1 用來上傳nfc tag內建的網址, 避免施工人員打錯監控網址
***編譯上傳到Ameba Board
運行效果
3. 系統規畫
4. Ameba Board 角色
A: ipcam裝機前透過rtl8195上傳IPCAM網址到PC Base 監控中心記錄, 避免key in錯誤
B: IPCAM內建程式無防盜等功能, 透過兩片Ameba Board可以交換訊息, ex: 開門狀態, 窗戶開啟, 燈具關閉, 動態開啟IPCAM………………..
5. Ameba Board試用結論
由於與Arduino 幾乎完全相容, 使用起來會很方便, 但Arduino與Ameba 各版本間的相容性沒有完整的列表.
為了相容Arduino, Ameba犧牲了內建cortex-m3硬件所帶來好處.
在Arduino環境下, 不適合大量資料傳輸, 但很適合少量, 非即時的的訊息傳遞, ex:使用MQTT for Arduino (Ambea Boards) 來交換訊息.
在Arduino環境下太倚賴第三方的Library, EX: OLED Module僅是很容易的code, 但使用Arduino如缺少第三方的Library 主體程序反而變的很複雜.
由於市面上已有很多現成相容Arduino的Sensor Board……. 開發與使用相對是容易的. 但商品化會有成本問題, 可能無法使用現成的器件, 使用者會有開發Library的問題, 使用Arduino的開發者不一定都熟悉C++語言.
|
|