|
| 1 | +# ATOM Display library |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | +### Notes. |
| 8 | +- The HDMI output resolution is fixed at 1280x720 60Hz. |
| 9 | +- If the image does not appear, reinsert the USB cable and wait a few seconds. |
| 10 | +- Audio output function is not included. |
| 11 | +- When inserting or removing the USB cable, please hold the ATOM itself. Repeatedly inserting and removing the USB cable while holding the docking base side may cause stress on the pin headers and result in poor contact. |
| 12 | + |
| 13 | +### 注意事項 |
| 14 | +- HDMIの出力解像度は 1280x720 60Hz 固定です。 |
| 15 | +- 音声出力機能は含まれません。 |
| 16 | +- 画像が表示されない場合はUSBケーブルを挿し直し、数秒待機してください。 |
| 17 | +- USBケーブルを挿抜する際はATOM本体を保持してください。ドッキングベース側を保持した状態でUSB挿抜を行うと、ピンヘッダに応力が掛かり接触不良を引き起こす可能性があります。 |
| 18 | + |
| 19 | + |
| 20 | +Sample Code: |
| 21 | +``` |
| 22 | +#include <M5AtomDisplay.h> |
| 23 | +
|
| 24 | +// Create an instance of M5AtomDisplay |
| 25 | +// Set the resolution in the argument (width, height). default : 1280, 720. |
| 26 | +// M5AtomDisplay のインスタンスを用意 |
| 27 | +// 引数で解像度(幅,高さ)を設定できます。 省略時は 1280, 720 |
| 28 | +
|
| 29 | +M5AtomDisplay display ( 640, 360 ); |
| 30 | +
|
| 31 | +// ※ By lowering the resolution, you can enlarge the image. |
| 32 | +// If the resolution after enlargement is less than 1280x720 |
| 33 | +// , there will be a gap around the periphery. |
| 34 | +// ※ 解像度を下げることで、拡大表示することができます。 |
| 35 | +// 拡大後の解像度が1280x720に満たない場合は外周に隙間が生じます。 |
| 36 | +// width scale: |
| 37 | +// ~ 1280 = x1 |
| 38 | +// ~ 640 = x2 |
| 39 | +// ~ 320 = x4 |
| 40 | +// ~ 256 = x5 |
| 41 | +// ~ 160 = x8 |
| 42 | +
|
| 43 | +// height scale: |
| 44 | +// ~ 720 = x1 |
| 45 | +// ~ 360 = x2 |
| 46 | +// ~ 240 = x3 |
| 47 | +// ~ 180 = x4 |
| 48 | +// ~ 144 = x5 |
| 49 | +// ~ 120 = x6 |
| 50 | +// ~ 102 = x7 |
| 51 | +// ~ 90 = x8 |
| 52 | +
|
| 53 | +
|
| 54 | +void setup(void) |
| 55 | +{ |
| 56 | +// initialize |
| 57 | +// 初期化 |
| 58 | + display.init(); |
| 59 | +
|
| 60 | +// Set the display orientation |
| 61 | +// ディスプレイの向きを設定 |
| 62 | +// 0 = normal / 1 = 90 deg / 2 = 180 deg / 3 = 270 deg / 4~7 = upside down |
| 63 | + display.setRotation(0); |
| 64 | +
|
| 65 | +// Set the color depth ( bpp ) |
| 66 | +// 色深度を設定 |
| 67 | + display.setColorDepth(24); // 24bit per pixel color setting |
| 68 | +//display.setColorDepth(16); // 16bit per pixel color setting ( default ) |
| 69 | +//display.setColorDepth( 8); // 8bit per pixel color setting |
| 70 | +
|
| 71 | + display.startWrite(); |
| 72 | + for (int y = 0; y < display.height(); ++y) |
| 73 | + { |
| 74 | + for (int x = 0; x < display.width(); ++x) |
| 75 | + { |
| 76 | + display.writePixel(x, y, display.color888(x, x+y, y)); |
| 77 | + } |
| 78 | + } |
| 79 | + display.endWrite(); |
| 80 | +
|
| 81 | + for (int i = 0; i < 16; ++i) |
| 82 | + { |
| 83 | + int x = rand() % display.width(); |
| 84 | + int y = rand() % display.height(); |
| 85 | + display.drawCircle(x, y, 16, rand()); |
| 86 | + } |
| 87 | +} |
| 88 | +
|
| 89 | +void loop(void) |
| 90 | +{ |
| 91 | + display.startWrite(); |
| 92 | +
|
| 93 | + static constexpr const char hello_str[] = "Hello ATOM Display !"; |
| 94 | + display.setFont(&fonts::Orbitron_Light_32); |
| 95 | + for (int i = -display.textWidth(hello_str); i < display.width(); ++i) |
| 96 | + { |
| 97 | + display.drawString(hello_str, i, (display.height() - display.fontHeight()) >> 1); |
| 98 | + } |
| 99 | +
|
| 100 | + display.endWrite(); |
| 101 | +} |
| 102 | +``` |
| 103 | + |
| 104 | + |
| 105 | +#### Is PSRAM required ? can I use it with ATOM Lite or ATOM Matrix? |
| 106 | +- PSRAM is NOT required. it will work with ATOM Lite and ATOM Matrix. The label on the product that says "FOR ATOM PSRAM ONLY" is incorrect. |
| 107 | +- In fact, in the early stages of development, we assumed that we would build a 1280x720 frame buffer in the ESP32's PSRAM and output the images. As the development progressed, the frame buffer was placed on the FPGA side, and in the final product, there was no need to have a frame buffer on the ESP32 side. |
| 108 | + |
| 109 | +#### What is the difference between ATOM Lite and ATOM PSRAM? |
| 110 | +- ATOM Lite has ESP32 PICO-D4, ATOM PSRAM has ESP32 PICO-V3-02. |
| 111 | +- Some of the pins on the back are different. The ATOM PSRAM has a G5 pin where the ATOM Lite had a G23 pin, but the G23 pin is gone. |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | +#### PSRAMは必須ですか?ATOM LiteやATOM Matrixで使えますか? |
| 116 | +- PSRAMは必須ではありません。ATOM LiteやATOM Matrixでも動作します。製品のラベルに記載されている "FOR ATOM PSRAM ONLY" という表記は誤りです。 |
| 117 | +- 実は開発初期段階では、ESP32のPSRAMに1280x720のフレームバッファを構築して画像を出力する想定でした。開発が進むにつれ、フレームバッファはFPGA側に持つようになり、最終製品ではにESP32側でフレームバッファを持つ必要がなくなりました。 |
| 118 | + |
| 119 | +#### ATOM LiteとATOM PSRAMの違いは? |
| 120 | +- ATOM Liteには ESP32 PICO D4が搭載されています。ATOM PSRAMには ESP32 PICO V3-02 が搭載されています。 |
| 121 | +- 背面のピンが一部違います。ATOM Liteの G23 が配置されていた箇所には、 ATOM PSRAM では G5 が配置されています。G23は無くなっているため、注意が必要です。 |
| 122 | + |
0 commit comments