1.แบบขนาน
2.แบบอนุกรม
วันอาทิตย์ที่ 16 ธันวาคม พ.ศ. 2561
วันอาทิตย์ที่ 2 ธันวาคม พ.ศ. 2561
Python
Python คือชื่อภาษาที่ใช้ในการเขียนโปรแกรมภาษาหนึ่ง ซึ่งถูกพัฒนาขึ้นมาโดยไม่ยึดติดกับแพลตฟอร์ม กล่าวคือสามารถรันภาษา Python ได้ทั้งบนระบบ Unix, Linux , Windows NT, Windows 2000, Windows XP หรือแม้แต่ระบบ FreeBSD อีกอย่างหนึ่งภาษาตัว นี้เป็น OpenSource เหมือนอย่าง PHP ทำให้ทุกคนสามารถที่จะนำ Python มาพัฒนาโปรแกรมของเราได้ฟรีๆโดยไม่ต้องเสียค่าใช้จ่าย และความเป็น Open Source ทำให้มีคนเข้ามาช่วยกันพัฒนาให้ Python มีความสามารถสูงขึ้น และใช้งานได้ครบคุมกับทุกลักษณะงาน
ไวยากรณ์ของภาษา Python
ภาษา Python นั้นถูกพัฒนาขึ้นมาโดยมีความตั้งใจว่าจะให้เป็นภาษาที่อ่านง่าย มันถูกออกแบบมาให้มีโครงสร้างที่มองเห็นได้โดยไม่ซับซ้อน โดยมักจะใช้คำในภาษาอังกฤษในขณะที่ภาษาอื่นใช้เครื่องหมายวรรคตอน นอกจากนี้ Python มีข้อยกเว้นของโครงสร้างทางภาษาน้อยกว่าภาษา C และ Pascal
ภาษา Python นั้นถูกพัฒนาขึ้นมาโดยมีความตั้งใจว่าจะให้เป็นภาษาที่อ่านง่าย มันถูกออกแบบมาให้มีโครงสร้างที่มองเห็นได้โดยไม่ซับซ้อน โดยมักจะใช้คำในภาษาอังกฤษในขณะที่ภาษาอื่นใช้เครื่องหมายวรรคตอน นอกจากนี้ Python มีข้อยกเว้นของโครงสร้างทางภาษาน้อยกว่าภาษา C และ Pascal
Python Interpreter
Python interpreter นั้นเป็นตัวแปรภาษาของภาษา Python เพื่อให้สามารถรันโค้ด Python ได้ ซึ่งได้มากับไลบรารี่มาตรฐานที่สามารถใช้งานได้ฟรี ซึ่งดาวน์โหลดได้ที่ https://www.python.org/ ซึ่งเป็นโปรแกรมแบบ source และ binary สำหรับแพลตฟอร์มทีไ่ด้รับความนิยม นอกจากนี้ Interpreter ยังสนับสนุนการเขียนโปรแกรมกับ Interactive shell ซึ่งเป็นการเขียนโค้ดของภาษา Python ลงไปและเห็นผลลัพธ์การทำงานของคำสั่งได้ในทันที Python Interpreter นั้นยังสามารถนำเพิ่มความสามารถกับฟังก์ชันใหม่ที่ถูกพัฒนามาจากภาษา C และ C++ Python นั้นเหมาะสำหรับเป็นภาษาในการสร้าง Extension และแอพพลิเคชันที่ปรับแต่งได้
Python interpreter นั้นเป็นตัวแปรภาษาของภาษา Python เพื่อให้สามารถรันโค้ด Python ได้ ซึ่งได้มากับไลบรารี่มาตรฐานที่สามารถใช้งานได้ฟรี ซึ่งดาวน์โหลดได้ที่ https://www.python.org/ ซึ่งเป็นโปรแกรมแบบ source และ binary สำหรับแพลตฟอร์มทีไ่ด้รับความนิยม นอกจากนี้ Interpreter ยังสนับสนุนการเขียนโปรแกรมกับ Interactive shell ซึ่งเป็นการเขียนโค้ดของภาษา Python ลงไปและเห็นผลลัพธ์การทำงานของคำสั่งได้ในทันที Python Interpreter นั้นยังสามารถนำเพิ่มความสามารถกับฟังก์ชันใหม่ที่ถูกพัฒนามาจากภาษา C และ C++ Python นั้นเหมาะสำหรับเป็นภาษาในการสร้าง Extension และแอพพลิเคชันที่ปรับแต่งได้
KidBright จากจินตนาการสู่ความเป็นจริง
KidBright จากจินตนาการสู่ความเป็นจริง
KidBright เป็นบอร์ดที่พัฒนาขึ้นเพื่อกระตุ้นศักยภาพการคิดเชิงระบบและการคิดเชิงสร้างสรรค์ในเด็กวัยเรียนผ่านการเรียนรู้แบบ Learn and Play บอร์ดถูกออกแบบให้มีการแสดงผลและเซนเซอร์แบบง่าย ซึ่งจะทำงานสอดคล้องกับชุดคำสั่งควบคุมการทำงาน โดยผู้เรียนสามารถออกแบบและสร้างชุดคำสั่งแบบ Block-structured Programming ผ่านแอปพลิเคชันบนสมาร์ทโฟน
จุดเด่นของเทคโนโลยี
- บอร์ดสมองกลฝังตัวประกอบด้วย เซนเซอร์พื้นฐาน จอแสดงผล real-time clock ลำโพง สามารถนำไปประยุกต์ใช้งานได้หลากหลาย
- สร้างชุดคำสั่งแบบ block-structured programming ผ่านแอปพลิเคชันบนสมาร์ทโฟน
- ชุดคำสั่งถูกส่งไปยังบอร์ดสมองกลฝังตัวผ่านเครือข่ายไร้สาย ทำให้ใช้งานได้ง่ายไม่จำเป็นต้องเชื่อมต่อสาย
คุณสมบัติ
- แอปพลิเคชันบนสมาร์ทโฟนทำงานภายใต้ระบบปฏิบัติการ Android
- แอปพลิเคชันสร้างชุดคำสั่งรองรับการทำงานแบบ Event-driven Programming
- แอปพลิเคชันสร้างชุดคำสั่งรองรับการทำงานแบบ Multitasking
- รองรับการเชื่อมต่อเซนเซอร์ที่หลากหลาย
วงจรไฟฟ้า ขนาน/อนุกรม
วงจรอนุกรม
วงจรอนุกรมคือ การนำโหลดมาต่อเรียงกัน โดยให้ปลายของโหลดตัวแรก ต่อกับปลายของโหลดตัวถัดไป หรืออีกนัยหนึ่งหมายถึง การนำโหลดตั้งแต่สองตัวมาต่อเรียงกันไปแบบอันดับ ทำให้กระแสไหลทิศทางเดียวกัน
การคำนวณค่าความต้านทานแบบอนุกรม
วงจรขนาน
วงจรขนานคือ การนำโหลดมาต่อขนานกันหรือต่อคร่อมกัน ตั้งแต่สองตัวขึ้นไปโดยนำจุดต่อของปลายทั้งสองข้างของโหลดแต่ละตัวมาต่อร่วมกัน
การคำนวณค่าความต้านทานแบบขนาน
ไฟฟ้ากระแสตรง&ไฟฟ้ากระแสสลับ
ไฟฟ้ากระแสตรง ( Direct Current หรือ D .C )
เป็นไฟฟ้าที่มีทิศทางการไหลไปทางเดียวตลอดระยะเวลาที่วงจรไฟฟ้าปิดกล่าวคือกระแสไฟฟ้าจะไหลจากขั้วบวก ภายในแหล่งกำเนิด ผ่านจากขั้วบวกจะไหลผ่านตัวต้านหรือโหลดผ่านตัวนำไฟฟ้าแล้ว ย้อนกลับเข้าแหล่งกำเนิดที่ขั้วลบ วนเวียนเป็นทางเดียวเช่นนี้ตลอดเวลา การไหลของไฟฟ้ากระแสตรงเช่นนี้ แหล่งกำเนิดที่เรารู้จักกันดีคือ ถ่าน-ไฟฉาย ไดนาโม ดีซี เยนเนอเรเตอร์ เป็นต้น
ไฟฟ้ากระแสตรงแบ่งออกเป็น 2 ประเภท
1.ไฟฟ้ากระแสตรงประเภทสม่ำเสมอ (Steady D.C) เป็นไฟฟ้ากระแสตรง อันแท้จริง คือ เป็นไฟฟ้ากระแสตรง ที่ไหลอย่างสม่ำเสมอตลอดไปไฟฟ้ากระแสตรงประเภทนี้ได้มาจากแบตเตอรี่หรือ ถ่านไฟฉาย
2.ไฟฟ้ากระแสตรงประเภทไม่สม่ำเสมอ ( Pulsating D.C) เป็นไฟฟ้ากระแสตรงที่เป็นช่วงคลื่นไม่สม่ำเสมอ ไฟฟ้ากระแสตรงชนิดนี้ได้มาจากเครื่องไดนาโมหรือ วงจรเรียงกระแส (เรคติไฟ )
คุณสมบัติของไฟฟ้ากระแสตรง
(1) กระแสไฟฟ้าไหลไปทิศทางเดียวกันตลอด
(2) มีค่าแรงดันหรือแรงเคลื่อนเป็นบวกอยู่เสมอ
(3) สามารถเก็บประจุไว้ในเซลล์ หรือแบตเตอรี่ได้
(1) ใช้ในการชุบโลหะต่างๆ
(2) ใช้ในการทดลองทางเคมี (3) ใช้เชื่อมโลหะและตัดแผ่นเหล็ก
(4) ทำให้เหล็กมีอำนาจแม่เหล็ก
(5) ใช้ในการประจุกระแสไฟฟ้าเข้าแบตเตอรี่
(6) ใช้ในวงจรอิเล็กทรอนิกส์
(7) ใช้เป็นไฟฟ้าเดินทาง เช่น ไฟฉาย
ไฟฟ้ากระแสสลับ ( Alternating Current หรือ A.C. )
เป็นไฟฟ้าที่มีการไหลกลับไป กลับมา ทั้งขนาดของกระแสและแรงดันไม่คงที่ เปลี่ยนแปลงอยู่เสมอ คือ กระแสจะไหลไปทางหนึ่งก่อน ต่อมาก็จะไหลสวนกลับแล้ว ก็เริ่มไหลเหมือนครั้งแรก
เป็นไฟฟ้าที่มีการไหลกลับไป กลับมา ทั้งขนาดของกระแสและแรงดันไม่คงที่ เปลี่ยนแปลงอยู่เสมอ คือ กระแสจะไหลไปทางหนึ่งก่อน ต่อมาก็จะไหลสวนกลับแล้ว ก็เริ่มไหลเหมือนครั้งแรก
ครั้งแรกกระแสไฟฟ้าจะไหลจากแหล่งกำเนิดไปตามลูกศรเส้นหนัก เริ่มต้นจากศูนย์ แล้วค่อยๆเพิ่มขึ้นเรื่อยๆจนถึงขีดสุด แล้วมันจะค่อยๆลดลงมาเป็นศูนย์อีกต่อจากนั้นกระแสไฟฟ้าจะไหลจากแหล่งกำเนิดไปตามลูกศรเส้นปะลดลงเรื่อยๆจนถึงขีด ต่ำสุด แล้วค่อยๆ เพิ่มขึ้นเรื่อยๆ จนถึงศูนย์ตามเดิมอีก เมื่อเป็นศูนย์แล้วกระแสไฟฟ้าจะไหลไปทางลูกศรเส้นหนักอีกเป็นดังนี้ เรื่อยๆไปการที่กระแสไฟฟ้าไหลไปตามลูกศร เส้นหนักด้านบนครั้งหนึ่งและไหลไปตามเส้นประด้านล่างอีกครั้งหนึ่ง เวียน กว่า 1 รอบ ( Cycle )
คุณสมบัติของไฟฟ้ากระแสสลับ
(1) สามารถส่งไปในที่ไกลๆได้ดี กำลังไม่ตก
(2) สามารถแปลงแรงดันให้สูงขึ้นหรือต่ำลงได้ตามต้องการโดยการใช้หม้อแปลง(Transformer)
ประโยชน์ของไฟฟ้ากระแสสลับ
(1) ใช้กับระบบแสงสว่างได้ดี
(2) ประหยัดค่าใช้จ่าย และผลิตได้ง่าย
(3) ใช้กับเครื่องใช้ไฟฟ้าที่ต้องการกำลังมากๆ
(4) ใช้กับเครื่องเชื่อม
(5) ใช้กับเครื่องอำนวยความสะดวกและอุปกรณ์ไฟฟ้าได้เกือบทุกชนิด
(1) สามารถส่งไปในที่ไกลๆได้ดี กำลังไม่ตก
(2) สามารถแปลงแรงดันให้สูงขึ้นหรือต่ำลงได้ตามต้องการโดยการใช้หม้อแปลง(Transformer)
ประโยชน์ของไฟฟ้ากระแสสลับ
(1) ใช้กับระบบแสงสว่างได้ดี
(2) ประหยัดค่าใช้จ่าย และผลิตได้ง่าย
(3) ใช้กับเครื่องใช้ไฟฟ้าที่ต้องการกำลังมากๆ
(4) ใช้กับเครื่องเชื่อม
(5) ใช้กับเครื่องอำนวยความสะดวกและอุปกรณ์ไฟฟ้าได้เกือบทุกชนิด
วันอาทิตย์ที่ 25 พฤศจิกายน พ.ศ. 2561
ESP32
ESP32 คือ ?
ESP32 เป็นชื่อของไอซีไมโครคอนโทรลเลอร์ที่รองรับการเชื่อมต่อ WiFi และ Bluetooth 4.2 BLE ในตัว ผลิตโดยบริษัท Espressif จากประเทศจีน โดยราคา ณ ที่เขียนบทความอยู่นี้ มีราคาไม่เกิน 500 บาท (บอร์ดพัฒนาสำเร็จรูป) โดยตัวไอซี ESP32 มีสเปคโดยละเอียด ดังนี้
- ซีพียูใช้สถาปัตยกรรม Tensilica LX6 แบบ 2 แกนสมอง สัญญาณนาฬิกา 240MHz
- มีแรมในตัว 512KB
- รองรับการเชื่อมต่อรอมภายนอกสูงสุด 16MB
- มาพร้อมกับ WiFi มาตรฐาน 802.11 b/g/n รองรับการใช้งานทั้งในโหมด Station softAP และ Wi-Fi direct
- มีบลูทูธในตัว รองรับการใช้งานในโหมด 2.0 และโหมด 4.0 BLE
- ใช้แรงดันไฟฟ้าในการทำงาน 2.6V ถึง 3V
- ทำงานได้ที่อุณหภูมิ -40◦C ถึง 125◦C
นอกจากนี้ ESP32 ยังมีเซ็นเซอร์ต่าง ๆ มาในตัวด้วย ดังนี้
- วงจรกรองสัญญาณรบกวนในวงจรขยายสัญญาณ
- เซ็นเซอร์แม่เหล็ก
- เซ็นเซอร์สัมผัส (Capacitive touch) รองรับ 10 ช่อง
- รองรับการเชื่อมต่อคลิสตอล 32.768kHz สำหรับใช้กับส่วนวงจรนับเวลาโดยเฉพาะ
ขาใช้งานต่าง ๆ ของ ESP32 รองรับการเชื่อมต่อบัสต่าง ๆ ดังนี้
- มี GPIO จำนวน 32 ช่อง
- รองรับ UART จำนวน 3 ช่อง
- รองรับ SPI จำนวน 3 ช่อง
- รองรับ I2C จำนวน 2 ช่อง
- รองรับ ADC จำนวน 12 ช่อง
- รองรับ DAC จำนวน 2 ช่อง
- รองรับ I2S จำนวน 2 ช่อง
- รองรับ PWM / Timer ทุกช่อง
- รองรับการเชื่อมต่อกับ SD-Card
นอกจากนี้ ESP32 ยังรองรับฟังก์ชั่นเกี่ยวกับความปลอดภัยต่าง ๆ ดังนี้
- รองรับการเข้ารหัส WiFi แบบ WEP และ WPA/WPA2 PSK/Enterprise
- มีวงจรเข้ารหัส AES / SHA2 / Elliptical Curve Cryptography / RSA-4096 ในตัว
ในด้านประสิทธิ์ภาพการใช้งาน ตัว ESP32 สามารถทำงานได้ดี โดย
- รับ – ส่ง ข้อมูลได้ความเร็วสูงสุดที่ 150Mbps เมื่อเชื่อมต่อแบบ 11n HT40 ได้ความเร็วสูงสุด 72Mbps เมื่อเชื่อมต่อแบบ 11n HT20 ได้ความเร็วสูงสุดที่ 54Mbps เมื่อเชื่อมต่อแบบ 11g และได้ความเร็วสูงสุดที่ 11Mbps เมื่อเชื่อมต่อแบบ 11b
- เมื่อใช้การเชื่อมต่อผ่านโปรโตคอล UDP จะสามารถรับ – ส่งข้อมูลได้ที่ความเร็ว 135Mbps
- ในโหมด Sleep ใช้กระแสไฟฟ้าเพียง 2.5uA
จะเห็นได้ว่า ในราคาไม่ถึง 500 บาท (บอร์ดพัฒนาสำเร็จรูป) และโมดูลเปล่าราคาไม่ถึง 400 บาท สามารถให้ประสิทธิ์ภาพได้เกินราคา ด้วยเหตุนี้ ESP32 จึงเหมาะสำหรับนำมาใช้งานมาก ด้วยเหตุผลทางด้านราคา และประสิทธิ์ภาพที่ได้
ประวัติความเป็นมาของ ESP32
ก่อนที่ ESP32 จะได้ถือกำเนิดขึ้น ได้มีไอซีไมโครคอนโทรลเลอร์ที่มี WiFi ในตัว และทำราคาได้ถูกมาก ๆ ในขณะนั้น (เพียง $5 หรือประมาณ 200 บาท) ออกมาปฏิวัติโลกของระบบสมองกลฝังตัว นั่นก็คือไอซีเบอร์ ESP8266 ที่ผลิตโดยบริษัท Espressif จากประเทศจีน ในช่วงเริ่มแรก ไอซี ESP8266 สามารถทำงานได้โดยใช้การสื่อสารผ่าน UART เท่านั้น และพูดคุยสั่งงานผ่าน AT command ไม่สามารถอัพเดท หรือแก้ไขเฟิร์มแวร์ด้านในได้ แต่ต่อมาไม่นานบริษัท Espressifก็ได้ออกไอซีเวอร์ชั่นใหม่มา ในครั้งนี้สามารถที่จะอัพเดทเฟิร์มแวร์ได้ และเราสามารถลงไปเขียนเฟิร์มแวร์เองได้ โดยในขณะนั้น การเขียนเฟิร์มแวร์จะใช้ภาษา C เพียงอย่างเดียว และใช้ ESP8266 SDK เป็นชุดซอฟแวร์พัฒนา ด้วยความยากของการใช้งานภาษา C เพียงอย่างเดียว ทำให้ไม่ได้รับความนิยมเรื่องการพัฒนาเฟิร์มแวร์เองมากนัก
หลังจากนั้นมาประมาณ 1 ปี ผู้ผลิตบอร์ด NodeMCU ได้พอร์ตตัว Runtime ภาษา Lua มาลงใน ESP8266 ทำให้ตัว ESP8266 สามารถเขียนโปรแกรมสั่งงานตรง ๆ ได้ง่ายขึ้นมาก รวมทั้งมีเสถียรภาพเพิ่มขึ้น และในขณะนี้เอง บอร์ด NodeMCU เป็นบอร์ดพัฒนา ESP8266 สำเร็จรูปเพียงบอร์ดเดียวในตลาด ที่มาพร้อมกับ USB to UART ทำให้ให้สามารถอัพโหลดเฟิร์มแวร์เข้า ESP8266 ได้ผ่าน USB โดยตรง นอกจากนี้ผู้พัฒนาบอร์ด NodeMCU ได้คิดค้นวงจรการเข้าโหมดอัพโหลดโปรแกรมอัตโนมัติ และตั้งชื่อว่า nodemcu ซึ่งภายหลังบอร์ดพัฒนาทุกรุ่น จะใช้วงจรแบบ nodemcu ในการเข้าโหมดอัพโหลดโปรแกรมอัตโนมัติ และด้วยเหตุผลที่บอร์ด NodeMCU เป็นบอร์ดพัฒนา ESP8266 บอร์ดแรกในท้องตลาด ทำให้ได้รับความนิยมมาก และหลังจากบริษัทในจีนต่าง ๆ ได้ลอกวงจร และลายปริ้นของ NodeMCU มาทำขายเองในราคาที่ถูก แล้วใช้ชื่อเดิมคือ NodeMCU จึงทำให้บอร์ด NodeMCU ได้รับความนิยมมากจนถึงปัจจุบัน
หลังจากตัว Runtime ภาษา Lua ได้ถูกพอร์ตมาลง ESP8266 ได้ประมาณ 2 – 4 เดือน ทางชุมชนพัฒนา ESP8266 ที่ชื่อ ESP8266 Community Forum (www.esp8266.com) ได้ออกชุดไลบารี่ และคอมไพล์เลอร์สำหรับใช้กับโปรแกรม Arduino IDE มาในชื่อ Arduino core for ESP8266 WiFi chip ทำให้การพัฒนาเฟิร์มแวร์ของ ESP8266 นั้นง่ายขึ้นมาก ๆ โดยใช้การเขียนโปรแกรมแบบ Arduino ดังนั้นคนที่มีพื้นฐานการเขียนโปรแกรมลงบอร์ด Arduino เป็นอยู่แล้ว จึงมาเขียนเฟิร์มแวร์ลง ESP8266 โดยใช้โปรแกรม Arduino ได้ไม่ยาก และนอกจากนี้ ไลบารี่ต่าง ๆ ที่ใช้งานได้กับบอร์ด Arduino ยังสามารถนำมาใช้งานกับ ESP8266 ได้เลย ทำให้ ESP8266 ได้รับความนิยมสูงมากมาจนถึงขณะนี้
ด้วยความสำเร็จอย่างถึงที่สุดของไอซี ESP8266 ทำให้บริษัท Espressif ออกไอซีรุ่นถัดไปมา ในช่วงแรกใช้ชื่อว่า ESP31B เปิดให้ร้านค้าใหญ่ ๆ อย่าง Adafruit SparkFun และผู้สนใจบางส่วนได้ทดสอบ โดยในขณะนั้นได้มีการพัฒนาชุดซอฟแวร์ ESP32_RTOS_SDK ไปพร้อม ๆ กับการพัฒนาไอซี ESP31B ทำให้มีคนนำชุด ESP32_RTOS_SDK ไปพัฒนาลงโปรแกรม Arduino รอก่อนไอซีตัวจริงจะออก ในชื่อ Arduino core for ESP31B WiFi chip แต่หลังจากนั้นไม่นาน บริษัท Espressif ได้ยกเลิกการใช้ชุดซอฟแวร์พัฒนา ESP32_RTOS_SDK แล้วไปสร้างชุดพัฒนาใหม่ที่ชื่อ ESP-IDF แทน (แต่เมื่อไปเจาะลึก จะพบว่าภายในแทบจะลอก ESP32_RTOS_SDK มาทั้งหมด) จากนั้นจึงออกไอซี ESP32 ออกมาเป็นครั้งแรก
ด้วยในอดีตที่ไอซี ESP8266 ได้ทำไว้ดีมาก จึงส่งผลให้ ESP32 ได้รับความสนใจอย่างมาก จนผลิตไม่ทันต่อความต้องการ โดยในช่วงแรก บริษัท Espressif ได้ให้ข่าวว่า จะผลิต ESP32 แบบโมดูลออกมาเพียงอย่างเดียว ในชื่อ ESP-WROOM-32 หลังจากนั้นไม่นาน บริษัท Ai-Thinker ได้ร่วมมือกับ Seeedstudio ผลิตโมดูล ESP3212 ขึ้นมา โดยมีสถานะเป็นพรีออเดอร์ แต่เมื่อถึงกำหนดส่งมอบ บริษัท Seeedstudio ได้เลื่อนการส่งมอบออกไป ด้วยปัญหาด้านการออกแบบลายวงจรของตัวโมดูลเอง ทาง Ai-Thinker จึงได้ยกเลิกการผลิต ESP3212 แล้วหันไปผลิต ESP32S แทน โดยลายวงจรเหมือนกับ ESP-WROOM-32 ทุกประการ แล้วจึงเริ่มส่งมอบสินค้าได้
หลังจากสินค้า ESP32S ได้เริ่มส่งมอบ ทางทีมผู้พัฒนา Arduino core for ESP8266 WiFi chip ได้ถูกบริษัท Espressif ซื้อตัวมาทั้งหมด แล้วจ้างให้พัฒนาชุดไลบารี่และคอมไพล์เลอร์สำหรับ Arduino ในชื่อ Arduino core for ESP32 WiFi chip ทำให้การพัฒนาเป็นไปด้วยความรวดเร็วมากขึ้น ภายหลัง ผู้พัฒนา Arduino core for ESP31B WiFi chip ก็ถูกดึงตัวให้มาร่วมทีมพัฒนา Arduino core for ESP32 WiFi chip ด้วยเช่นเดียวกัน
การพัฒนา Arduino core for ESP32 WiFi chip จะทำไปควบคู่กับการพัฒนา ESP-DF โดยที่ ESP-IDF จะเป็นแกนหลัก เมื่อมีการเพิ่มฟิเจอร์ใหม่ ๆ ให้ ESP-IDF แล้ว จึงจะมีการเพิ่มใน Arduino core for ESP32 WiFi chip โดยที่ ESP-IDF รองรับการเขียนโปรแกรมแบบ Arduino เช่นเดียวกัน และรองรับทุกไลบารี่ที่ใช้ได้สำหรับ Arduino เพียงแต่ ESP-IDF ไม่มีโปรแกรม Editor โดยเฉพาะเท่านั้นเอง
รายชื่อผู้พัฒนาชุด ESP_IDF
ในฐานะของผู้ใช้งานเต็มรูปแบบ เราควรที่จะทำความรู้จักกับทีมผู้พัฒนากันบ้าง โดยชื่อที่ยกมานี้ เป็นชื่อที่ใช้ในเว็บ GitHub
- Igrr (ผู้พัฒนาหลัก และเรามักได้ข่าวฟิเจอร์ใหม่ ๆ ของ ESP_IDF จากบัญชีทวิตเตอร์ของเขา)
- Projectgus
- Spritetm
- Liuzfesp
- TianHao-Espressif
- wmy-espressif
- heyinling
- wujiangang
- TimXia
- Costaud
- Krzychb
- me-no-dev
รายชื่อผู้พัฒนาชุด Arduino core for ESP32 WiFi chip
เมื่อเข้าไปดูรายชื่อผู้พัฒนา Arduino core for ESP32 WiFi chip จะพบว่า มีผู้พัฒนาหลักอยู่เพียงรายเดียว อาจจะเพราะ ESP_IDF สามารถเขียนโค้ดแบบ Arduino ได้อยู่แล้ว การนำ ESP_IDF มาลง Arduino อาจไม่ใช่เรื่องยาก จึงไม่ต้องใช้นักพัฒนาที่มากมายนัก
- me-no-dev (ผู้พัฒนาหลัก คนเดียวกับที่พัฒนาชุด Arduino core for ESP31B WiFi chip)
ชุดซอฟแวร์พัฒนา ESP32 อื่น ๆ
ตั้งแต่ยุคของ ESP8266 ที่ได้รับความนิยมสูงสุด ได้มีการพยายามนำตัว Runtime ของภาษาระดับสูงหลาย ๆ ตัวมาใช้ เพื่อให้คนที่คุ้นชินกับภาษาระดับสูงเหล่านั้น ได้มาใช้ ESP8266 ได้ง่ายมากยิ่งขึ้น เมื่อมาถึงยุค ESP32 ก็ได้มีการนำซอสโค้ดเดิมที่ทำไว้ มาดัดแปลงและใช้งานกับ ESP32 ด้วย
LuaNode
เป็นชื่อของชุดพัฒนา ESP32 ที่นำ Rumtime ของภาษา Lua มาลงใน ESP32 ทำให้ ESP32 ใช้ภาษา Lua ได้ พัฒนาโดยบริษัท DOIT ที่ทำบอร์ดพัฒนา ESP32 ในชื่อ DOIT ESP32 Development Board โดยความสามารถของ LuaNode คือรองรับคำสั่งที่ใช้บน Lua จริง ๆ แทบทุกคำสั่ง และรองรับการควบคุม WiFi เต็มรูปแบบ ดังนั้นหากผู้อ่านที่ใช้ภาษา Lua เป็นอยู่แล้ว ก็แนะนำให้ลองไปเล่นกันได้ครับ โดยรายละเอียดจะอยู่ที่ https://github.com/Nicholas3388/LuaNode
MicroPython-ESP32
ชุดพัฒนาที่พยายามสร้างตัว Runtime ของภาษา Python 3 บนไมโครคอนโทรลเลอร์ต่าง ๆ พัฒนาโดย MicroPython ก่อนหน้านี้เขาได้เปิดระดมทุนในเว็บ Kickstarter เพื่อนำ Python 3 มาลงใน ESP8266 แล้วประสบความสำเร็จอย่างมาก ทำให้โครงการสามารถอยู่มาได้เรื่อย ๆ จนสามารถนำภาษา Python 3 มาใช้บน ESP32 ได้สำเร็จ
MicroPython-ESP32 รองรับการใช้งานพื้นฐานภาษา Python ส่วนใหญ่ได้ รองรับการจัดการ WiFi การเชื่อมต่อ I2C SPI ADC และการควบคุม GPIO เต็มรูปแบบ หากสนใจสามารถเข้าไปลองอ่านรายละเอียดได้ที่ https://github.com/micropython/micropython-esp32
Espruino on ESP32
เป็นชุดพัฒนาที่พยายามทำให้สามารถใช้ภาษา JavaScript ในการสั่งงานได้ โดยโครงการ Espruino ได้ทำตัว Runtime ขึ้นมาใช้กับ ESP32 และไมโครคอนโทรลเลอร์อื่น ๆ โครงการนอกจากจะพัฒนาตัวเฟิร์มแวร์ Runtime แล้ว ยังได้พัฒนา Espruino Web IDE ซึ่งเป็นโปรแกรม IDE แบบเว็บแอพพลิเคชั่นที่ใช้งานร่วมกับ Google Chrome ด้วย ในการติดตั้ง จะต้องติดตั้งผ่าน Chrome เว็บสโตร์ รองรับการเขียนโปรแกรมแบบ Text และภาษาบล็อก (Block)
ในขณะที่เขียนชุดบทความนี้ Espruino on ESP32 รองรับการควบคุม GPIO และบัสพื้นฐานอย่าง 1-wire I2C SPI DAC ADC UART และรองรับการใช้งาน WiFi แล้ว แต่ยังไม่รองรับการใช้งานบลูทูธ และการอัพโหลดโปรแกรมไร้สาย (Over-The-Air : OTA) หากสนใจ สามารถเข้าไปอ่านรายละเอียดได้ที่ http://www.espruino.com/ESP32
การเลือกใช้ชุดซอฟแวร์พัฒนา
การเลือกใช้ แนะนำให้เลือก ESP-IDF เป็นตัวเลือกอันดับต้น ๆ เนื่องจากมีการพัฒนาอย่างต่อเนื่อง และไปในทิศทางเดียวกับการพัฒนาชิป แต่หากมีพื้นฐานภาษา C ไม่มากนัก ผู้เขียนแนะนำให้เลือกใช้ชุดพัฒนา Arduino core for ESP32 WiFi chip จะดีกว่า เนื่องจากการเขียนโปรแกรมแบบ Arduino มีฟังก์ชั่นการใช้งานต่าง ๆ ที่ค่อนข้างง่าย และมีเว็บ arduino.cc เป็นเว็บรวมตัวอย่างโค้ดต่าง ๆ และเอกสารการใช้งานแต่ละฟังก์ชั่นอยู่มาก รวมทั้งเว็บไซต์ส่วนใหญ่ที่รวมวิธีการประยุกต์ใช้ ESP32 ยังนิยมใช้โค้ดโปรแกรมสำหรับชุดพัฒนา Arduino core for ESP32 WiFi chip อีกด้วย
สรุป
ESP32 เป็นชิปไอซีไมโครคอนโทรลเลอร์ 32 บิต ที่มี WiFi และบลูทูธเวอร์ชั่น 4.2 ในตัว ซึ่งเป็นรุ่นต่อของชิปไอซี ESP8266 รุ่นยอดนิยม ผลิตโดยบริษัท Espressif จากประเทศจีน รองรับการเขียนโปรแกรมโดยใช้โปรแกรม Arduino IDE และรองรับไลบารี่ส่วนใหญ่ของ Arduino ทำให้สามารถใช้งานได้ง่าย นอกจากนี้ราคายังถูกลงเรื่อย ๆ ทำให้ได้รับความนิยมมากขึ้นเรื่อย ๆ เช่นเดียวกัน
Arduino คืออะไร ?
Arduino คือ บอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Source คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัว บอร์ด Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย ดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา ทั้งนี้ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนาต่อยอดทั้งตัวบอร์ด หรือโปรแกรมต่อได้อีกด้วย
ความง่ายของบอร์ด Arduino ในการต่ออุปกรณ์เสริมต่างๆ คือผู้ใช้งานสามารถต่อวงจรอิเล็กทรอนิคส์จากภายนอกแล้วเชื่อมต่อเข้ามาที่ขา I/O ของบอร์ด (ดูตัวอย่างรูปที่ 1) หรือเพื่อความสะดวกสามารถเลือกต่อกับบอร์ดเสริม (Arduino Shield) ประเภทต่างๆ (ดูตัวอย่างรูปที่ 2) เช่น Arduino XBee Shield, Arduino Music Shield, Arduino Relay Shield, Arduino Wireless Shield, Arduino GPRS Shield เป็นต้น มาเสียบกับบอร์ดบนบอร์ด Arduino แล้วเขียนโปรแกรมพัฒนาต่อได้เลย
จุดเด่นที่ทำให้บอร์ด Arduino เป็นที่นิยม
- 1.ง่ายต่อการพัฒนา มีรูปแบบคำสั่งพื้นฐาน ไม่ซับซ้อนเหมาะสำหรับผู้เริ่มต้น
- 2.มี Arduino Community กลุ่มคนที่ร่วมกันพัฒนาที่แข็งแรง
- 3.Open Hardware ทำให้ผู้ใช้สามารถนำบอร์ดไปต่อยอดใช้งานได้หลายด้าน
- 4.ราคาไม่แพง
- 5.Cross Platform สามารถพัฒนาโปรแกรมบน OS ใดก็ได้
รูปแบบการเขียนโปรแกรมบน Arduino
1. เขียนโปรแกรมบนคอมพิวเตอร์ ผ่านทางโปรแกรม ArduinoIDE ซึ่งสามารถดาวน์โหลดได้จาก Arduino.cc/en/main/software
2. หลังจากที่เขียนโค้ดโปรแกรมเรียบร้อยแล้ว ให้ผู้ใช้งานเลือกรุ่นบอร์ด Arduino ที่ใช้และหมายเลข Com port
2. หลังจากที่เขียนโค้ดโปรแกรมเรียบร้อยแล้ว ให้ผู้ใช้งานเลือกรุ่นบอร์ด Arduino ที่ใช้และหมายเลข Com port
3. กดปุ่ม Verify เพื่อตรวจสอบความถูกต้องและ Compile โค้ดโปรแกรม จากนั้นกดปุ่ม Upload โค้ด โปรแกรมไปยังบอร์ด Arduino ผ่านทางสาย USB เมื่ออับโหลดเรียบร้อยแล้ว จะแสดงข้อความแถบข้างล่าง “Done uploading” และบอร์ดจะเริ่มทำงานตามที่เขียนโปรแกรมไว้ได้ทันที
Layout & Pin out Arduino Board (Model: Arduino UNO R3)
1.USBPort: ใช้สำหรับต่อกับ Computer เพื่ออับโหลดโปรแกรมเข้า MCU และจ่ายไฟให้กับบอร์ด
2.Reset Button: เป็นปุ่ม Reset ใช้กดเมื่อต้องการให้ MCU เริ่มการทำงานใหม่
3.ICSP Port ของ Atmega16U2 เป็นพอร์ตที่ใช้โปรแกรม Visual Com port บน Atmega16U2
4. I/OPort:Digital I/O ตั้งแต่ขา D0 ถึง D13 นอกจากนี้ บาง Pin จะทำหน้าที่อื่นๆ เพิ่มเติมด้วย เช่น Pin0,1 เป็นขา Tx,Rx Serial, Pin3,5,6,9,10 และ 11 เป็นขา PWM
5.ICSP Port: Atmega328 เป็นพอร์ตที่ใช้โปรแกรม Bootloader
6. MCU: Atmega328 เป็น MCU ที่ใช้บนบอร์ด Arduino
7. I/OPort: นอกจากจะเป็น Digital I/O แล้ว ยังเปลี่ยนเป็น ช่องรับสัญญาณอนาล็อก ตั้งแต่ขา A0-A5
8.Power Port: ไฟเลี้ยงของบอร์ดเมื่อต้องการจ่ายไฟให้กับวงจรภายนอก ประกอบด้วยขาไฟเลี้ยง +3.3 V, +5V, GND, Vin
9. Power Jack: รับไฟจาก Adapter โดยที่แรงดันอยู่ระหว่าง 7-12 V
10. MCU ของ Atmega16U2 เป็น MCU ที่ทำหน้าที่เป็น USB to Serial โดย Atmega328 จะติดต่อกับ Computer ผ่าน Atmega16U2
สมัครสมาชิก:
บทความ (Atom)