MicroLearner | ESP32-C3 Super Mini

฿790.00 มีค่าส่งเริ่มต้น 45 บาท ค่าจัดส่งเริ่มต้นโดยประมาณ อาจมีการเปลี่ยนแปลงตามที่อยู่หรือปริมาณที่ท่านเลือก ระบบจะคำนวณค่าจัดที่แท้จริงในหน้าชำระเงิน

มีสินค้าอยู่ 5

หมวดหมู่: ป้ายกำกับ:

รายละเอียดสินค้า

คำอธิบาย

 

MicroLearner | เริ่มต้นง่าย แม้ไม่มีพื้นฐาน

หากคุณไม่เคยสัมผัสไมโครคอนโทรลเลอร์มาก่อน MicroLearner คือจุดเริ่มต้นที่สมบูรณ์แบบ! ไม่ต้องต่อสาย ไม่ต้องกลัวพัง เพียงเชื่อมต่อกับคอมพิวเตอร์ แล้วเริ่มเขียนโค้ดได้ทันที

แทนที่จะต้องกังวลเรื่องฮาร์ดแวร์ตั้งแต่วันแรก MicroLearner ออกแบบมาเพื่อให้คุณได้โฟกัสกับการเขียนโปรแกรมก่อน เรียนรู้โครงสร้างและแนวคิดของโค้ด พร้อมทดลองใช้งานจริงในซอฟต์แวร์ จากนั้นค่อยก้าวไปสู่การเชื่อมต่ออุปกรณ์จริงอย่างมั่นใจ

โต้ตอบกับอุปกรณ์จริง เพื่อเรียนรู้การทำงานของฮาร์ดแวร์ ในแบบที่เข้าใจง่ายและเป็นธรรมชาติ

MicroLearner สนับสนุนแนวทาง Reverse Engineering ค่อยเป็นค่อยไป ทำให้การเรียนรู้เป็นเรื่องสนุก และไม่ใช่เรื่องน่ากลัวอีกต่อไป!

 

ขนาดเล็กกะทัดรัด เรียนรู้ได้ทุกที่ 60x43x25mm.

 

 

 

บอร์ดเรียนรู้ MicroLearner –  ESP32 C3 Super Mini ได้รับการออกแบบมาเพื่อรองรับการเรียนรู้และพัฒนาทักษะการเขียนโปรแกรมไมโครคอนโทรลเลอร์ โดยมาพร้อมกับตัวอย่างการเขียนโปรแกรมที่ครอบคลุมการใช้งานอินเทอร์เฟซต่างๆ ดังนี้:

  • การควบคุม Digital (LED On/Off): เรียนรู้การควบคุม LED เปิด-ปิดผ่านการส่งสัญญาณดิจิตอลจากไมโครคอนโทรลเลอร์
  • รับค่าจากปุ่มกด (Digital Input): ตัวอย่างโปรแกรมรับค่าจากปุ่มกดเพื่อนำมาประมวลผล
  • การใช้งาน Analog (ADC): รองรับการเชื่อมต่อเซนเซอร์แบบอนาล็อกจากภายนอก และการอ่านค่าผ่าน ADC
  • การควบคุม PWM (การหรี่ไฟ): ตัวอย่างการหรี่ไฟด้วย PWM เพื่อควบคุมความสว่างของ LED
  • หน้าจอ OLED (I2C): ใช้การสื่อสารผ่าน I2C เพื่อแสดงผลข้อมูลบนหน้าจอ OLED พร้อมรองรับการเชื่อมต่อ I2C ภายนอก
  • UART สำหรับการ Debug: มีพอร์ต UART สำหรับการดีบักข้อมูลและสามารถรีแมป UART ได้ตามความต้องการ

บอร์ดนี้ถูกออกแบบมาเพื่อให้ผู้ใช้งานสามารถเรียนรู้การเขียนโปรแกรมได้อย่างหลากหลาย ทั้งการควบคุมอุปกรณ์ดิจิตอลและอนาล็อก รวมถึงการเชื่อมต่อกับอุปกรณ์ภายนอก ผ่านอินเทอร์เฟซมาตรฐานต่างๆ ที่ใช้งานได้จริงในโปรเจ็กต์พัฒนา

esp32-c3-super-mini

esp32-c3-super-mini

 

MicroLearner | เรียนโค้ดก่อน ต่อสายทีหลัง สนุก ปลอดภัย ไม่ต้องกลัวพัง!

การกำหนดพิน

LED1 เชื่อมต่อกับ GPIO2 (high/pull-up)
LED2 เชื่อมต่อกับ GPIO1
LED3 เชื่อมต่อกับ GPIO0
ปุ่ม A เชื่อมต่อกับ GPIO6
ปุ่ม B เชื่อมต่อกับ GPIO7
ปุ่ม C เชื่อมต่อกับ GPIO10
Passive Buzzer เชื่อมต่อกับ GPIO3
OLED – SDA เชื่อมต่อกับ GPIO8
OLED – SCL เชื่อมต่อกับ GPIO9

ข้อมูลเพิ่มเติม

ข้อมูลเพิ่มเติม

ขนาด 20 × 14 × 6 เซนติเมตร

คู่มือการใช้งาน

ทำไมไฟที่ LED1 ถึงติด?

บอร์ดนี้ถูกออกแบบมาให้สามารถใช้งานขาอินพุตและเอาต์พุตต่างๆ ได้อย่างครบถ้วน ทั้งนี้ในการออกแบบไมโครคอนโทรลเลอร์ มักจะมีบางขาที่ถูกตั้งค่าเป็น pull-up หรือ pull-down ภายใน ซึ่งจะส่งผลให้บางขามีสถานะที่ตายตัวโดยธรรมชาติของวงจร นี่เป็นสิ่งที่พบได้ทั่วไปในไมโครคอนโทรลเลอร์หลายรุ่น และเป็นส่วนหนึ่งของการเรียนรู้การทำงานของอุปกรณ์เหล่านี้

เพื่อตอบสนองต่อการเรียนรู้ เราได้กำหนดขา LED1 สำหรับการสังเกตและทดสอบการทำงานของไมโครคอนโทรลเลอร์ ผู้ใช้งานสามารถเห็นการทำงานจริงของสถานะ pull-up หรือ pull-down ผ่าน LED1 (GPIO2 – ขานี้มีการ pull-up และต้องอยู่ในสถานะ HIGH ระหว่างการบูต เพื่อให้เข้าสู่โหมดปกติ) ซึ่งจะช่วยให้เข้าใจหลักการทำงานของไมโครคอนโทรลเลอร์ได้อย่างชัดเจนมากขึ้น

มันจะเกิดขึ้นเมื่อไหร่?

ในระหว่าง การบูต และ การแฟลช ไมโครคอนโทรลเลอร์ ขาบางขาอาจมีสถานะที่กำหนดไว้ล่วงหน้า ซึ่งเกิดจากการตั้งค่า pull-up หรือ pull-down ภายใน โดยเฉพาะในช่วงเริ่มต้นของการบูตและการแฟลชเฟิร์มแวร์ ขาเหล่านี้จะถูกตั้งค่าเป็นสถานะ HIGH หรือ LOW อัตโนมัติ เพื่อรองรับกระบวนการบูตหรือการโปรแกรมจากภายนอก

  • ในช่วงบูต: ขาบางขาที่ถูกตั้งค่าไว้ล่วงหน้าอาจแสดงสถานะคงที่ เช่น ขาบางตัวอาจอยู่ในสถานะ HIGH เสมอเนื่องจากการตั้งค่า pull-up ภายใน ซึ่งเป็นเรื่องปกติและจำเป็นสำหรับการทำงานของบูตโหลดเดอร์ (bootloader)
  • ในช่วงแฟลชเฟิร์มแวร์: สถานะของขาเหล่านี้จะถูกตั้งค่าเพื่อให้การแฟลชเฟิร์มแวร์ผ่านโปรโตคอลเช่น UART หรือ USB-CAN ทำงานได้อย่างราบรื่น ขาที่เกี่ยวข้องกับกระบวนการนี้จะมีสถานะคงที่ในบางช่วงของการส่งข้อมูล

แม้จะมีการตั้งค่าเหล่านี้ในช่วงบูตและแฟลช แต่จะไม่มีผลต่อการใช้งานปกติ หลังจากที่บอร์ดบูตสำเร็จหรือการแฟลชเสร็จสิ้นแล้ว ผู้ใช้สามารถใช้งานขาเหล่านั้นได้ตามปกติสำหรับการควบคุมอุปกรณ์หรือเชื่อมต่อเซนเซอร์ต่างๆ

การสังเกตสถานการณ์นี้จะเป็นประสบการณ์การเรียนรู้ที่ดีสำหรับการเข้าใจการทำงานภายในของไมโครคอนโทรลเลอร์ แต่จะไม่ขัดขวางการใช้งานในแอปพลิเคชันจริง

เซ็ตสถานะ: หากไฟยังคงติดค้างสามารถเซ็ตสถานะง่ายๆได้ด้วยคำสั่งนี้

int led1 = 2;

voidsetup() {
pinMode(led1, OUTPUT);
digitalWrite(led1, LOW);
}
voidloop() {
}

เริ่มต้นใช้งาน ESP32 C3 Super Mini

ขั้นตอนที่ 1  ดาวน์โหลด Arduino IDE

  • เรียกดู: https://www.arduino.cc/en/Main/Software
  • ดาวน์โหลด IDE สำหรับระบบปฏิบัติการ Windows/Mac/Linux ของคุณ

ขั้นตอนที่ 2

เสียบบอร์ด ESP32 C3 Super Mini เข้ากับคอมพิวเตอร์ของคุณ บอร์ดจะใช้พลังงานจากสาย USB สำหรับตัวอย่างนี้ จึงไม่จำเป็นต้องมีแหล่งจ่ายไฟภายนอก

*โปรดตรวจสอบว่าสาย USB-C สามารถใช้งานถ่ายโอน Data ได้

  • เสียบสาย USB เข้ากับคอมพิวเตอร์ของคุณ
  • เสียบสาย USB เข้ากับบอร์ด ESP32 C3 Super Mini

ขั้นตอนที่ 3  กำหนดค่า Arduino IDE สำหรับบอร์ด ESP32 C3 Super Mini

  • เริ่ม Arduino IDE
  • จากเมนูหลัก เลือก Arduino > Preferences…
  • สำหรับ Additional Board Manager URLs ให้เพิ่ม Url นี้ลงไป:
https://dl.espressif.com/dl/package_esp32_index.json
  • เลือก Tools > Board > Boards Manager
  • พิมพ์ esp32
  • จะเห็นรายการสำหรับ esp32 โดย  espressif systems
  • คลิก install
  • คลิก Close

ขั้นตอนที่ 4  เลือกบอร์ดของคุณ

  • เลือก Tools > Board : *
  • เลือกบอร์ดของคุณ ( ESP32C3 Dev Module )
  • เลือก Tools > Port : *
  • เลือกพอร์ตที่กำลังต่อใช้งาน (COM_X , /dev/…)
  • (ในบางครั้งจำเป็นต้อง กดปุ่ม BOOT ค้างไว้ แล้วกด RESET จึงจะเห็นพอร์ต)

ขั้นตอนที่ 5  เรียกใช้ตัวอย่าง Blink sketch

  • เลือก File > Examples > 01. Basics > Blink

Code ควรมีลักษณะดังนี้:

int LED = 8;

void setup() {
pinMode(LED, OUTPUT);
}

void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}

ขั้นตอนที่ 6  อัปโหลด Code ไปยัง ESP32 C3 Super Mini

  • ก่อนอัพโหลดต้อง กดปุ่ม BOOT ค้างไว้ แล้วกด RESET
  • คลิกปุ่ม Upload (สัญลักษณ์ลูกศรชี้ขวา บนแถบเครื่องมือ IDE)

ขั้นตอนที่ 7 ตรวจสอบการทำงานของโปรแกรม

  • ตรวจสอบ LED สีน้ำเงิน ออนบอร์ดกะพริบและดับ
  • หากโปรแกรมไม่เริ่มทำงาน ให้กดปุ่ม RST  1 ครั้ง เพื่อทำการรีเซ็ต

 


 

USB CDC บน Arduino ide หากเลือกเป็น Disable จะไม่สามารถใช้งาน Serial Monitor ได้

เมื่อเปิด USB CDC: พอร์ต USB ของ ESP32-C3 จะทำงานในโหมดพอร์ตอนุกรมเสมือน คุณสามารถเชื่อมต่อไมโครคอนโทรลเลอร์กับคอมพิวเตอร์ผ่านสาย USB เพื่อส่งและรับข้อมูลผ่านพอร์ตอนุกรม (เช่น การดีบักหรือการสื่อสารกับโปรแกรมบนคอมพิวเตอร์)

เมื่อปิด USB CDC: พอร์ต USB ของ ESP32-C3 จะไม่ถูกกำหนดให้ทำงานเป็นพอร์ตอนุกรมเสมือนอีกต่อไป การสื่อสารกับคอมพิวเตอร์ผ่าน USB จะไม่สามารถทำได้โดยตรง

สินค้าภายในกล่อง

ตัวอย่างการโปรแกรม

 

โค้ดทดสอบ QC

//กำหนดไอดีผู้ใช้งาน uart
int i = 1;
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define PIN_SDA 8
#define PIN_SCL 9
#define BUZZER_PIN 3 // กํ หนดหมายเลขขาที่ต่อกับ buzzer
int led1 = 2;
int led2 = 1;
int led3 = 0;
const int buttonPin1 = 6; // กำหนดตัวแปรสำหรับเก็บหมายเลขของพินปุ่ม 1
const int buttonPin2 = 7; // กำหนดตัวแปรสำหรับเก็บหมายเลขของพินปุ่ม 2
const int buttonPin3 = 10; // กำหนดตัวแปรสำหรับเก็บหมายเลขของพินปุ่ม 3
int buttonState1 = 0; // กำหนดตัวแปรสำหรับเก็บค่าสถานะปุ่ม 1 (เริ่มต้นที่ 0)
int buttonState2 = 0; // กำหนดตัวแปรสำหรับเก็บค่าสถานะปุ่ม 2 (เริ่มต้นที่ 0)
int buttonState3 = 0; // กำหนดตัวแปรสำหรับเก็บค่าสถานะปุ่ม 3 (เริ่มต้นที่ 0)
void setup() {
Serial.begin(9600);
while (!Serial) {
// รอให้ Serial Monitor เปิด
}
// กํ หนด UART1 ให้ใช้ TX = GPIO5, RX = GPIO4 ที่ 9600 baud
Serial1.begin(9600, SERIAL_8N1, 4, 5);
Serial.println("UART Start");
pinMode(BUZZER_PIN, OUTPUT); // กํ หนดขาเป็น Output
pinMode(buttonPin1, INPUT); // กำหนดโหมดของพินปุ่ม 1 เป็น INPUT
pinMode(buttonPin2, INPUT); // กำหนดโหมดของพินปุ่ม 2 เป็น INPUT
pinMode(buttonPin3, INPUT); // กำหนดโหมดของพินปุ่ม 3 เป็น INPUT
digitalWrite(buttonPin1, LOW); // เปิดใช้งาน pull-down resistor
digitalWrite(buttonPin2, LOW); // เปิดใช้งาน pull-down resistor
digitalWrite(buttonPin3, LOW); // เปิดใช้งาน pull-down resistor
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Wire.setPins(PIN_SDA, PIN_SCL);
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
for (;;)
;
}
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(15, 5);
display.print(F("iMicon"));
display.setCursor(15, 25);
display.print(F("micro"));
display.setCursor(15, 45);
display.print(F("learning"));
display.display();
beep(2000, 100);
beep(4000, 150); //ให้ความถี่ และความยาว milliseconds
}
void loop() {
// ตรวจสอบว่ามีข้อมูลเข้ามาที่ RX ของ Serial1 หรือไม่
if (Serial1.available()) {
String data = Serial1.readString();
// แสดงข้อมูลที่รับมาใน Serial Monitor
Serial.print("Received: ");
Serial.println(data);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(15, 5);
display.print(data);
display.display();
}
// อ่านค่าสถานะปุ่ม 1
buttonState1 = digitalRead(buttonPin1);
// ถ้าปุ่มถูกกด (สถานะ HIGH)
if (buttonState1 == HIGH) {
// ให้ทำสิ่งที่ต้องการทำ
// ตัวอย่าง: ส่งข้อความ "Button 1 pressed" ไปยัง Serial Monitor
Serial.println("Button 1 pressed");
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(15, 5);
display.print(F(""));
display.setCursor(15, 25);
display.print(F("Button 1"));
display.setCursor(15, 45);
display.print(F("pressed"));
display.display();
beep(500, 100);
beep(2000, 80);
beep(500, 100);
beep(2000, 80);
delay(250); // รอสักครู่
// ส่งข้อมูล "Hello UART" ไปที่ Serial1 (TX)
Serial1.print("U");
Serial1.print(i);
Serial1.println(" BTN 1 pressed");
}
// อ่านค่าสถานะปุ่ม 2
buttonState2 = digitalRead(buttonPin2);
// ถ้าปุ่มถูกกด (สถานะ HIGH)
if (buttonState2 == HIGH) {
// ให้ทำสิ่งที่ต้องการทำ
// ตัวอย่าง: ส่งข้อความ "Button 2 pressed" ไปยัง Serial Monitor
Serial.println("Button 2 pressed");
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(15, 5);
display.print(F(""));
display.setCursor(15, 25);
display.print(F("Button 2"));
display.setCursor(15, 45);
display.print(F("pressed"));
display.display();
beep(500, 100);
beep(2000, 80);
beep(500, 100);
beep(2000, 80);
delay(250); // รอสักครู่
// ส่งข้อมูล "Hello UART" ไปที่ Serial1 (TX)
Serial1.print("U");
Serial1.print(i);
Serial1.println(" BTN 2 pressed");
}
// อ่านค่าสถานะปุ่ม 3
buttonState3 = digitalRead(buttonPin3);
// ถ้าปุ่มถูกกด (สถานะ HIGH)
if (buttonState3 == HIGH) {
// ให้ทำสิ่งที่ต้องการทำ
// ตัวอย่าง: ส่งข้อความ "Button 3 pressed" ไปยัง Serial Monitor
Serial.println("Button 3 pressed");
digitalWrite(led3, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(15, 5);
display.print(F(""));
display.setCursor(15, 25);
display.print(F("Button 3"));
display.setCursor(15, 45);
display.print(F("pressed"));
display.display();
beep(500, 100);
beep(2000, 80);
beep(500, 100);
beep(2000, 80);
delay(250); // รอสักครู่
// ส่งข้อมูล "Hello UART" ไปที่ Serial1 (TX)
Serial1.print("U");
Serial1.print(i);
Serial1.println(" BTN 3 pressed");
}
}
void beep(int frequency, int duration) {
tone(BUZZER_PIN, frequency, duration); // สร้างเสียงที่ต่อเข้ากับขาของ buzzer
delay(duration); // รอจนกระทบสร้างเสียงเสร็จสิ้น
}

ตัวอย่างโปรเจค

รวมบทความเรียนรู้พื้นฐาน  นอกจากนี้ยังเนื้อหาที่ท้าทายสำหรับการเสริมสร้างความเข้าใจและพัฒนาตนเอง

 

✨ รุ่นที่ใหม่กว่า

MicroLearner | ESP32-C3 Super Mini

฿790.00 มีค่าส่งเริ่มต้น 45 บาท ค่าจัดส่งเริ่มต้นโดยประมาณ อาจมีการเปลี่ยนแปลงตามที่อยู่หรือปริมาณที่ท่านเลือก ระบบจะคำนวณค่าจัดที่แท้จริงในหน้าชำระเงิน

มีสินค้าอยู่ 5