Mapolang

เขียนเฟิร์มแวร์ ESP32 และ Arduino ด้วยภาษาไทยหรืออังกฤษ — ไม่ต้องติดตั้งเครื่องมือซับซ้อน แค่เขียนโค้ด สร้าง และเฟลชจากเบราว์เซอร์

ภาษาสำหรับไมโครคอนโทรลเลอร์
Mapolang preview
English Code
hello_en.mapo
โค้ดภาษาไทย
hello_th.mapo
ทำไมต้อง Mapo

ทำไมต้องภาษา Mapo?

Mapo (Mapolang) คือภาษาระดับสูงสำหรับเขียนเฟิร์มแวร์ลงบอร์ด ESP32 / ESP8266 / STM32 — เขียนโค้ดเป็นภาษาไทยได้ 100% แล้วกดปุ่ม “สร้าง + แฟลช” จากในเบราว์เซอร์ได้เลย ไม่ต้องติดตั้ง Arduino IDE ไม่ต้องตั้งค่า toolchain

11 บอร์ด ESP32 / C3 / S2 / S3 / C6 · ESP8266 · STM32 F103, F401, F411, G4, H7
100% ไทย คีย์เวิร์ด ชื่อตัวแปร ชื่อขา ตั้งเป็นภาษาไทยได้ทั้งหมด
0 การติดตั้ง เขียนและแฟลชผ่าน Web Serial บน Chrome / Edge
1 ปุ่ม แปลภาษา → คอมไพล์ → แฟลช พร้อมเติมไลบรารีให้เอง

เหตุผลที่คนไทยควรใช้ Mapo

  1. 01

    เขียนโค้ดเป็นภาษาไทยได้จริง ไม่ใช่แค่คอมเมนต์

    คีย์เวิร์ดทุกตัวมีคำไทยเทียบเท่า และตั้งชื่อตัวแปร/ขา/งาน เป็นภาษาไทยได้ทั้งหมด — เด็ก ครู หรือช่างที่ไม่ได้ถนัดอังกฤษก็อ่านโค้ดออกทันที

  2. 02

    ไม่ต้องติดตั้งอะไรเลย

    เปิดเบราว์เซอร์ เขียน แล้วแฟลชได้เลย — ตัดปัญหา “ลงโปรแกรมไม่ผ่าน” ที่กินเวลาครึ่งคาบเรียนออกไปทั้งขั้นตอน

  3. 03

    คุมฮาร์ดแวร์ได้จริง ครอบคลุมอุปกรณ์ที่ใช้บ่อย

    จอ LCD I2C · OLED (SSD1306 / SH1106) · 7-Segment · NeoPixel · เซนเซอร์ DHT11, DS18B20, LM35, LDR, HC-SR04, PIR, MPU6050, BMP280 · Servo / Stepper / PWM · PID Controller · บันทึกค่าถาวรในตัว

  4. 04

    เน็ตเวิร์กและคลาวด์ในตัว

    WiFi · Access Point · NTP · MQTT · Web Server · HTTP Client · TCP / UDP · WebSocket · JSON — มีคำสั่งมาตรฐานพร้อมใช้ ไม่ต้องหาไลบรารีเพิ่ม

  5. 05

    หลายงานพร้อมกัน โดยไม่บล็อกกัน

    สั่ง รอ ในงานไหน งานนั้นหยุดรอโดยไม่แช่ทั้งบอร์ด ระบบแปลงเป็น state machine แบบ millis() ให้อัตโนมัติ — เขียน 3 งานให้ทำงานพร้อมกันได้โดยไม่ต้องเขียน millis() เองแม้แต่บรรทัดเดียว

  6. 06

    รองรับสไตล์หุ่นยนต์ (topic / pub / recv)

    แยก “อวัยวะ” (อ่านเซนเซอร์) ออกจาก “สมอง” (ตัดสินใจ) แล้วคุยกันผ่าน topic — แนวคิดเดียวกับ ROS2 แต่ทำงานบนบอร์ดเดียว ทำให้เพิ่มเซนเซอร์ใหม่โดยไม่ต้องแก้สมอง

  7. 07

    มี AI ผู้ช่วยที่รู้จักภาษา Mapo ในตัว

    ผู้ช่วย AI ในหน้า IDE ถูกป้อนคู่มือภาษา Mapo ไว้แล้ว จึงตอบตรงไวยากรณ์ทั้งคำไทยและอังกฤษ ช่วยแก้ error และอธิบายเป็นภาษาไทย

  8. 08

    เอาไปใช้งานจริงได้ ไม่ใช่แค่ของเล่นในห้องเรียน

    อัปเดตเฟิร์มแวร์ทางไกล (OTA) · MQTT + Web Server + JSON ครบ · จำค่าที่ตั้งไว้แม้ไฟดับ · PID Controller · พร้อมเอกสารสเปกและพินเอาต์สำหรับติดตั้งหน้างาน

ตารางเทียบกับ Arduino C++ และ MicroPython

งานเดียวกัน เขียนต่างกันแค่ไหน — ดูจากโค้ดจริง

งานภาษา Mapo เขียนไทยได้ 100%Arduino C++ มาตรฐานเดิมMicroPython ไพธอนบนบอร์ด
ไฟกระพริบ
ไฟ1 2 ออก

งาน หลัก
  ทำซ้ำ
    เปิด ไฟ1
    รอ 500 มิลลิวินาที
    ปิด ไฟ1
    รอ 500 มิลลิวินาที
  จบทำซ้ำ
จบงาน
#define LED 2

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

void loop() {
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
}
from machine import Pin
from time import sleep

led = Pin(2, Pin.OUT)
while True:
    led.value(1)
    sleep(0.5)
    led.value(0)
    sleep(0.5)
อ่านอุณหภูมิ DHT11
ตัววัด = ดีเอชที11(4)
อุณหภูมิห้อง = ตัววัด.อุณหภูมิ
#include <DHT.h>

DHT dht(4, DHT11);
void setup(){ dht.begin(); }
float t = dht.readTemperature();
import dht
from machine import Pin

d = dht.DHT11(Pin(4))
d.measure()
t = d.temperature()
หน่วงเวลาโดยไม่ค้างบอร์ด
เซนเซอร์แสง = แอลดีอาร์(A0)

งาน อ่านแสง
  ทำซ้ำ
    ระดับแสง = เซนเซอร์แสง.แสง
    รอ 2 วินาที
  จบทำซ้ำ
จบงาน
unsigned long prev = 0;

void loop() {
  if (millis() - prev >= 2000) {
    prev = millis();
    int v = analogRead(34);
  }
}
import asyncio

async def read():
    while True:
        v = adc.read()
        await asyncio.sleep(2)

asyncio.run(read())
ส่งค่าขึ้น MQTT
คิวส่ง = เอ็มคิวทีที("broker", 1883)

ให้ คิวส่ง.ส่ง "บ้าน/อุณหภูมิ" 26.5
#include <PubSubClient.h>
#include <WiFi.h>

WiFiClient esp;
PubSubClient mqtt(esp);
mqtt.setServer("broker", 1883);
mqtt.publish("home/temp", "26.5");
# pip install umqtt.simple first
from umqtt.simple import MQTTClient

c = MQTTClient("id", "broker")
c.connect()
c.publish(b"home/temp", b"26.5")

ตารางเทียบคุณสมบัติ

ความสามารถMapoArduino C++MicroPythonBlockly / ลากบล็อก
เขียนภาษาไทยได้ทั้งโค้ด✓✗✗△ บล็อกไทย แต่ไม่เห็นโค้ดจริง
ไม่ต้องติดตั้งเครื่องมือ (ใช้เว็บ)✓✗△ ต้องแฟลชเฟิร์มแวร์ + ใช้ Thonny✓
เติมไลบรารีให้อัตโนมัติ✓✗✗△ บางเจ้า
หน่วงเวลาแบบไม่ค้างบอร์ด✓ ให้เลย✗ ต้องเขียน millis() เอง△ ต้องใช้ asyncio△ ต้องเข้าใจเอง
หลายงานพร้อมกัน✓ เขียนเป็น “งาน”✗ ออกแบบเอง△ asyncio / thread✗
Web Server ในตัว✓△ WiFi + HTTP เขียนเอง△ เขียนเอง✗
MQTT ในตัว✓△ ติดตั้ง PubSubClient△ ติดตั้ง umqtt✗
อัปเดตทางไกล (OTA)✓ ในตัว△ ทำได้แต่ซับซ้อน✗✗
AI ช่วยเขียนที่รู้จักภาษา✓✗✗✗
ใช้ทำงานเชิงพาณิชย์✓✓△ จำกัดด้านประสิทธิภาพ△ จำกัด
ขนาดชุมชน / แหล่งช่วยเหลือ△ ใหม่ กำลังโต✓✓ ใหญ่มาก✓ ใหญ่✓ ใหญ่

✓ = มีในตัว · △ = ทำได้แต่ต้องประกอบเอง/มีเงื่อนไข · ✗ = ไม่มี

เหมาะกับใคร

  • โรงเรียน / ศูนย์ STEM เด็กได้ต่อวงจรจริงและเขียนโค้ดจริง ครบจบในคาบเดียว ต่อเซนเซอร์ → ไฟติด → เขียนเงื่อนไขของตัวเองได้ทันที
  • ครูผู้สอน สื่อการสอนที่ทั้งห้องอ่านออก พร้อมบทเรียนแยกขั้นให้แจกได้เลย แจกชุด STEM Kit ให้ทำตามทีละขั้น และเห็นผลทันที
  • เมกเกอร์ / นักศึกษา WiFi เว็บ MQTT และเซนเซอร์มีครบในตัว ทำโปรเจกต์เสร็จไว สถานีวัดอากาศส่งขึ้นคลาวด์เสร็จในบ่ายเดียว
  • ช่างเทคนิค / วิศวกร ดูแลระยะยาวได้ด้วย OTA พร้อมเอกสารสเปกและพินเอาต์ครบ ติดตั้งชุดควบคุมหลายสิบจุด แล้วอัปเดตจากออฟฟิศ
  • ทีมงาน / สตาร์ทอัพ โค้ดอ่านง่ายเป็นภาษาไทย คนใหม่รับช่วงต่อได้เร็ว ทำต้นแบบไอโอทีส่งลูกค้าดูได้เร็วขึ้นหลายเท่า

เริ่มต้นใช้งาน 5 ขั้น

  1. 1 ทำความรู้จักภาษา ดูภาพรวม ไวยากรณ์ และตัวอย่างจริงจากเมนูด้านบน
  2. 2 เรียนตามบทเรียน STEM แยกเป็น “เรียนรู้ STEM” กับ “ใช้งานจริง” และระดับ พื้นฐาน / กลาง / ชำนาญ
  3. 3 เปิด IDE ต่อบอร์ด เข้า mapo-mcu.mapolang.org ด้วย Chrome / Edge → เสียบ USB → กด “เชื่อมต่อบอร์ด”
  4. 4 เขียน 5 บรรทัดแรก ก็อปโค้ดไฟกระพริบด้านบน → กดปุ่มเดียว → LED บนบอร์ดกระพริบ
  5. 5 ต่อยอดเป็นงานจริง เพิ่ม WiFi → ส่งค่าเข้า MQTT → หรือทำเว็บคุมอุปกรณ์จากมือถือ แล้วใช้ OTA อัปเดตระยะไกล

สรุปสั้น ๆ

Mapo ทำให้ “คนไทย” เข้าถึงงานฝังโปรแกรม (embedded) ได้จริง เพราะเขียนไทยได้ 100% · ไม่ต้องติดตั้งอะไร · อุปกรณ์และไลบรารีครบ · ใช้งานได้ทั้งในห้องเรียนและหน้างานจริง — เรียนเพื่อเข้าใจ แล้วเอาไปใช้ทำของขายได้เลย

⚡

ไวยากรณ์เรียบง่าย

จัดการ GPIO, งาน, เว็บเซิร์ฟเวอร์ และเซนเซอร์ ในไม่กี่บรรทัด

🌐

IDE บนเบราว์เซอร์

แก้โค้ด สร้าง และเฟลชบอร์ดได้ตรงจากเว็บ

🔌

รองรับ ESP32

มีเครือข่าย WiFi, MQTT และเว็บเซิร์ฟเวอร์ ในตัว