——ከDWIN ገንቢ መድረክ
በዚህ እትም ከDWIN ገንቢ መድረክ፡ ኢንተለጀንት የድመት ምግብ ቁጥጥር ስርዓት የተሸለመውን የክፍት ምንጭ ጉዳይ እናስተዋውቅዎታለን። መሐንዲሶች የሙቀት መጠንን፣ እርጥበትን እና የተቀረውን የድመት ምግብ መጠን ለመከታተል እና የድመቷን የምግብ አመጋገቦችን ለመቆጠብ የDWIN ስማርት ስክሪን ተጠቅመዋል። በተጨማሪም ልዩ በሆነ መልኩ የንክኪ ግብረመልስ ምስላዊ ግንዛቤን ለማጎልበት የቀለም ቅብ ዘይቤ UI ስብስብን እንዲሁም በጣት ሲነኩ የቀለም ጠቅታ ውጤት ቀርፀዋል።
መግቢያ፡-
1.UI ስዕል ቁሳዊ
DWIN ስማርት ስክሪን በምስል፣ በድምጽ እና በሌሎች ቁሳቁሶች ላይ የተመሰረተ የUI እድገትን ያጠናቅቃል በስክሪኑ ማሳያ ይዘት መሰረት አስቀድሞ መዘጋጀት አለበት።
![አሜሪካ (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bce84b7f87048.jpg)
2.በይነገጽ ልማት
የDGUS ሶፍትዌር የ UI ተጽእኖን በንብርብር ተደራቢ ወደነበረበት ይመልሳል፣ የተዘጋጁትን እቃዎች በዲጂኤስ ሶፍትዌር ውስጥ ወደ ሙሉ ምስል በማዋሃድ እና የማሳያ እና የንክኪ ተግባራትን ያዘጋጃል።
![አሜሪካ (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bd07e78a77806.jpg)
3. የጠቅታ ተፅእኖዎችን እና የድምፅ ተፅእኖዎችን ይተግብሩ
የመዳሰሻ ቦታው በ 51 ኘሮግራም በኩል የተገኘ ነው, የተጫነው ተፅእኖ የጣቱን እንቅስቃሴ ይከተላል, እና የቁልፍ ተጓዳኝ የድምፅ ተፅእኖም ተገኝቷል.
(1) የመዳሰሻ ቦታ ኮድ ያግኙ እና ድምጽ ያጫውቱ፡-
ባዶ TouchDetect()
{
u16 እና [3] = 0;
u8 i = 0;
ለ(i = 0; i
{
Va[i] = Read_Dgus (0x0016 + i);
ከሆነ (ቫ[0] == 0x5A01)
{
}
ሌላ
{
መሰባበር;
}
}
if(i!= 0) // ለመግባት መጀመሪያ ጠቅ ያድርጉ
{
u16 መጫወት[2] = {0x0001, 0x4000};
touchAnimation Flag = 1;
touchAnimationCnt = 0;
touchPosX = ቫ [1];
touchPosY = Va [2];
ጻፍ_dgus_vp (0x00A0፣ ጨዋታ፣ 2);
}
}
(2) የንክኪ ተፅእኖ ማሳያ ኮድ እንደሚከተለው ነው
ባዶ TouchStart()
{
ከሆነ(የንክኪ አኒሜሽን ባንዲራ == 1)
{
ከሆነ(touchAnimationCnt == 0)
{
ጻፍ_Dgus (0x5011, touchPosX - 100);
ጻፍ_Dgus (0x5012, touchPosY - 100);
}
ጻፍ_Dgus (0x5000, touchAnimationCnt);
touchAnimationCnt ++;
ከሆነ(touchAnimationCnt == 6)
{
touchAnimationFlag = 0;
ጻፍ_Dgus (0x5011, 1024);
ጻፍ_Dgus (0x5012, 600);
}
}
}
4. የሚቀጥለው እርምጃ ተጓዳኝ መለኪያዎችን በስክሪኑ በኩል ማዋቀር እና የድመት ምግብን በራስ ሰር የመመገብ ተግባርን ለመገንዘብ መረጃውን በ ESP32 በኩል ለድመት ምግብ መቆጣጠሪያው ማስተላለፍ ነው። ልዩ ኮድ የሚከተለው ነው-
// የአዝራር ሁኔታን ያግኙ
ባዶ ማግኘት_ቁልፍ ሁኔታ()
{
int i = 0;
// u16 Va = Read_Dgus (addr);
u16 ቫ = Read_Dgus (0x1000);
ከሆነ (ቫ! = 0x0000)
{
//ኤስየተደበቀ ገጽ
ከሆነ (Va == 0x0103) // የ g ቁጥርን ያስቀምጡ
{
u16 መለወጫ ገጽ[2] = {0x5A01, 19};
setNum = placeGramNum;
የኋላ ገጽ = 1; //ወደ ሁኔታ ገጽ ተመለስ
ጻፍ_Dgus (0x4000 + 0፣ setNum % 10);
ጻፍ_Dgus (0x4000 + 2፣ setNum / 10% 10);
ጻፍ_Dgus (0x4000 + 4፣ setNum / 100% 10);
ጻፍ_Dgus (0x4000 + 6፣ setNum / 1000% 10);
ጻፍ_dgus_vp (0x0084፣ መለወጫ ገጽ፣ 2);
}
ሌላ ከሆነ (Va == 0x0102)
{
OneSendData3(placeGramNum); //ቦታየድመት ምግብአንድ ጊዜ
}
ሌላ ከሆነ (Va == 0x0101) // ማዋቀር ገጽ
{
u16 መለወጫ ገጽ[2] = {0x5A01, 3};
ለ(i = 0; i
{
ከሆነ (እኔ == 0)
{
ጻፍ_Dgus (0x3070 + i * 0x10 + 0፣ currentTime[i]% 10);
ጻፍ_Dgus (0x3070 + i * 0x10 + 2፣ currentTime[i] / 10% 10);
ጻፍ_Dgus (0x3070 + i * 0x10 + 4፣ currentTime[i] / 100% 10);
ጻፍ_Dgus (0x3070 + i * 0x10 + 6፣ currentTime[i] / 1000% 10);
}
ሌላ
{
ጻፍ_Dgus (0x3070 + i * 0x10 + 0፣ currentTime[i]% 10);
ጻፍ_Dgus (0x3070 + i * 0x10 + 2፣ currentTime[i] / 10% 10);
}
}
ጻፍ_dgus_vp (0x0084፣ መለወጫ ገጽ፣ 2); // የቅንብሮች ገጹን ያስገቡ
}
ሌላ ከሆነ (Va == 0x0100) //አርኢኮርድ ገጽ
{
u16 መለወጫ ገጽ[2] = {0x5A01, 2};
ለ(i = 0; i
{
ከሆነ (እኔ == 0)
{
ጻፍ_Dgus(0x2000 + i * 0x10 + 0፣ eatFeedList[0][i]% 10);
ጻፍ_Dgus (0x2000 + i * 0x10 + 2፣ ይበላሉFeedList[0][i] / 10% 10);
ጻፍ_Dgus(0x2000 + i * 0x10 + 4፣ eatFeedList[0][i] / 100% 10);
ጻፍ_Dgus(0x2000 + i * 0x10 + 6፣ eatFeedList[0][i] / 1000 % 10);
}
ሌላ
{
ጻፍ_Dgus(0x2000 + i * 0x10 + 0፣ eatFeedList[0][i]% 10);
ጻፍ_Dgus (0x2000 + i * 0x10 + 2፣ ይበላሉFeedList[0][i] / 10% 10);
}
}
ጻፍ_dgus_vp (0x0084፣ መለወጫ ገጽ፣ 2); // የመዝገብ ገጽ አስገባ
}
//አርኢኮርድ ገጽ
ሌላ ከሆነ (Va == 0x0201) // ያለፈውን ገጽ ይቅረጹ
{
ከሆነ(ይመልከቱEatCnt > 0)
{
LookEatCnt --;
ለ(i = 0; i
{
ከሆነ (እኔ == 0)
{
ጻፍ_Dgus(0x2000 + i * 0x10 + 0፣ eatFeedList[lookEatCnt][i]% 10);
ጻፍ_Dgus (0x2000 + i * 0x10 + 2፣ ይበላሉFeedList[lookEatCnt][i] / 10% 10);
ጻፍ_Dgus(0x2000 + i * 0x10 + 4፣ eatFeedList[lookEatCnt][i] / 100% 10);
ጻፍ_Dgus(0x2000 + i * 0x10 + 6፣ eatFeedList[lookEatCnt][i] / 1000 % 10);
}
ሌላ
{
ጻፍ_Dgus(0x2000 + i * 0x10 + 0፣ eatFeedList[lookEatCnt][i]% 10);
ጻፍ_Dgus (0x2000 + i * 0x10 + 2፣ ይበላሉFeedList[lookEatCnt][i] / 10% 10);
}
}
}
}
ሌላ ከሆነ (Va == 0x0202) // የሚቀጥለውን ገጽ ይቅረጹ
{
ከሆነ(ተመልከትEatCnt
{
LookEatCnt++;
ለ(i = 0; i
{
ከሆነ (እኔ == 0)
{
ጻፍ_Dgus(0x2000 + i * 0x10 + 0፣ eatFeedList[lookEatCnt][i]% 10);
ጻፍ_Dgus (0x2000 + i * 0x10 + 2፣ ይበላሉFeedList[lookEatCnt][i] / 10% 10);
ጻፍ_Dgus(0x2000 + i * 0x10 + 4፣ eatFeedList[lookEatCnt][i] / 100% 10);
ጻፍ_Dgus(0x2000 + i * 0x10 + 6፣ eatFeedList[lookEatCnt][i] / 1000 % 10);
}
ሌላ
{
ጻፍ_Dgus(0x2000 + i * 0x10 + 0፣ eatFeedList[lookEatCnt][i]% 10);
ጻፍ_Dgus (0x2000 + i * 0x10 + 2፣ ይበላሉFeedList[lookEatCnt][i] / 10% 10);
}
}
}
}
// የቅንብር ገጽ
ሌላ ከሆነ (Va == 0x0302)
{
ከሆነ (የጊዜ ሞድ == 1)
{
የጊዜ ሞድ = 0;
ጻፍ_Dgus (0x3A12, 139);
}
}
ሌላ ከሆነ (Va == 0x0303)
{
ከሆነ (የጊዜ ሞድ == 0)
{
የጊዜ ሞድ = 1;
ጻፍ_Dgus (0x3A12, 242);
}
}
ሌላ ከሆነ (Va >= 0x0304 && Va
{
u16 መለወጫ ገጽ[2] = {0x5A01, 19};
የኋላ ገጽ = 3;
backNum = እና;
setNum = timrIntervalHour[Va - 0x0304];
ጻፍ_Dgus (0x4000 + 0፣ setNum % 10);
ጻፍ_Dgus (0x4000 + 2፣ setNum / 10% 10);
ጻፍ_Dgus (0x4000 + 4፣ setNum / 100% 10);
ጻፍ_Dgus (0x4000 + 6፣ setNum / 1000% 10);
ጻፍ_dgus_vp (0x0084፣ መለወጫ ገጽ፣ 2);
}
ሌላ ከሆነ (Va>= 0x030A && Va
{
u16 መለወጫ ገጽ[2] = {0x5A01, 19};
የኋላ ገጽ = 3;
backNum = እና;
setNum = currentTime [Va - 0x030A];
ጻፍ_Dgus (0x4000 + 0፣ setNum % 10);
ጻፍ_Dgus (0x4000 + 2፣ setNum / 10% 10);
ጻፍ_Dgus (0x4000 + 4፣ setNum / 100% 10);
ጻፍ_Dgus (0x4000 + 6፣ setNum / 1000% 10);
ጻፍ_dgus_vp (0x0084፣ መለወጫ ገጽ፣ 2);
}
//ሀየውሂብ ገጽን አስተካክል
ሌላ ከሆነ (Va == 0x0400) //አረጋግጥ
{
u16 መለወጫ ገጽ[2] = {0x5A01, 0x0000};
መለወጫ ገጽ [1] = የኋላ ገጽ;
if(የኋላ ገጽ == 1) //ወደ ሁኔታ ገጽ ተመለስ
{
placeGramNum = setNum;
ጻፍ_Dgus(0x1140 + 0፣ placeGramNum % 10);
ጻፍ_Dgus (0x1140 + 2፣ placeGramNum / 10% 10);
}
ካልሆነ (የጀርባ ገጽ == 3)
{
if(backNum >= 0x0304 && backNum
{
u16 ይምረጡ = 0;
ይምረጡ = (backNum - 0x0304) * 0x10;
timrIntervalHour[backNum - 0x0304] = setNum;
ጻፍ_Dgus (0x3010 + ይምረጡ + 0፣ setNum % 10);
ጻፍ_Dgus (0x3010 + ይምረጡ + 2 ፣ setNum / 10% 10);
}
ሌላ ከሆነ(backNum >= 0x030A && backNum
{
u16 ይምረጡ = 0;
ይምረጡ = (backNum - 0x0304) * 0x10;
currentTime[backNum - 0x030A] = setNum;
ከሆነ(backNum == 0x030A)
{
ጻፍ_Dgus (0x3010 + ይምረጡ + 0፣ setNum % 10);
ጻፍ_Dgus (0x3010 + ይምረጡ + 2 ፣ setNum / 10% 10);
ጻፍ_Dgus (0x3010 + ይምረጡ + 4 ፣ setNum / 100% 10);
ጻፍ_Dgus (0x3010 + ይምረጡ + 6 ፣ setNum / 1000% 10);
}
ሌላ
{
ጻፍ_Dgus (0x3010 + ይምረጡ + 0፣ setNum % 10);
ጻፍ_Dgus (0x3010 + ይምረጡ + 2 ፣ setNum / 10% 10);
}
}
}
ጻፍ_dgus_vp (0x0084፣ መለወጫ ገጽ፣ 2);
}
ሌላ ከሆነ (Va == 0x0401) //ተመለስ
{
u16 መለወጫ ገጽ[2] = {0x5A01, 0x0000};
መለወጫ ገጽ [1] = የኋላ ገጽ;
ጻፍ_dgus_vp (0x0084፣ መለወጫ ገጽ፣ 2);
}
ሌላ ከሆነ (Va == 0x0402) // የቁጥር ጭማሪ
{
setNum ++;
ጻፍ_Dgus (0x4000 + 0፣ setNum % 10);
ጻፍ_Dgus (0x4000 + 2፣ setNum / 10% 10);
ጻፍ_Dgus (0x4000 + 4፣ setNum / 100% 10);
ጻፍ_Dgus (0x4000 + 6፣ setNum / 1000% 10);
}
ሌላ ከሆነ (Va == 0x0403) // የቁጥር መቀነስ
{
ከሆነ(setNum > 0)
setNum --;
ጻፍ_Dgus (0x4000 + 0፣ setNum % 10);
ጻፍ_Dgus (0x4000 + 2፣ setNum / 10% 10);
ጻፍ_Dgus (0x4000 + 4፣ setNum / 100% 10);
ጻፍ_Dgus (0x4000 + 6፣ setNum / 1000% 10);
}
ጻፍ_Dgus (0x1000, 0);
}
}
የልጥፍ ጊዜ፡ ሴፕቴምበር-19-2023