_SKU_DFR0476_Ameba RTL8195AM_Mainboard控制器_兼容Arduino - jimaobian/DFRobotWikiCn GitHub Wiki
Ameba-RTL8195AM Mainboard一款搭载RTL8195的嵌入式开发板,兼容Arduino,适合开发各式物联网应用。Ameba-RTL8195AM Mainboard集成有Cortex-M3(内核), Wi-Fi, Ethernet, NFC, UART, SDIO, USB(HOST), I2C, I2S, SPI, ADC/DAC等硬件资源。
- 微控制器:RTL8195AM (Cortex M3内核 具体芯片资源 详见 右方配图)
- 时钟速度:166MHz(Max)
- 直流接口输入电压:7-20V
- 数字IO口:18
- 模拟输入:2(A0、A1共享同一个ADC端口)
- 板载DAC接口:1
- 尺寸:97.08 * 54.70 mm
- 重量:30g
| | | | ------------------------------------------------------------- | | | : | |
序号 | 丝印 | 功能描述 |
1 | T/R | boot 按钮 |
2 | N/R | 调试器复位按钮 |
3 | Pdn | RTL8195AM复位按钮 |
4 | CMSIS—DAP | 固件烧录及USB供电USB接口 |
5 | USB | USB HOST 及USB供电USB接口 |
6 | 未标 | N/R边黑色塑料方形圆孔 内带有金属插针——直流7~20v 接口 |
7 | 未标 | 三色LED左边 金色 金属带螺纹状接口——RTL8195AM RF天线 |
8 | 未标 | 主板正上方5圈螺纹状走线——NFC 天线 |
9 | JTAG | 三色LED左边 金色 10个通孔焊盘——板载 JTAG接口 (丝印在板子反面) |
10 | UART | Pdn按钮 左下方4个通孔焊盘——板载UART接口 (丝印在板子反面) |
按钮 和部分接口说明
- 打开arduinoIDE,文件->首选项,,在弹出的对话框中找到“附加开发板管理器网址”。在后面的文本框中填写
https://github.com/Ameba8195/Arduino/raw/master/release/package_realtek.com_ameba_index.json ;
image:IDE1.png| image:IED2.png|
- 点击OK
- 选择工具->开发板->开发板管理器,arduinoIDE会更新我们的板子信息。
- 在搜索框中输入Ameba,可以找到下面这个板子。点击安�
- 安装完成后显示为
- 使用Ameba 自带的Wi-Fi功能来检测周围的WiFi信号,并将检测到WiFi的名称,加密方式,信号强度等信息打印出来。
实验代码
#include <WiFi.h>
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// check for the presence of the shield:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
// don't continue:
while (true);
}
String fv = WiFi.firmwareVersion();
if (fv != "1.1.0") {
Serial.println("Please upgrade the firmware");
}
// Print WiFi MAC address:
printMacAddress();
}
void loop() {
// scan for existing networks:
Serial.println("Scanning available networks...");
listNetworks();
delay(10000);
}
void printMacAddress() {
// the MAC address of your Wifi shield
byte mac[6];
// print your MAC address:
WiFi.macAddress(mac);
Serial.print("MAC: ");
Serial.print(mac[0], HEX);
Serial.print(":");
Serial.print(mac[1], HEX);
Serial.print(":");
Serial.print(mac[2], HEX);
Serial.print(":");
Serial.print(mac[3], HEX);
Serial.print(":");
Serial.print(mac[4], HEX);
Serial.print(":");
Serial.println(mac[5], HEX);
}
void listNetworks() {
// scan for nearby networks:
Serial.println("** Scan Networks **");
int numSsid = WiFi.scanNetworks();
if (numSsid == -1) {
Serial.println("Couldn't get a wifi connection");
while (true);
}
// print the list of networks seen:
Serial.print("number of available networks:");
Serial.println(numSsid);
// print the network number and name for each network found:
for (int thisNet = 0; thisNet < numSsid; thisNet++) {
Serial.print(thisNet);
Serial.print(") ");
Serial.print(WiFi.SSID(thisNet));
Serial.print("\tSignal: ");
Serial.print(WiFi.RSSI(thisNet));
Serial.print(" dBm");
Serial.print("\tEncryptionRaw: ");
printEncryptionTypeEx(WiFi.encryptionTypeEx(thisNet));
Serial.print("\tEncryption: ");
printEncryptionType(WiFi.encryptionType(thisNet));
}
}
void printEncryptionTypeEx(uint32_t thisType) {
switch (thisType) {
case SECURITY_OPEN:
Serial.print("Open");
break;
case SECURITY_WEP_PSK:
Serial.print("WEP");
break;
case SECURITY_WPA_TKIP_PSK:
Serial.print("WPA TKIP");
break;
case SECURITY_WPA_AES_PSK:
Serial.print("WPA AES");
break;
case SECURITY_WPA2_AES_PSK:
Serial.print("WPA2 AES");
break;
case SECURITY_WPA2_TKIP_PSK:
Serial.print("WPA2 TKIP");
break;
case SECURITY_WPA2_MIXED_PSK:
Serial.print("WPA2 Mixed");
break;
case SECURITY_WPA_WPA2_MIXED:
Serial.print("WPA/WPA2 AES");
break;
}
}
void printEncryptionType(int thisType) {
// read the encryption type and print out the name:
switch (thisType) {
case ENC_TYPE_WEP:
Serial.println("WEP");
break;
case ENC_TYPE_TKIP:
Serial.println("WPA");
break;
case ENC_TYPE_CCMP:
Serial.println("WPA2");
break;
case ENC_TYPE_NONE:
Serial.println("None");
break;
case ENC_TYPE_AUTO:
Serial.println("Auto");
break;
}
}
实验结果 打开 arduino IDE 右上角的串口监视器 可以看到 附件WiFi热点信息
'' 用Ameba-RTL8195AM Mainboard 的 NFC功能 实现和带有NFC功能的现通信''' 实验代码
#include <NfcTag.h>
void setup() {
NfcTag.appendRtdUri("baidu.com");
NfcTag.begin();
}
void loop() {
delay(1000);
}
实验步骤
- 程序烧录后 , 按下复位键,程序开始运行 。
- 打开手机端的 “NFC” APP 。
- 打开安卓手机 的NFC功能 将手机放在Ameba-RTL8195AM Mainboard主板上NFC天线上方5cm 左右的位置。
- 稍等一小会儿 在手机端可以看到 我们要访问的 网址 “WWW.baidu.com”
实验结果 在手机端可以看到 我们要访问的 网址 “WWW.baidu.com” 注:程序烧录 完成后 手机需放在Ameba-RTL8195AM Mainboard主板上NFC天线上方5cm 左右的位置
在这里 我们 需要用到Ameba-RTL8195AM Mainboard 的USB HOST功能和 Wi_Fi AP功能 前期准备 Ameba-RTL8195AM Mainboard控制器 x 1 USB OTG 转接线 X 2 安卓手机 一部 X 1 USB数据线 X 2 计算机一台 X 1 连接示意图 实验例程
#include <WiFi.h>
#include <UVC.h>
char ssid[] = "Dfrobot"; // Set the AP's SSID
char pass[] = "12345678"; // Set the AP's password
char channel[] = "6"; // Set the AP's channel
int status = WL_IDLE_STATUS; // the Wifi radio's status
void setup() {
status = WiFi.status();
// attempt to connect to Wifi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to WPA SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network:
status = WiFi.apbegin(ssid, pass, channel);
if (status == WL_CONNECTED) {
break;
}
// wait 10 seconds for connection:
delay(10000);
}
Serial.println("AP mode already started");
// Default setting is motion jpeg with 320x240 resolution and frame rate is 30fps
UVC.begin();
// Try below setting if you want better resolution
//UVC.begin(UVC_MJPEG, 640, 480, 30, 0);
// wait until UVC is ready for streaming
while (!UVC.available()) {
delay(100);
}
Serial.println("UVC is ready");
Serial.println("Open your rtsp player with this address:");
Serial.println("\trtsp://192.168.1.1/test.dsp");
}
void loop() {
delay(10000);
}
注:以上例程 可在官方 例程中找到 实验步骤
- 按照参考图 ,连接 所需要的硬件。
- 程序烧录后 , 按下复位键,程序开始运行 。
- 打开安卓手机 的WiFi功能 搜索附近的热点 找到我们先前建立的 热点“Dfrobot” ,输入密码“12345678” 连接。
- 打开手机端的 “VLC” APP 输入 网络地址“rtsp://192.168.1.1/test.dsp” 点击右下角 播放 按钮(灰黑色 三角形)。
- 稍等一小会儿 你就可以 看到 摄像头 所拍摄的 图像了。
- 至此 小小监控站就建好了 怎么样 我的 水杯很可爱吧?