วันจันทร์ที่ 15 พฤษภาคม พ.ศ. 2560

จิกซอในจินตนาการ ตอนที่ 4 unity coding สำหรับโปรแกรมวาดรูปบน android

        ด้วยความที่ลักษณะของappค่อนข้างคล้ายไปทางเกม  จึงได้เลือกใช้unityสำหรับการสร้างตัวappขึ้นมา  ซึ่งunityจะค่อนข้างครบเครื่องในเรื่องการพัฒนาเกม และการเขียนโปรแกรมเชิงวัตถุ(Object)  ที่สำคัญยังสามารถพัฒนาappบนแพลตฟอร์มอื่นๆได้หลากหลายอีกด้วย  ในทีนี้เราจะสร้างandroid applicationกัน


หลักๆก็จะแบ่งส่วนการทำงานเป็นสามส่วน คือ
1. ส่วนที่เก็บข้อมูลของแต่ละdot และจัดข้อมูลเป็นpackage ก่อนส่งให้ controller
2. ส่วนTCP serverเพื่อให้มือถือทำหน้าที่เป็นhost สำหรับจ่ายpackageให้แต่ละclientที่เชื่อมต่อเข้ามา(Node mcu)
3. ส่วนGUIเพื่อตกแต่งให้โปรแกรมสวยงามและใช้งานง่าย  รวมถึงโปรแกรมเบื้องหลังที่ช่วยในส่วนการแสดงผล (prefab,raycast,etc.)

วันจันทร์ที่ 8 พฤษภาคม พ.ศ. 2560

จิกซอในจินตนาการ ตอนที่ 3 code รับส่งข้อมูล ระหว่าง APP และ Dot Matrix

#include 
#include 

#define SERVER_PORT 4000            //ค่า port ที่ต้องการเชื่อมต่อ
IPAddress server_ip = {192,168,43,1};       //ค่า ip ของ Server (อย่าลืมแก้เป็น IP ของตัวเอง)
 
const char* ssid = "chicky";         //ค่าของ SSID (อย่าลืมแก้เป็น ชื่อ SSID ของตัวเอง)
const char* password = "chicky#69"; //ค่าของ SSID (อย่าลืมแก้เป็น password ของตัวเอง)
 
WiFiServer server(SERVER_PORT); //สร้าง object server และกำหนด port ที่ต้องการเชื่อมต่อกับ server
WiFiClient client;              //สร้าง object client
Ticker second;

int ben = 0 , i = 0, j = 136, n = 136, fast;
int  number = 0, half_min = 0;
uint8_t mix_ben = 0, c =0;
const int latchPin = 15;//Pin connected to ST_CP of 74HC595
const int clockPin = 14;//Pin connected to SH_CP of 74HC595 
const int dataPin = 13; //Pin connected to DS of 74HC595  
int slot[144] ={0x08, 0x39, 0x5E, 0x7E, 0x7E, 0x3E, 0x1D, 0x38, /*" ",0*/
                0x08, 0x38, 0x5E, 0x7F, 0x7F, 0x3E, 0x0C, 0x0E, /*"ไก่",1*/
                0x00, 0x44, 0xCD, 0xFF, 0xFF, 0xCD, 0x44, 0x00, /*"1",2*/
                0x00, 0x89, 0x9B, 0xFB, 0xFB, 0x9B, 0x89, 0x00, /*"2",3*/
                0x00, 0x26, 0x6F, 0xE7, 0xE7, 0x6F, 0x26, 0x00, /*"3",4*/
                0x00, 0x48, 0xDC, 0xCF, 0xCF, 0xDC, 0x48, 0x00, /*"4",5*/
                0x00, 0x90, 0xB8, 0xBE, 0xBE, 0xB8, 0x90, 0x00, /*"5",6*/
                0x00, 0x40, 0xE0, 0xF8, 0xF8, 0xE0, 0x40, 0x00, /*"6",7*/
                0x00, 0x00, 0x80, 0xE0, 0xE0, 0x80, 0x00, 0x00, /*"จรวดขึ้น",8*/
                0x00, 0x00, 0x00, 0x6C, 0x92, 0x92, 0x6C, 0x00, /*"8",9*/
                0x00, 0x00, 0x00, 0x4C, 0x92, 0x92, 0x7C, 0x00, /*"9",10*/
                0x00, 0x00, 0x00, 0xFC, 0x22, 0x22, 0xFC, 0x00, /*"A",11*/
                0x00, 0x00, 0x00, 0xFE, 0x92, 0x92, 0x6C, 0x00, /*"B",12*/
                0x00, 0x00, 0x00, 0x7C, 0x82, 0x82, 0x44, 0x00, /*"C",13*/
                0x00, 0x00, 0x00, 0xFE, 0x82, 0x82, 0x7C, 0x00, /*"D",14*/
                0x00, 0x00, 0x00, 0xFE, 0x92, 0x92, 0x82, 0x00, /*"E",15*/
                0x00, 0x00, 0xFE, 0x12, 0x12, 0x02, 0x00, 0x00, /*"F",16*/
                              /*"add slot",17*/}; 

จิกซอในจินตนาการ ตอนที่ 2 วงจร



ในส่วนนี้จะเป็นวงจรที่ จะแปลงไฟ จาก 9V มาเป็น 5 V เพื่อเลี้ยงไฟ 5V ให้กับ Node Mcu V2 ซึ่งไฟ 9V นั้นสามารถหาได้ทั่ว ไป  7-11 เราเลือกใช้ถ่าน เพราะมันจะสะดวกด้านการเคลื่อนย้าย บล็อก ของแต่ละบล็อก

วันพฤหัสบดีที่ 4 พฤษภาคม พ.ศ. 2560

จิกซอในจินตนาการ ตอนที่ 1 แสดงผล DOT MATRIX





อุปกรณ์

1.       Dot matrix สีแดง ใช้ไฟเลี้ยง 5 V เป็นขา common cathode
2.       Board Driver สีแดง เป็นตัว Driver dotmartrix ใช้ชิพ 74HC595 เป็น ชิพที่ใช้เพิ่มขา Analog  ใช้ทั้งหมด 2 ตัว

Node MCU ปัญหา WDT RESET



Node mcu  ถ้าเกิด bug ประมาณนี้  เพราะว่า

1.              ทำ loop หลายรอบ
2.             code มีความยาวมากเกินไป
3.             wifi  หลุดบ่อย
4.             ถ้าไม่ได้แตะ ตัว Hardware เช่น กด หรือ จับไว้

wdt หรือ Watch Dog Timer เป็นวงจรเล็ก ๆ ที่เอาไว้เช็คว่าโปรแกรมยังทำงานปกติในเวลาทีกำหนด ถ้าโปรแกรมทำงานช้ากว่าที่กำหนดแสดงว่าโปรแกรมอาจทำงานไม่ปกติหรือแฮงค์ wdt reset ก็จะเริ่มทำงานเมื่อโปรแกรมทำงานสั่งให้ reset nodemcu ซึ่งเกิดจากโคดมีปัญหา หรือตัว hardware