_SKU_DFR0476_Ameba RTL8195AM_Mainboard控制器_兼容Arduino - jimaobian/DFRobotWikiCn GitHub Wiki

Ameba-RTL8195AM Mainboard

简介

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

Realtek3.png

引脚说明

| | | | ------------------------------------------------------------- | | | :Ameba_board.png | |

序号 丝印 功能描述
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设置

让IDE支持Ameba-RTL8195AM Mainboard

  • 打开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-RTL8195A开发板

  • 安装完成后显示为

找到Ameba-RTL8195A开发板

在IDE中选择Ameba-RTL8195A

Realtek2.png

部分功能例程

WIFI 猎手

  • 使用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热点信息 Realtek5.png

NFC之初体验

'' 用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” NFC.jpg 注:程序烧录 完成后 手机需放在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 连接示意图 UVC.png 实验例程

#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” 点击右下角 播放 按钮(灰黑色 三角形)。
  • 稍等一小会儿 你就可以 看到 摄像头 所拍摄的 图像了。
  • 至此 小小监控站就建好了 怎么样 我的 水杯很可爱吧?

Uvc_cup.png

更多

shopping_car.png DFRobot商城购买链接

⚠️ **GitHub.com Fallback** ⚠️