ArduinoEmbeded SystemESP32

ติดตั้ง Node32s กับ PlatformIO

By January 8, 2017 February 18th, 2017 No Comments

Platform IO เป็นแพ็คเกจเสริมการทำงานของ Editor ที่โด่งดังนั่นชื่อ Atom ทำให้สามารถเขียนโค้ดโปรแกรมลงบอร์ดทดลองได้หลากหลาย (Embedded Board) ทั้ง Arduino ,ESP8266, Rapberry PI จากที่เคยลองใช้ตอนเขียนโปรแกรมบน ESP8266 ประทับใจเรื่องความเร็วการคอมไพล์ และ การ flash ที่รวดเร็วกว่า Arduino มาก แต่ก้อเหมาะกับมือโปรแกรมเมอร์นะครับ และ ตอนนี้ Support ESP32 และ Node32s อีกด้วย จะรออะไรล่ะมาลองกัน

วิธีติดตั้ง Platform IO

  • เปิดบราวเซอร์ เข้าไปเวปที่ http://platformio.org คลิก IDE
  • คลิก [Download for Windows] เพื่อดาวน์โหลดไฟล์ platformio-atom-windows.exe

รูปที่ 2 คลิก IDE > Download for Windows

  • ติดตั้งโปรแกรม โดยการดับเบิ้ลคลิก ที่ไฟล์ platformio-atom-windows.exe  รอจนกระทั่งได้หน้าจอ PlatformIO IDE: Installing…
    แล้วรอจน Atom เรียกแพ็คเกจ PlatformIO มาติดตั้งให้โดยอัตโนมัติ ขั้นตอนนี้ใช้เวลานานพอสมควร

รูปที่ 3 รอจนโปรแกรมติดตั้งเสร็จ

  • เมื่อโปรแกรมติดตั้งเสร็จแล้ว จะขึ้นหน้าจอ Atom PlatformIO IDE has been successfully installed! คลิก Reload Now เพื่อเริ่มค่าใหม่ ดังรูป 4

รูปที่ 4 คลิก Reload Now

  • เปิดโปรแกรมอีกครั้ง หน้าจอ PlatformIO Home – Atom เห็นข้อความ Welcome to PlatformIO แสดงว่าคุณได้ติดตั้งโปรแกรมเสร็จเรียบร้อยแล้ว

รูปที่ 5 หน้าจอ PlatformIO Home – Atom

ติดตั้ง LLVM

Platformio ใช้ LLVM เป็น Clang เพื่อทำให้การคอมไพล์ได้รวดเร็วมากขึ้น

  • ให้คุณเปิดบราวเซอร์ไปที่ http://llvm.org คลิก LLVM 3.9.0
  • จากนั้นคลิก Clang for Windows (64-bit) เพื่อดาวน์โหลดไฟล์ LLVM-3.9.0-win64.exe

รูปที่ 6 ภาพแสดงหน้าเวป ให้คลิก LLVM 3.9.0

รูปที่ 7 คลิก Clang for Windows (64-bit)

  • ดับเบิ้ลคลิกไฟล์ LLVM-3.9.0-win64.exe ที่คุณเพิ่งดาวน์โหลดมา จะได้หน้าจอ LLVM Setup ข้อความต้อนรับสู่การติดตั้ง ให้คลิก Next >
  • หน้าจอ LLVM Setup ข้อกำหนดและเงื่อนไขการใช้งาน LLVM เมื่อคุณอ่านเข้าใจแล้ว คลิก I Agree

รูปที่ 8 คลิก Next >

รูปที่ 9 คลิก I Agree

  • หน้าจอ LLVM Setup ตัวเลือกการติดตั้งให้คลิกวงกลมหน้า Add LLVM to the system PATH for all users เพื่อเพิ่มพาธของ LLVM ให้ทุกยูสเซอร์
    • Do not add LLVM to the system PATH – ไม่ต้องเพิ่มพาธของ LLVM
    • Add LLVM to the system PATH for all users – เพิ่มพาธให้ทุกยูสเซอร์
    • Add LLVM to the system PATH for current user – เพิ่มพาธให้เฉพาะยูสเซอร์นี้
    • Create LLVM Desktop Icon – สร้างไอคอน LLVM บนเดสก์ทอป

รูปที่ 10 คลิก Add LLVM > Next >

  • แล้วคลิก Next >
  • หน้าจอ LLVM Setup เลือกโฟลเดอร์ที่ต้องการเก็บ LLVM (หากต้องการเปลี่ยนคลิก Browse…) แล้วคลิก Next >

รูปที่ 11 คลิก Next >

  • หน้าจอ LLVM Setup เพื่อเลือกสร้างเมนู LLVM ในเมนูสตาร์ท ในที่นี้เลือกเป็น LLVM แล้วคลิก Install ดังรูป 12 แล้วรอจนโปรแกรมติดตั้งเสร็จ ดังรูป 13

รูปที่ 12 คลิก Install

รูปที่ 13 รอสักครู่

  • หน้าจอ cmd ให้กดคีย์ Enter (หรือกดคีย์ใดคีย์หนึ่งบนแป้นพิมพ์ก็ได้)
  • หน้าจอ LLVM Setup ติดตั้งเสร็จเรียบร้อยแล้ว ให้คุณ Finish

รูปที่ 14 กดคีย์ Enter

รูปที่ 15 คลิก Finish

ข้อแนะนำ เมื่อติดตั้งทั้ง 2 โปรแกรมอันได้แก่ Atom PlatformIO, LLVM และตั้งค่าต่างๆ เสร็จเรียบร้อยแล้ว คุณควรจะ Restart คอมพิวเตอร์ เพื่อให้คอมพิวเตอร์เริ่มค่าใหม่ได้อย่างถูกต้อง

 

Hello world

มาลองสร้างโปรเจคบน PlatformIO กันบ้างครับ ขั้นตอนง่ายๆนะครับ แค่ คลิก New Project เราเริ่มต้นกับ โค้ดโปรแกรมสั้นๆ เรียกขวัญและกำลังใจกันก่อนครับ แค่ 6 บรรทัด เพื่อแสดงข้อความที่อยู่ในคำสั่ง printf ข้อความในที่นี้คือ พิมพ์ Hello world ออกทางหน้าจอ Serial Monitor

<1> ที่หน้าจอ PlatformIO Home ให้คุณคลิก New Project เพื่อสร้างโครงการใหม่

(โน๊ต: คุณสามารถคลิกเมนู PlatformIO > Home Screen เพื่อมาหน้าจอ PlatformIO Home)

รูปที่ 16 คลิก New Project

<2.> ในช่อง Select board: เลือกบอร์ดเป็น Espressif ESP32 Dev Module หรือ ตอนนี้ เลือกบอร์ด Ayarafun Node32s ได้เลยครับ

<3> ในช่อง Choose the directory: เลือกโฟลเดอร์เป็น C:\Users\admin\Documents\atom\helloworld

<4> เมื่อคุณเลือกบอร์ด และโฟลเดอร์ที่เก็บโค้ด ที่ต้องการเรียบร้อยแล้ว ให้คลิก Process

รูปที่ 17 คลิก Process

หรือจะ คลิก Node32s ได้นะครับ

<5> จะได้โฟลเดอร์ helloworld ขึ้นทางด้านซ้ายมือ จากนั้นคลิกขวาที่ src แล้วคลิกซ้ายที่ New File

<6> จะมีช่อง Enter the path for the new file. ให้พิมพ์ชื่อไฟล์ src\hello_world.c แล้วกดคีย์ Enter

รูปที่ 18 คลิกขวา src > คลิกซ้าย New File

รูปที่ 19 พิมพ์ชื่อไฟล์ แล้วกดคีย์ Enter

<7> จะได้หน้าจอ hello_world.c ให้พิมพ์โค้ดข้างล่างนี้ลงไป

<8> เมื่อคุณพิมพ์เสร็จเรียบร้อยแล้ว ให้คลิกปุ่ม Serial Monitor

<9> ในช่อง Port ให้เลือกพอร์ตที่บอร์ดของคุณเชื่อมต่อกับคอมพิวเตอร์ ในที่นี้คือ พอร์ต COM5

<10> ในช่อง Baudrate ให้เลือกที่ 115200

<11> คลิกปุ่ม Start

(โน๊ต: ปกติโปรแกรม PlatformIO จะเลือกพอร์ตกับ baudrate ให้คุณแล้วโดยอัตโนมัติ)

รูปที่ 20 พิมพ์โค้ด

รูปที่ 21 เลือกพอร์ตและ baudrate

<12> คลิกปุ่ม Upload

<13> คลิกปุ่ม Save and build เพื่อบันทึกโค้ด และอัปโหลดโค้ดลงบอร์ด Node32s

รูปที่ 22 คลิก Upload > Save and build

<14 > กรุณารอจนกว่าโปรแกรมอัปโหลดเสร็จเรียบร้อย แล้วโปรแกรมจะแสดงข้อความที่อยู่ในคำสั่ง printf ออกมาทางหน้าจอ Serial Monitor ในที่นี้แสดงข้อความ Hello world ออกทางหน้าจอ Serial Monitor ดังรูป 23

รูปที่ 23 แสดงข้อความ Hello world ออกทางหน้าจอ

การเขียนโปรแกรมบน PlatformIO แบบ Arduino

โค้ดโปรแกรมเขียนเหมือน Arduino IDE ทุกประการ แต่ต้องเพิ่ม #include “Arduino.h” ในบรรทัดแรก

  • คลิกปุ่ม Initialze or Update PlatformIO Project เพื่อสร้างโครงการใหม่ จากนั้นเลือกบอร์ดและโฟลเดอร์ที่ต้องการ

รูปที่ 24 สร้าง project ใหม่

รูปที่ 25 เลือกบอร์ดและโฟลเดอร์

  • สร้างไฟล์ใหม่ชื่อ blink_wiring.cpp แล้วพิมพ์โค้ดข้างล่างนี้ (นามสกุลของไฟล์ต้องเป็น .cpp นะครับ) แล้วอัปโหลดเข้า Node32s จะเห็นว่าไฟบนบอร์ดจะกระพริบ จากนั้นลองเปลี่ยนตัวเลข delay เพื่อดูความเปลี่ยนแปลง

รูปที่ 26 โค้ดโปรแกรมลง Node32s

การเขียนโปรแกรม แบบ ESP-IDF

ข้อดีอย่างหนึ่งในการเขียนโปรแกรมบน Platform IO คือ เราสามารถทดสอบโปรเจคได้ทั้งแบบ Arduino และ ESP-IDF โดยใน ESP-IDF จะมีตัวอย่างการใช้งาน Hardware ที่เยอะ คุณสามารถเปิดไฟล์ตัวอย่างขึ้นเพื่อมาศึกษาได้นะครับ แต่โค้ดตัวอย่างนี้ยังเป็น beta อยู่ อาจต้องมีการปรับแก้โค้ดบางส่วน เพื่อให้โค้ดโปรแกรมสามารถทำงานได้ ในหัวข้อนี้จะนำไฟล์ตัวอย่าง hello world มาโค้ดโปรแกรมลง Node32s

  • เปิดบราวเซอร์ไปที่ https://github.com/espressif/esp-idf/tree/master/examples คุณจะเห็นตัวอย่างโค้ด esp-idf ในที่นี้มี 12 ตัวอย่าง แต่เพื่อไม่ให้หนังสือเล่มนี้มีขนาดหนามาก ผู้เขียนจะโค้ดโปรแกรม 01_hello_world เพียงโปรแกรมเดียวเท่านั้น

รูปที่ 27 ไฟล์ตัวอย่างทั้งหมด

  • 01_hello_world แล้วคลิก main แล้วคลิก hello_world_main.c คุณจะเห็นโค้ดโปรแกรม ให้คลิกปุ่ม Raw เพื่อแสดงโค้ด จากนั้นให้คัดลอกโค้ดทั้งหมด

รูปที่ 28 คัดลอกไฟล์ตัวอย่าง hello_world_main.c

  • ให้สร้างโปรเจ็คใหม่ สร้างไฟล์ชื่อ hello_world_main.c แล้ววางโค้ดที่คุณคัดลอกไว้ลงในไฟล์นี้  เนื่องจากยังเป็นโค้ดตัวอย่างทดลอง ให้คุณคอมเม้นต์ // บรรทัดที่ 24 เป็น //esp_restart(); ดังรูป 29 จากนั้นอัปโหลดลง Node32s จะเห็นมีข้อความ Restarting in 9 – 0 second… แล้ว cpu ก็หยุดทำงาน

รูปที่ 29 ผลลัพธ์ที่ได้จากการโค้ดโปรแกรม hello_world_main.c

ฝากไว้เป็นอีกตัวเลือกนะครับ ที่ผมประทับใจกับ Platform IO นะครับ คือการทำงานที่รวดเร็วกว่า และ UI ดูทันสมัย ดูเป็น มืออาชีพ ขึ้นอีกที่นิดหนึ่ง เดี่ยวเจอกัน ในรอบหน้านะครับ จะหาอะไรสนุกๆมา update

chang

ชื่อ “ช้าง” ส่วนมากเขาจะเรียกว่า “พี่ช้าง” แล้ว มีความสนใจทางเทคโนโลยีทางคอมพิวเตอร์ อิเล็กทรอนิกส์ และ หุ่นยนต์ เป็นทั้งนักคิด นักประดิษฐ์ ชอบทดลองเล่น จนเดี่ยวนี้รู้สึกว่าจะเล่นมากกว่ามืออาชีพไปสักแล้ว

Leave a Reply