Categories
บทความ

การใช้งาน ESP8266 บน Arduino IDE

ESP8266 เป็น IC wifi ราคาประหยัดสำหรับใช้งานเป็น IoT หรือ Internet of Thing โดยทางผู้ผลิต IC ตัวนี้เปิด source code ของตัว IC ให้เป็นแบบ open source ทำให้มีผู้พัฒนาหลายรายนำเอา ESP8266 ไปปรับแก้ไข firmware และหนึ่งในนั้นก็นำเอาไปสร้างเป็น Arduino core for ESP8266 WiFi chip เพื่อให้เราสามารถเขียนโปรแกรมควบคุม ESP8266 ผ่านทาง Arduino IDE ได้เลย class ต่างๆก็จะคล้ายๆกับ class WiFi ของ Arduino เดิม ทำให้เกิดความสะดวกและรวดเร็วในการพัฒนาโปรแกรมครับ

ขั้นตอนการใช้งาน ESP8266 บน Arduino IDE
ติดตั้ง  Arduino core for ESP8266 WiFi chip โดยเข้าไปที่เมนู File -> Preferences ในช่อง Additional Boards Manager URLs ให้ใส่ http://arduino.esp8266.com/stable/package_esp8266com_index.json แล้วกดปุ่ม OK
arduino-esp8266-0
หลังจากนั้นให้เลือกที่เมนู Tools -> Board: “xxxxxxxxxxxx” -> Boards Manager
arduino-esp8266-1
ที่หน้าต่าง Boards Manager ในช่อง Type ให้เลือกเป็น Contributed แล้วเลือก esp8266 by ESP8266 Community แล้วคลิกที่ปุ่ม Install และรอจนกว่าการติดตั้งจะเสร็จ
arduino-esp8266-2
หากติดตั้งไฟล์สำหรับ ESP8266 เสร็จแล้ว ให้เข้าไปที่เมนู Tools -> Board: “xxxxxxxxx” แล้วเลือกบอร์ดที่เราใช้งานอยู่ ตัวอย่างเช่น ผมใช้บอร์ด nodemcu v0.9 อยู่ก็ให้เลือก NodeMCU 0.9 (ESP-12 Module) หรือหากไม่มีบอร์ดให้เลือกก็เลือกที่ Generic ESP8266 Module แล้วตั้งค่า CPU Frequency, และ Flash รวมทั้ง COM Port ให้ตรงกับค่าที่ใช้บนบอร์ดครับ
arduino-esp8266-3
เมื่อเลือกบอร์ดเสร็จแล้วก็ลอง compile และอัพโหลดโปรแกรมลงไปยัง ESP8266 โดยเลือกที่เมนู File -> Examples -> esp8266 -> Blink
arduino-esp8266-4
หลังจากเปิดโปรแกรมตัวอย่างแล้ว ให้กดปุ่ม Flash บนบอร์ด NodeMCU แล้วเสียบสาย USB เข้าไปยังบอร์ด การกดปุ่ม Flash เพื่อให้ ESP8266 เข้าสู่โหมดอัพโหลดข้อมูล เมื่อจ่ายไฟให้กับบอร์ดแล้ว ก็กดปุ่ม Upload แล้วรอจนกว่าจะอัพโหลดเสร็จ
arduino-esp8266-5
หากไม่มีอะไรผิดพลาดก็จะอัพโหลดเสร็จ LED บนบอร์ด NodeMCU ก็จะกระพริบ เป็นอันว่าเราสามารถเขียนโปรแกรม ESP8266 บน Arduino IDE ได้แล้วครับ

Jpeg
Jpeg
Categories
บทความ

เพิ่ม ฺBoard Support Package ใน MPLAB Harmony

วิธีการเพิ่ม Board Support Package (BSP) สำหรับ MPLAB Harmony สามารถทำได้โดยการคัดลอกไฟล์ bsp ที่มีอยู่แล้วมาแก้ไข ซึ่งวิธีการนี้จะช่วยให้เราเพิ่ม bsp ได้เร็วกว่าการมาเขียนเองใหม่หมด ตัวอย่างนี้จะคัดลอกไฟล์จากโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga มาแก้ไขให้เป็น bsp ของเราเองโดยใช้ชื่อว่า PIC32MZ SSD1963 ครับ

เริ่มจากคัดลอกโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga แล้วเปลี่ยนชื่อเป็น bsp/pic32mz_ssd1963 เสร็จแล้วให้เข้าไปแก้ไข source code ในไฟล์ bsp/pic32mz_ssd1963/bsp_sys_init.c และไฟล์ bsp/pic32mz_ssd1963/bsp_config.h ให้ตรงกับวงจรที่เราออกแบบ ต่อไปก็แก้ไขไฟล์ bsp/pic32mz_ssd1963/xml/bsp.xml ให้ตรงกับ hardware ของเราดังเช่น

<?xml version=”1.0″?>
<bsp name=”pic32mz_ssd1963″>
<function name=”USB_VBUS_SWITCH” pin=”RB13″ direction=”out” mode=”digital”/>
</bsp>

หลังจากนั้นให้เข้าไปเพิ่ม BSP ของเราในไฟล์ bsp/config/bsp.hconfig ตามตัวอย่างด้านล่างครับ

enum DS60001191_BSP
“PIC32MZ EC PIM w/ Bluetooth Audio Development Kit”
|| “PIC32MZ EC PIM w/ Explorer16”
|| “PIC32MZ EC Starter Kit”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass”
|| “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass”
|| “PIC32MZ SSD1963”

 

config BSP_USE_USBSWITCH
bool
depends on DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”

 

config BSP_14
bool
depends on DS60001191_FAMILY = “PIC32MZ SSD1963”
select USE_GFX_TRULY_7_800X480_NEEDED
select USE_DRV_GFX_SSD1926_NEEDED
select USE_GFX_STACK
default y

 

config BSP_POSC_24MHz
bool
depends on DS60001191_FAMILY = “PIC32MZ EC PIM w/ Bluetooth Audio Development Kit” ||
DS60001191_FAMILY = “PIC32MZ EC PIM w/ Explorer16” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”
default y

 

default “pic32mz_ssd1963” if  DS60001191_FAMILY = “PIC32MZ SSD1963”

 

ifblock DS60001191_FAMILY = “PIC32MZ SSD1963”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_H “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_config.h” to “$PROJECT_HEADER_FILES/bsp/pic32mz_ssd1963/bsp_config.h”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_C “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_sys_init.c” to “$PROJECT_SOURCE_FILES/bsp/pic32mz_ssd1963/bsp_sys_init.c”
compiler COMPILER_BSP_INCLUDE26 includepath “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963”
endif

Categories
บทความ

เพิ่ม LCD Controller ใน MPLAB Harmony

การเพิ่ม LCD Controller ใน MPLAB เพื่อให้รองรับ LCD Controller ที่เราจะใช้สามารถทำได้โดยการคัดลอกไฟล์ต่างๆของ LCD Controller ที่มีอยู่แล้วมาแก้ไข วิธีการนี้จะง่ายและเร็วกว่าการเขียนเองใหม่หมด ตัวอย่างนี้จะเป็นการคัดลอก LCD Controller SSD1926 มาแก้ไขเพื่อใช้งานกับ LCD Controller SSD1963 ครับ

เริ่มจากคัดลอกโฟล์เดอร์ framework/driver/gfx/controller/ssd1926 แล้วแก้ไขชื่อเป็น framework/driver/gfx/controller/ssd1963 เสร็จแล้วให้เข้าไปเปลี่ยนชื่อไฟล์จาก ssd1926 เป็น ssd1963 หลังจากนั้นให้แก้ไข Source code ในไฟล์ framework/driver/gfx/controller/ssd1963/drv_gfx_ssd1963.h และ framework/driver/gfx/controller/ssd1963/src/drv_gfx_ssd1963.c ให้เป็นของ SSD1963 ในขั้นตอนการแก้ไข source code นี้จะขอข้ามไปนะครับ เนื่องจากการแก้ไข source code มีรายละเอียดค่อนข้างเยอะ

ต่อไปให้แก้ไข harmony config ในโฟล์เดอร์ framework/driver/gfx/controller/ssd1963/config ดังนี้

drv_gfx_ssd1963.hconfig

menu “SSD1963”

config USE_DRV_GFX_SSD1963_NEEDED
bool

config USE_DRV_GFX_SSD1963
bool “Use SSD1963 Driver?”
select DRIVER
select USE_DRV_PMP_NEEDED
default n if !USE_DRV_GFX_SSD1963_NEEDED
default y if USE_DRV_GFX_SSD1963_NEEDED
—help—
IDH_HTML_Graphics_Driver_Library
—endhelp—
endmenu

ifblock USE_DRV_GFX_SSD1963
file DRV_GFX_SSD1963_H “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/drv_gfx_ssd1963.h” to “$PROJECT_HEADER_FILES/framework/driver/gfx/controller/gfx_ssd1963/drv_gfx_ssd1963.h”
file DRV_GFX_SSD1963_C “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/src/drv_gfx_ssd1963.c” to “$PROJECT_SOURCE_FILES/framework/driver/gfx/controller/gfx_ssd1963/src/drv_gfx_ssd1963.c”
endif

ส่วนไฟล์ drv_gfx_ssd1963_config.h.ftl, drv_gfx_ssd1963_config_template.h, drv_gfx_ssd1963_init.c.ftl, drv_gfx_ssd1963_init_data.c.ftl ให้แก้ไขจาก SSD1926 เป็น SSD1963

สุดท้ายให้เพิ่มข้อความด้านล่างไปในไฟล์ framework/driver/gfx/controller/config/drv_gfx_controller.hconfig

source “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/config/drv_gfx_ssd1963.hconfig”

Categories
บทความ

เพิ่ม LCD Display ใน MPLAB Harmony

วิธีการเพิ่ม LCD Display ใน MPLAB Harmony สามารถทำได้ง่ายๆโดยการคัดลอกไฟล์ของ LCD ที่มีอยู่แล้ว มาแก้ไขให้ตรงกับ LCD ที่เราต้องการครับ
ในตัวอย่างนี้จะคัดลอกไฟล์ LCD ของ truly_7_800x480 มาแก้ไขให้ใช้งานกับจอ LCD MI0700LT ครับ
ขั้นแรกให้คัดลอกโฟล์เดอร์ truly_7_800x480 แล้วเปลี่ยนชื่อเป็น mi0700lt_7_800x480 หลังจากนั้นให้เข้าไปเปลี่ยนชื่อไฟล์ดังนี้
drv_gfx_truly_7_800x480.h เปลี่ยนเป็น drv_gfx_mi0700lt_7_800x480.h
config/truly_7_800x480.hconfig เปลี่ยนเป็น config/mi0700lt_7_800x480.hconfig
เสร็จแล้วให้เข้าไปแก้ไขค่าต่างๆของ LCD ในไฟล์ drv_gfx_mi0700lt_7_800x480.h ให้ตรงกับ LCD ที่เราจะใช้ดังนี้

#define DISP_ORIENTATION 0
#define DISP_HOR_RESOLUTION 800
#define DISP_VER_RESOLUTION 480
#define DISP_DATA_WIDTH 18
#define DISP_HOR_PULSE_WIDTH 1
#define DISP_HOR_BACK_PORCH 46
#define DISP_HOR_FRONT_PORCH 210
#define DISP_VER_PULSE_WIDTH 1
#define DISP_VER_BACK_PORCH 23
#define DISP_VER_FRONT_PORCH 131
#define DISP_INV_LSHIFT 0
#define GFX_LCD_TYPE GFX_LCD_TFT
#define BACKLIGHT_ENABLE_LEVEL 1
#define BACKLIGHT_DISABLE_LEVEL 0
#define TCON_MODULE NULL

ต่อไปก็เข้าไปแก้ไขไฟล์ config/mi0700lt_7_800x480.hconfig ให้เป็นแบบด้านล่าง

menu “MI0700LT 7\” 800×480 (WVGA) Display”

config USE_GFX_MI0700LT_7_800X480_NEEDED
bool

config USE_GFX_MI0700LT_7_800X480
bool “Use MI0700LT 7\” 800×480 (WVGA) Display?”
default n if !USE_GFX_MI0700LT_7_800X480_NEEDED
default y if USE_GFX_MI0700LT_7_800X480_NEEDED
—help—
IDH_HTML_Graphics_Driver_Library
—endhelp—

endmenu

สุดท้ายให้เข้าไปเพิ่มข้อความด้านล่างในไฟล์ framework/driver/gfx/display/config/drv_gfx_display.hconfig

source “$HARMONY_VERSION_PATH/framework/driver/gfx/display/mi0700lt_7_800x480/config/mi0700lt_7_800x480.hconfig”

 

Categories
บทความ

การติดตั้ง MB2146-07-E บน Windows 8.1 64bit

การติดตั้งและใช้งาน MB2146-07-E BGM Adapter ของ Spansion บน Windows 8.1 64bit สามารถทำได้ตามขั้นตอนดังนี้
1. ดาวน์โหลด Driver สำหรับ Widows 7 64bit ที่หน้าเว็บของ spansion
2. เข้าไปปิด driver signature ของ windows 8.1 โดยทำตามขั้นตอนดังนี้ ปิด Driver signature
3. เข้าไปอัพเดท driver ในหน้า device manager โดยเลือก driver 64bit ที่ดาวน์โหลดมาจากเว็บ spansion

2014-09-15_113503