Arduino Mini Ultra

Trong nhiều ứng dụng phức tạp đòi hỏi nhiều bộ nhớ, flash và các chân IO mà các mạch Arduino sử dụng atmega328p không đáp ứng được trong khi Arduino MEGA thì giá thành quá cao thì Arduino Mini Ultra là một sự lựa chọn ở giữa đáp ứng nhu cầu cao trong khi vẫn giữ được giá thành ở mức thấp và kích thước nhỏ.

Arduino Mini Ultra tương thích hoàn toàn với Arduino IDE và có thể dễ dàng lập trình bằng Arduino như các board Arduino chuẩn khác.

Ngoài ra, Arduino Mini Ultra hỗ trợ sẵn cổng Micro USB và mạch nạp, cùng với mạch sạc pin và tùy chọn tích hợp mạch phát sóng khoảng cách xa LoRa, đặc biệt phù hợp cho các ứng dụng sensor chạy pin và LoRa.

  • Thông Số Kỹ Thuật

    • Microcontroller: ATmega328P-MU
    • Operating Voltage: 5V
    • Tương thích hoàn toàn với Arduino IDE
    • Microcontroller – ATMEGA1284P-AU 8MHz
    • Tích hợp mạch phát sóng khoảng cách xa LoRa AI-Thinker RA-01 433MHz (tùy chọn) với cả 3 loại anten dùng dây, uFL và SMA
    • Sử dụng low dropout regulator MCP1703 tiết kiệm dòng (1.6 μA) 3.3V 250 mA
    • Ultra low power – tiêu thụ tổng cộng 20.0 μA ở sleep mode
    • Tích hợp sẵn mạch nạp CH340G
    • Hỗ trợ cấp nguồn từ cả Micro USB và các pin 4.2 V Li-Ion/Li-Po
    • Hỗ trợ sạc pin Li-Ion/Li-Po bằng IC MCP73831
    • 2 indicator LED for power good and charging process indication
    • Suitable for battery operation (3.6 V Lithium-Ion/Polymer)
    • Onboard LED nối với chân D15
    • Tích hợp mạch đo điện áp của pin nối với chân A7 giúp phát hiện tình trạng của pin

Tìm hiểu thêm thông tin về chuẩn cắm và hệ sinh thái module Blocky Piece ở đây.

Thiết Kế Phần Cứng

  • Các chân analog: A0, A1, A2, A3, A4, A5, A6, A7
  • Các chân digital: D0 -> D23
  • SPI: D4 (SS), D5 (MOSI), D6 (MISO), D7 (SCK)
  • 2 UART: D8(TX)-D9(RX), D10(RX),-D11(TX)
  • I2C: D16(SCL), D17(SDA)
  • Led onboard: D15
  • Chân A7 nối với mạch đo pin

Sơ đồ nối chân với mạch Lora RA-01

Mini Ultra    <————>  RA-01

VCC            <————>  VCC

GND            <————>  GND

D4               <————>  NSS

D5               <————>  MOSI

D6               <————>  MISO

D7               <————>  SCK

D2               <————>  DIO0

D3               <————>  RESET (via jumper pad)

D22             <————>  DIO1 (via jumper pad)

D21             <————>  DIO2 (via jumper pad)

Schematic

Cài Đặt Driver

Bạn cần một dây cáp Micto-USB (loại cáp tương tự như cáp sạc cho Android Phone) và cắm 1 đầu vào board, đầu còn lại cắm vào máy tính. Khi đó đèn led power sẽ sáng.

Download file driver cho CH340G ở đây. Nếu bạn sử dụng Windows thì mở file cài đặt và tiến hành install.

Sau khi cài đặt xong, trên máy tính sẽ hiển thị 1 COM port mới trong Device Manager của Windows.

Cài Đặt Arduino IDE

Để lập trình cho Blocky UNO bạn cần cài đặt phần mềm Arduino IDE. Bạn download phần mềm Arduin IDE theo link này https://www.arduino.cc/download_handler.php?f=/arduino-1.8.7-windows.exe và chạy file cài đặt.

Chọn đường dẫn thư mục cài đặt và Install

Cài đặt board cho Atmega1284p

Arduino IDE mặc định chưa hỗ trợ Atmega1284p. Bạn cần làm các bước sau để Arduino hỗ trợ.

  • Mở Arduino IDE, mở menu File > Preferences và nhập link này vào trong trường Additional Boards Manager URLs:
    https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
  • Nếu có nhiều link thì bạn dùng dấu phẩy (,) để chia cách
  • Mở menu Tools > Board > Boards Manager… , tìm kiếm và cài đặt board tên MightyCore.
  • Sau khi cài đặt, đóng cửa sổ Boards Manager.
  • Vào mục Tools > Boards và chọn ATmega1284, Clock là 8Mhz External.

 

Bạn có thể tìm hiểu chi tiết thêm ở link này: https://github.com/MCUdude/MightyCore

Upload code

Bạn chạy chương trình Arduino và mở đoạn code example từ menu File > Examples >01.Basics > Blink.

enter image description here

Bạn chọn loại board trong menu Tools > Board đúng như nói ở trên và COM port tương ứng, thường là từ COM 3 trở lên (COM 1 và COM 2 là được sử dụng bởi Windows cho mục đích khác).

Vì chân tín hiệu nối với led onboard là D15 nên bạn cần sửa code lại cho bật tắt chân D15.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin D15 as an output.
  pinMode(15, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(15, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(15, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

 

Click Upload để nạp code cho board và sau khi upload xong bạn sẽ thấy đèn led D15 chớp tắt sau mỗi giây.

enter image description here

Làm Việc Với Lora

Để lập trình cho Lora trên Mini Ultra, bạn cần cài đặt thư viện Lora cho Arduino từ link này https://github.com/sandeepmistry/arduino-LoRa hoặc tiện hơn là trong Library Manager.

Code Gửi Dữ Liệu

#include <SPI.h>
#include <LoRa.h>

int counter = 0;

#define ss 4
#define rst 3
#define dio0 2

void setup() {
  Serial.begin(115200);
  while (!Serial);

  Serial.println("LoRa Sender");
  LoRa.setPins(ss, rst, dio0);

  if (!LoRa.begin(433E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
}

void loop() {
  Serial.print("Sending packet: ");
  Serial.println(counter);

  // send packet
  LoRa.beginPacket();
  LoRa.print("hello ");
  LoRa.print(counter);
  LoRa.endPacket();

  counter++;

  delay(1000);
}

Code Nhận Dữ Liệu

#include <SPI.h>
#include <LoRa.h>

#define ss 4
#define rst 3
#define dio0 2

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("LoRa Receiver");
  LoRa.setPins(ss, rst, dio0);

  if (!LoRa.begin(433E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
}

void loop() {
  // try to parse packet
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    // received a packet
    Serial.print("Received packet '");

    // read packet
    while (LoRa.available()) {
      Serial.print((char)LoRa.read());
    }

    // print RSSI of packet
    Serial.print("' with RSSI ");
    Serial.println(LoRa.packetRssi());
  }
}

Tài Liệu Tham Khảo

Schematic

Đang cập nhật

Datasheet

ATmega1284p

Thông tin thêm

Getting Started with Arduino

Arduino Language Reference

Download the Arduino Software(IDE)

Arduino FAQ

Arduino Introduction

Wikipedia page for Arduino