เลือกหน้า

ภาพที่ 1 แผนผังวงจร KidBright32

โมดูล ESP-WROOM-32

ภาพที่ 2 แผนผังวงจรโมดูล ESP-WROOM-32

          หัวใจของ KidBright32 คือโมดูล ESP-WROOM-32 ซึ่งภายในประกอบขึ้นจากชิพ ESP32 ซึ่งเป็นไมโครคอนโทรลเลอร์ที่ผลิตโดยบริษัท Espressif จากประเทศจีน มีความสามารถรองรับการเชื่อมต่อ WiFi และ Bluetooth

คุณสมบัติของโมดูล ESP-WROOM-32

–  ใช้หน่วยประมวลผล Xtensa® dual-core 32-bit LX6 สัญญาณนาฬิกาสูงสุด 260 เมกะเฮิรตซ์ 
–  มีหน่วยความจำภายใน 520 กิโลไบต์
–  รองรับการเชื่อมต่อหน่วยความภายนอกสูงสุด 16 เมกะไบต์
–  การเชื่อมต่อ WiFi มาตรฐาน 802.11 b/g/n
–  มาพร้อมกับ Bluetooth ที่รองรับโหมด Classic และ 4.2 BLE
–  ทำงานที่แรงดันไฟฟ้า 3.3 โวลต์
–  มาพร้อมสายอากาศชนิดลายวงจรพิมพ์ย่านความถี่ 2.4 กิกะเฮิรตซ์

ลักษณะการต่อใช้งานขาต่าง ๆ ของโมดูล ESP-WROOM-32 บนบอร์ด KidBright32

–  ที่ขา VCC จะต่อไฟเลี้ยง 3.3 โวลต์ และมีตัวเก็บประจุขนาด 100 ไมโครฟารัด และ 1 ไมโครฟารัด ทำหน้าที่กรองแรงดันให้เรียบ และกำจัดสัญญาณรบกวน
–  ที่ขา EN ถูกต่อ ตัวต้านทานแบบ Pull – up กับแรงดัน 3.3 โวลต์ และต่อตัวเก็บประจุเชื่อมต่อลงกราวด์ เพื่อให้ขา EN ได้รับแรงดัน 3.3 โวลต์ หรือ ลอจิก “1” เสมอเพื่อให้โมดูล ESP-WROOM-32 อยู่ในโหมดทำงาน และตัวเก็บประจุค่า 0.1uF ทำหน้าที่สร้างสัญญาณรีเซทเพื่อเริ่มการทำงานของโมดูลเมื่อจ่ายไฟให้กับโมดูล
–  มีขา ADC ทำหน้าที่อ่านสัญญาณอนาล็อก เชื่อมต่อกับขา IO36 (SENSOR_VP)
–  มีขาอินพุต 4 ขา คือ IN1 IN2 IN3 และ IN4 เชื่อมต่อกับ ต่อกับ IO32 ถึง IO35 ตามลำดับ
–  มีขาเอาต์พุต 2 ขา คือ OUT1 และ OUT2 เชื่อมต่อกับ IO26 และ IO27
–  มีขาเชื่อมต่อชนิด I2C อยู่ 2 ชุดได้แก่ SCL0/SDA0 และ SCL1/SDA1 สำหรับติดต่อสื่อสารกับโมดูลต่าง ๆ เช่น โมดูลวัดอุณหภูมิ โมดูลสัญญาณนาฬิกา โมดูลขับหลอดไฟแบบ Matrix 8×8 และโมดูลภายนอกอื่น ๆ เป็นต้น
–  มีขาเชื่อมต่อแบบ Serial ที่ขา TX0 และ RX0 มีหน้าที่ติดต่อสื่อสารกับคอมพิวเตอร์ ผ่านตัวแปลงสัญญาณ USB to Serial เบอร์ FT231 ที่มาพร้อมบนบอร์ด KidBright32
–  มีขาควบคุม ปิด – เปิด การจ่ายไฟขั้วต่อ USB โดยสัญญาณ USB_SW ที่เชื่อมต่อกับ IO25
–  มีจุดต่อขาอินพุต เอาต์พุต (IO) 18 19 และ 23 อยู่บนบอร์ด

ขั้วต่อสำหรับใช้งานขาของ KidBright32

ภาพที่ 3 ขั้วต่อบานาน่าขนาด 4 มิลลิเมตร

มีขั้วต่อทั้งหมด 10 จุดสำหรับใช้ต่อหัวปลั๊กบานาน่าขนาด 4 มิลลิเมตร ซึ่งแยกเป็น

–  ขั้วจ่ายแรงดัน 5 โวลต์จำนวน 2 จุด
–  ขั้วอินพุต IN1 ถึง IN4 จำนวน 4 จุด ต่อกับขา IO32 ถึง IO35
–  ขั้วเอาต์พุต OUT1 และ OUT2 จำนวน 2 จุด ต่อกับขา IO26 และ IO27
–  ขั้วต่อกราวด์จำนวน 2 จุด

 

การป้องกันในส่วนของขาอินพุต

ภาพที่ 4 วงจรป้องกันในส่วนของอินพุต

          ขาอินพุตของ KidBright32 ที่ต่อไปที่ขั้ว IN1 ถึง IN4 จะถูกต่อผ่านไอซีเบอร์ NC7WZ17 ซึ่งเป็นวงจรกันชน (Buffer) และ Schmitt Trigger อินพุต หน้าที่หลักของไอซีตัวนี้คือ ป้องกันความเสียหายที่อาจจะเกิดขึ้นกับขาอินพุตทั้ง 4 ขาในกรณีที่อาจจะมีการป้อนแรงดันไฟฟ้าที่ขาอินพุตเกินกำหนดซึ่งตัวไอซีนี้สามารถทนแรงดันได้ถึง 7 โวลต์

การต่อไอซีป้องกันนี้ทำให้ใช้งานขา IO32 – IO35 ได้เฉพาะเป็นดิจิทัลอินพุตเท่านั้นจะไม่สามารถใช้ขาสัญญาณเหล่านี้เป็นขาเอาต์พุต หรืออนาลอกได้ตามความสามารถของ ESP32

สวิตช์และไดโอดเปล่งแสง

ภาพที่ 5 วงจรการต่อสวิตช์

          บนบอร์ด KidBright32 นั้นจะมีปุ่มกด 3 ปุ่มแบบ กดติด – ปล่อยดับ ประกอบไปด้วยปุ่ม S1 S2 ต่อกับขาสัญญาณ IO16 และ IO14 ของ ESP32 ตามลำดับ เมื่อกดปุ่มสวิตช์จะถูกเชื่อมต่อลงกราวด์ตัว KidBright32 จะได้รับลอจิก “0” LOW และเมื่อปล่อยปุ่มก็จะได้รับลอจิก “1” HIGH ปุ่ม RESET ทำหน้าที่เริ่มต้นการทำงาน KidBright32 โดยเมื่อกดปุ่ม RESET ที่ขา EN จะได้รับลอจิก “0” LOW ทำให้ KidBright32 หยุดทำงานและเมื่อปล่อยปุ่ม ขา EN จะกลายเป็นลอจิก “1” HIGH ทำให้ KidBright32 เริ่มต้นทำงานอีกครั้ง

ภาพที่ 6 วงจรการต่อไดโอดเปล่งแสง

ไดโอดเปล่งแสง (LED) บนบอร์ด KidBright32 มีทั้งหมด 4 ดวงได้แก่

–  สีน้ำเงินต่อกับ GPIO17
–  สีแดงต่อกับ GPIO2
–  สีเหลืองต่อกับ GPIO15
–  สีแดงต่อกับ GPIO13

การสั่งงานให้หลอดไดโอดเปล่งแสงทำงานต้องสั่ง OUTPUT ให้เป็นลอจิก “0” LOW หลอดไดโอดเปล่งแสงถึงจะสว่าง เนื่องจากถูกต่อกับแหล่งจ่ายไฟฟ้า 3.3 โวลต์ไว้ผ่านตัวต้านทาน 330 โอห์มที่จำกัดการไหลของกระแส

หมายเหตุ ตัวอักษร BT, WIFI, NTP, และ IOT ที่ LED แต่ละดวงมีจุดมุ่งหมายเพื่อแสดงการใช้งานฟังก์ชั่นBluetooth, WiFi, Network Time Protocol และ IoT ซึ่งจะมีไลบราลี่ออกมาในอนาคต

ขั้วต่อ I2C และ ขา GPIO

ภาพที่ 7 ขั้วต่อของบอร์ด KidBright32

          ขั้วต่อ J1 จะมีจุดต่อบัส I2C และจุดต่อขา IO18 IO19 และ IO23 สำหรับการต่อวงจรใช้งานอื่น ๆ เพิ่มเติมตามความต้องการ แต่เนื่องจากจุดต่อเหล่านี้จะต่อตรงเข้ากับโมดูล ESP32 ไม่มีการป้องกันใด ๆ จึงควรระมัดระวังต่อวงจรและใช้แรงดันให้ถูกต้อง ถ้าต้องการนำไปใช้งาน

 

วงจรควบคุมขั้วต่อ USB

ภาพที่ 8 วงจรควบคุมขั้วต่อ USB

          ขั้วต่อ USB (J4) มีไว้สำหรับการต่อออกไปใช้งานเพื่อจ่ายแรงดัน 5V ให้กับอุปกรณ์ภายนอกอื่น ๆ โดยใช้ MOSFET แบบ N-Chanel 2 ตัว ในการควบคุมการ ปิด-เปิด การต่อวงจรลักษณะนี้ทำให้มีการจ่ายไฟ 5 โวลต์ เมื่อจ่ายลอจิก “0” LOW ที่ขาสัญญาณ USB_SW (IO25) และปกติขา USB_SW จะถูกต่อ Pull-up ที่แหล่งจ่ายไฟฟ้าไว้ 3.3 โวลต์ อ้างอิงจากภาพที่ 6 วงจรการต่อไดโอดเปล่งแสง จึงทำให้ขั้วต่อ USB_SW ยังไม่ทำงาน

 

วงจรควบคุมเอาต์พุต

ภาพที่ 9 วงจรควบคุมเอาต์พุต

          เอาต์พุต OUT1 และ OUT2 ถูกควบคุมด้วย MOSFET แบบ N-Chanel การต่อวงจรลักษณะทำให้ MOSFET ทำงานเมื่อมีลอจิก “1” HIGH จะเป็นการต่อวงจรให้กระแสไหลผ่านตัวมันลงกราวด์ และเมื่อลอจิกที่ขา OUT1 และ OUT2 เปลี่ยนสถานะเป็น “0” LOW ตัว MOSFET ก็จะหยุดทำงาน ดังนั้น

การต่อโหลดเข้าที่ขา OUT1 และ OUT2 จึงต้องต่อขั้วบวกของโหลดเข้าที่ขั้วบวกของแหล่งจ่าย และต่อขั้วลบหรือกราวนด์ของโหลดเข้าที่ขา OUT1 หรือ OUT2 ตามที่ต้องการควบคุม

วงจรรักษาระดับแรงดัน Regulator

ภาพที่ 10 วงจรรักษาระดับแรงดัน

          อุปกรณ์ชิ้นส่วนไอซีที่ใช้อยู่บนบอร์ด KidBright32 จะมีทั้งที่ใช้กับแรงดันทั้ง 5 โวลต์ และ 3.3 โวลต์ จึงจำเป็นต้องมีวงจรรักษาระดับแรงดันทำหน้าที่ลดแรงดัน 5 โวลต์ที่จ่ายเข้ามาให้เหลือ 3.3 โวลต์ตามต้องการ ซึ่งเป็นหน้าที่ของไอซี Regulator แบบ LDO (Low Dropout Voltage) เบอร์ LD1117 ที่มีความสามารถจ่ายกระแสไฟฟ้าได้สูงสุด 800 มิลลิแอมแปร์ และมีตัวเก็บประจุทำหน้าที่กรองแรงดันให้มีเสถียรภาพมากยิ่งขึ้น แต่อย่างไรก็ตาม กระแสรวมทั้งหมดที่อุปกรณ์ทุกอย่างทั้งบนบอร์ด KidBright32 เอง และอุปกรณ์ต่อพ่วงต่าง ๆ สามารถใช้ได้จะจำกัดที่ 500 มิลลิแอมแปร์ เท่านั้น

 

วงจรแปลงสัญญาณ USB to Serial และวงจรรีเซทอัตโนมัติ

ภาพที่ 11 วงจรแปลงสัญญาณ USB to Serial และวงจรรีเซทอัตโนมัติ

          วงจรส่วนนี้จะมีไอซี FT231 ทำหน้าที่แปลงการติดต่อสื่อสารรูปแบบ Serial UART ของโมดูล ESP-WROOM-32 ไปเป็นการติดต่อผ่าน USB เพื่อใช้สื่อสารกับคอมพิวเตอร์ การสื่อสาร UART ของโมดูล ESP-WROOM-32 นี้จะใช้สำหรับติดต่อกับ KidBright IDE เพื่อทำการอัพโหลดโปรแกรมจาก PC ลงมาที่บอร์ด Kidbright (บางทีจะเรียกขั้นตอนนี้ว่าการแฟลชโปรแกรม) และใช้เพื่อส่งข้อความต่าง ๆ จากบอร์ด KidBright32 กลับขึ้นไปแสดงที่ PC ด้วย

          ในการ Upload โปรแกรมนั้นโมดูล ESP-WROOM-32 บนบอร์ด KidBright32 จะต้องถูกกำหนดให้เข้าโหมด upload boot เพื่อรอรับข้อมูลของโปรแกรมที่ต้องการ Upload จาก Kidbright IDE การเข้าสู่โหมด upload boot โดยอัตโนมัติถูกควบคุมด้วยวงจรรีเซทที่ประกอบด้วย Transistor ชนิด NPN จำนวน 2 ทำหน้าที่ควบคุมขาสัญญาณ EN และ IO0 โดยการสั่งงานจาก Kidbright IDE เพื่อให้โมดูล ESP-WROOM-32 เริ่มต้นทำงานในโหมด upload boot และรอรับข้อมูลจนเมื่อเสร็จสิ้นการ Upload โปรแกรม Kidbright IDE ก็จะมีการรีเซทโมดูล ESP-WROOM-32 อีกครั้งเพื่อเริ่มต้นทำงานในโหมดทำงานปรกติ

          ขั้วต่อ USB ที่ใช้ติดต่อกับ Kidbright IDE นี้จะทำหน้าที่รับแรงดันไฟฟ้าจากแหล่งจ่ายภายนอก โดยใช้ขั้วต่อชนิด Micro USB และมี resettable fuse ขนาด 500 มิลลิแอมแปร์ต่ออยู่เพื่อป้องกันความเสียหายที่อาจจะเกิดขึ้นกับเครื่อง PC เนื่องจากการดึงกระแสมากกว่าความสามารถที่พอร์ต USB บนเครื่อง PC จะจ่ายได้อาจจะเนื่องจากปัญหาของตัวบอร์ด KidBright32 เอง หรืออาจจะมีความผิดพลาดในการต่อวงจรเพิ่มเติม

 

วงจรขับโมดูลหลอดไดโอดเปล่งแสง (LED) แบบ Matrix 8x8

ภาพที่ 12 วงจรการต่อแผงไดโอดเปล่งแสงแบบ Matrix 8x8 จำนวน 2 ชุด

20

ภาพที่ 13 วงจรการต่อแผงไดโอดเปล่งแสงแบบ Matrix 8x8

ภาพที่ 14 วงจรขับแผงไดโอดเปล่งแสงแบบ Matrix 8x8

          แผงไดโอดเปล่งแสงแบบ Matrix 8×8 แต่ละแผงประกอบด้วยไดโอดสีแดงจำนวน 64 จุดต่อกันในลักษณะของ Matrix ขนาด 8 row คูณ 8 column ซึ่งเชื่อมต่อด้วยบัสการสื่อสารแบบ I2C ชุดแรก (ขา SCL0 และ SDA0) บนบอร์ด KidBright32 ทำให้การควบคุมทำได้ง่ายมากยิ่งขึ้น และการสั่งงานหลอดไดโอดเปล่งแสงจำนวนมากอาจทำให้เกิดการดึงกระแสมากขึ้น จึงจำเป็นต้องต่อตัวเก็บประจุค่าความจุ 10 ไมโครฟารัดจำนวน 3 ตัวที่แหล่งจ่ายไฟเข้าไปด้วย และมีตำแหน่ง Adress I2C คือ 0x70

วงจรวัดอุณหภูมิ

ภาพที่ 15 วงจรวัดอุณหภูมิ

          วงจรวัดอุณหภูมิไอซี LM73 สามารถวัดอุณหภูมิได้ระหว่าง -40 ถึง +150 องศาเซลเซียส ด้วยความแม่นยำ ± 1 องศา ในย่านการวัด -10 ถึง +80 องศาเซลเซียส ESP-WROOM-32 จะติดต่อกับ LM73 ด้วยการเชื่อมต่อI2C ชุดที่ 2 (ขา SCL1 และ SDA1) ไอซี LM73 ขา ADDR ในภาพที่ 15 วงจรวัดอุณหภูมิ ถูกต่อลงกราวด์ ตำแหน่ง Adress I2C จึงเรียกอ่านที่ 0x4D

วงจรสัญญาณฐานเวลานาฬิกาจริง Real-Time Clock

ภาพที่ 16 วงจรสัญญาณฐานเวลานาฬิกาจริง Real-Time Clock

          วงจรฐานเวลานาฬิกาจริงใช้ไอซีเบอร์ MCP7940N-I/SN ทำงานร่วมกับคริสตัลควบคุมความถี่ค่า 32.768 เมกะเฮิรตซ์ เพื่อสร้างฐานเวลามาตรฐาน 1 วินาที่ภายในไอซี ฐานเวลามาตรฐานนี้ จะถูกนับและทดไปเป็นหน่วยนาที ชั่วโมง วัน เดือน ปี ต่อไป และเพื่อให้วงจรสัญญาณนาฬิกาทำงานตลอดเวลาจึงจำเป็นต้องต่อแบตเตอรี่ 3 โวลต์ขนาด CR2032 บนบอร์ด KidBright32 ไอซีเบอร์ MCP7940N-I/SN มี RTC และ EEPROM จึงมีตำแหน่ง Adress 2 ชุด ตำแหน่ง Adress RTC คือ 0x6F และตำแหน่ง Adress ของ EEPROM คือ 0x57

จากภาพที่ 16 วงจรสัญญาณฐานเวลานาฬิกาจริง Real-Time Clock ไอซีเบอร์ MCP79411-I/SN ในวงจรถูกเปลี่ยนไปใช้เบอร์ MCP7940N-I/SN

วงจรวัดแสง

ภาพที่ 17 วงจรวัดแสงโดยใช้ตัวต้านทานเปลี่ยนค่าตามแสง

          ตัวต้านทานเปลี่ยนค่าตามแสงหรือ LDR (Light Dependent Resistor) เป็นตัวต้านทานที่สามารถเปลี่ยนค่าความต้านทานไฟฟ้าของตัวมันได้เมื่อมีแสงมาตกกระทบโดยเมื่อเวลามีแสงตกกระทบจะทำให้มีความต้านทานลดลง ยิ่งความเข้มของแสงที่ตกกระทบมากเท่าไร ความต้านทานก็ยิ่งลดลงมากเท่านั้น และในทางกลับกัน เมื่อไม่มีแสงตกกระทบ ตัวLDR จะมีความต้านทานสูงมากขึ้น

          เมื่อนำตัวต้านทานเปลี่ยนค่าตามแสงมาต่อเป็นส่วนหนึ่งของวงจรแบ่งแรงดันไฟฟ้า voltage divider จะทำให้ได้ค่าแรงดันไฟฟ้าที่เปลี่ยนแปลงตามแสงที่ตกกระทบ LDR แรงดันที่เปลี่ยนค่าไปมานั้นจะถูกต่อเข้า ADC กับขา IO36 (SENSOR_VP) ของ ESP-WROOM-32 เพื่อให้สามารถอ่านค่าได้

          ADC ย่อมาจาก Analog to Digital Converter ใช้วัดแรงดันไฟฟ้า การใช้งาน ADC จะมีเรื่องของความเร็วในการวัด และความละเอียดในการวัด สำหรับ ESP32 สามารถใช้งาน ADC ได้ที่ความละเอียด 12 บิต หรือค่าที่ได้จะอยู่ในช่วง 0 – 4095 โดยค่าแรงดันที่วัดได้สูงสุดจะเรียกว่า แรงดันอ้างอิง สมมุติกำหนดให้แรงดันอ้างอิงเท่ากับ 3.3V หากวัดแรงดันได้ 3.3V จะอ่านค่าจาก ADC ได้ 4095

 

วงจรควบคุมลำโพงแบบ Buzzer

ภาพที่ 18 วงจรควบคุมลำโพง

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

          วงจรควบคุมใช้ ทรานซิสเตอร์เบอร์ BC847 ชนิด NPN เป็นตัวขับลำโพง HC12G ตอบสนองความถี่ 2048 เฮิร์ต สัญญาณที่ขา PWM สามารถควบคุมการทำงานของลำโพง ให้เกิดเสียงโทนต่าง ๆ ได้ และที่ความถี่ต่าง ๆ จะให้โทนเสียงที่แตกต่างกัน

          PWM ย่อมาจาก Pulse Width Modulation ใช้สำหรับควบคุมอุปกรณ์แบบอนาล็อก โดยหลักการของ PWM คือสร้างความถี่ที่มีคาบเวลาเปิด – ปิดไม่เท่ากัน