M5Atom Matrix - SamuelLarkin/poulailler.IoT GitHub Wiki

ATOM Matrix

SKU:C008-B

atom_matrix_01 atom_matrix_03

Tutorial & Quick-Start

Choose the development platform you want to use, view the corresponding tutorial & quick-Start.

UIFlow Arduino

Description

ATOM Matrix , which has a size of only 24 * 24mm, is the most compact development board in the M5Stack development kit series. It provides more GPIO pins and is very suitable for handy and miniature embedded device development. The main control adopts the ESP32-PICO-D4 chip, which comes integrated with Wi-Fi and Bluetooth technologies and has 4MB of integrated SPI flash memory. The Atom board provides an Infra-Red LED along with the 5 * 5 RGB LED matrix on the panel, a built-in IMU sensor (MPU6886), and a HY2.0 interface. A general purpose programmable button is provied below the RGB Led matrix to enable users to add input support to their various projects. The on-board USB interface (Type-C) enables rapid program uploading and execution. One M2 screw hole is provided on the back for mounting the board.

Note: When using FastLED lib, the recommended brightness of RGB LED is 20. Please do not set it to a high brightness value to avoid damage to the LED and acrylic screen. (In ATOM lib, we have mapped its appropriate brightness range to 0~100)

Product Features

  • ESP32 PICO-based
  • Programmable button
  • 5 * 5 RGB LED matrix panel(WS2812C)
  • Buitl-in Infra-red LED
  • Built-in MPU6886 Inertial Sensor
  • Extendable Pins & Holes
  • Program Platform:Arduino UIFlow

Include

  • 1x ATOM Matrix

Applications

  • Internet of things terminal controller
  • IoT node
  • Wearable peripherals

Specification

Resources Parameter
ESP32 240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi, dual mode Bluetooth
Flash 4MB
Power Input 5V @ 500mA
Port TypeC x 1, GROVE(I2C+I/0+UART) x 1
PIN Port G19, G21,G22,G23,G25, G33
RGB LED WS2812C 2020 x 25
MEMS MPU6886
IR Infrared transmission
Button Custom button x 1
Antenna 2.4G 3D Antenna
Operating Temperature 32°F to 104°F ( 0°C to 40°C )
net weight 3g
Gross weight 14g
Product Size 24 x 24 x 14 mm
Package Size 24 x 24 x 14 mm
Case Material Plastic ( PC )

EasyLoader

EasyLoader is a concise and fast program writer, which has a built-in case program related to the product. It can be burned to the main control by simple steps to perform a series of function verification. Please install the corresponding driver according to the device type. M5Core host Please click here to view the CP210X driver installation tutorial, M5StickC/V/T/ATOM series can be used without driver)

Windows

Description:

Test whether the RGB LED and keys work normally by using the matrix screen text scroll display and key count function.

Pin Map

RGB Led G27
Btn G39
IR G12
SCL G21
SDA G25

Schematic

ATOM_MATRIX_SIMPLE_CIRCUT_20200514

Related Link

Datasheet

Example

  1. Arduino IDE
  • To get the code, please click here
  • Before compiling the program, please configure the development board as M5StickC
  1. UIFlow
  • Click here to view UIFlow example

ATOM Library

atom_matrix_01 atom_matrix_03

Description

ATOM Matrix and ATOM Lite are ESP32 development board with a size of only 24 * 24mm.It provides more GPIO for user customization which is very suitable for embedded smart home devices and in making smart toys. The main control adopts the ESP32-PICO chip which comes integrated with Wi-Fi and Bluetooth technologies and has a 4MB of integrated SPI flash memory. ATOM board provides an Infra-Red LED, RGB LED, buttons, and a PH2.0 interface. In addition, it can connect to external sensors and actuators through 6 GPIOs. The on-board Type-C USB interface enables rapid program upload and execution. ATOM Matrix have 5 * 5 RGB LED matrix, built-in IMU sensor (MPU6886).

PinMap

Neo GPIO27
Btn GPIO39
CLK(MPU6886) GPIO21
SDA(MPU6886) GPIO25
IR GPIO12
Btn GPIO39

GROVE interface

ESP32 chip GPIO32 GPIO26 5V GND
PH2.0 interface SCL SDA 5V GND

Atom pixel tool

AtomPixelTool

Click here to download

Display API Document

Public Types

enum Am_mode{kMoveRight,kMoveLeft,kMoveTop,kMoveButtom}

Public Functions

void animation(uint8_t *buffptr, uint8_t amspeed, uint8_t ammode, int64_t amcount = -1)
void displaybuff(uint8_t *buffptr, int8_t offsetx = 0, int8_t offsety = 0)
void MoveDisPlayBuff(int8_t offsetx = 0, int8_t offsety = 0)
void setBrightness(uint8_t brightness)
void drawpix(uint8_t xpos, uint8_t ypos, CRGB Color)
void drawpix(uint8_t Number, CRGB Color)
void fillpix(CRGB Color)
void clear()

enum Am_mode

Constant Value Description
LED_Display::kMoveRight 0x01 Move the image to the right
LED_Display::kMoveLeft 0x02 Move the image to the left
LED_Display::kMoveTop 0x04 Move the image to the top
LED_Display::kMoveButtom 0x08 Move the image to the buttom

Member Function Documentation


    void animation(uint8_t *buffptr, uint8_t amspeed, uint8_t ammode, int64_t amcount = -1)

Start moving animation of an image

parameter list

name type range default description
buffptr uint8_t* - - Image pointer
amspeed uint8_t 0 ~ MAXSIZE of uint8_t - Time interval of image movement
ammode uint8_t See also Am_mode - Animation mode of image movement
amcount int64_t -1 ~ MAXSIZE of int64_t -1 The distance the image moves (pixels)

return value
null


    void displaybuff(uint8_t *buffptr, int8_t offsetx = 0, int8_t offsety = 0)

Display an image

parameter list

name type range default description
buffptr uint8_t* - - Image pointer
offsetx uint8_t -127 ~ 127 0 Horizontal image offset
offsety uint8_t -127 ~ 127 0 Vertical image offset

return value
null


    void MoveDisPlayBuff(int8_t offsetx = 0, int8_t offsety = 0)

Move the image data in the display buff

parameter list

name type range default description
offsetx int8_t -127 ~ 127 0 Horizontal image offset
offsety int8_t -127 ~ 127 0 Vertical image offset

return value
null


    void setBrightness(uint8_t brightness)

Set the Leds Brightness
Warning: It is not recommended to set the LED brightness to 100. Setting the LED brightness to 100 may cause overheating

parameter list

name type range default description
brightness uint8_t 0 ~ 100 - Brightness of Leds

return value
null


    void drawpix(uint8_t xpos, uint8_t ypos, CRGB Color)

Set the color of a LED in coordinate mode

parameter list

name type range default description
xpos uint8_t 0 ~ 255 0 coordinate x
ypos uint8_t 0 ~ 255 0 coordinate y
Color CRGB - - Color of Led

return value
null


    void drawpix(uint8_t Number, CRGB Color)

Set the color of a LED

parameter list

name type range default description
Number uint8_t 0 ~ 255 0 number of Led
Color CRGB - - Color of Led

return value
null


    void fillpix(CRGB Color)

Set the color of all LEDs

parameter list

name type range default description
Color CRGB - - Color of Leds

return value
null


    void clear()

Close all of LEDs

parameter list
null

return value
null

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