{"id":2437,"date":"2023-09-14T09:54:15","date_gmt":"2023-09-14T02:54:15","guid":{"rendered":"https:\/\/dw.rmutsv.ac.th\/dprofile\/?p=2437"},"modified":"2023-11-12T20:31:31","modified_gmt":"2023-11-12T13:31:31","slug":"ai-virtual-mouse","status":"publish","type":"post","link":"https:\/\/dp.rmutsv.ac.th\/?p=2437","title":{"rendered":"\u0e23\u0e30\u0e1a\u0e1a\u0e42\u0e15\u0e49\u0e15\u0e2d\u0e1a\u0e41\u0e25\u0e30\u0e2a\u0e31\u0e48\u0e07\u0e01\u0e32\u0e23\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e1c\u0e25\u0e20\u0e32\u0e1e"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21:\u0e19\u0e32\u0e22\u0e0a\u0e22\u0e18\u0e23 \u0e40\u0e23\u0e37\u0e2d\u0e07\u0e13\u0e23\u0e07\u0e04\u0e4c COE#008<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e04\u0e13\u0e30\u0e27\u0e34\u0e28\u0e27\u0e01\u0e23\u0e23\u0e21\u0e28\u0e32\u0e2a\u0e15\u0e23\u0e4c:\u0e2a\u0e32\u0e02\u0e32\u0e27\u0e34\u0e28\u0e27\u0e01\u0e23\u0e23\u0e21\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e27\u0e34\u0e0a\u0e32:04-513-201 \u0e01\u0e32\u0e23\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07 1\/2566<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e04\u0e27\u0e32\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e21\u0e32<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u0e08\u0e31\u0e14\u0e17\u0e33\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e14\u0e49\u0e27\u0e22\u0e21\u0e37\u0e2d\u0e1c\u0e48\u0e32\u0e19\u0e23\u0e30\u0e1a\u0e1a&nbsp;AI Virtual Mouse \u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e41\u0e15\u0e48\u0e08\u0e30\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e1c\u0e48\u0e32\u0e19\u0e01\u0e32\u0e23\u0e02\u0e22\u0e31\u0e1a\u0e21\u0e37\u0e2d\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 \u0e41\u0e25\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e17\u0e33\u0e02\u0e2d\u0e07\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e2d\u0e37\u0e48\u0e19 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;AI Virtual Mouse \u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e25\u0e32\u0e01\u0e2b\u0e25\u0e32\u0e22 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e44\u0e14\u0e49 \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e43\u0e19\u0e41\u0e27\u0e14\u0e27\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e21\u0e31\u0e25\u0e15\u0e34\u0e21\u0e35\u0e40\u0e14\u0e35\u0e22, \u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e14\u0e49\u0e27\u0e22\u0e17\u0e48\u0e32\u0e17\u0e32\u0e07\u0e43\u0e19\u0e07\u0e32\u0e19\u0e2d\u0e38\u0e15\u0e2a\u0e32\u0e2b\u0e01\u0e23\u0e23\u0e21, \u0e41\u0e25\u0e30\u0e43\u0e19\u0e41\u0e2d\u0e1e\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19 VR (Virtual Reality) \u0e17\u0e35\u0e48\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2a\u0e34\u0e48\u0e07\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e43\u0e19\u0e42\u0e25\u0e01\u0e40\u0e2a\u0e21\u0e37\u0e2d\u0e19\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e35\u0e22\u0e4c\u0e1a\u0e2d\u0e23\u0e4c\u0e14\u0e40\u0e14\u0e34\u0e21 \u0e42\u0e14\u0e22\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e41\u0e25\u0e30\u0e2a\u0e21\u0e08\u0e23\u0e34\u0e07\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1.\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e2a\u0e1a\u0e32\u0e22<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e28\u0e36\u0e01\u0e20\u0e32\u0e29\u0e32 python<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3.\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e34\u0e21\u0e04\u0e27\u0e32\u0e21\u0e17\u0e31\u0e19\u0e2a\u0e21\u0e31\u0e22<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4.\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5.\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22\u0e21\u0e37\u0e2d\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e40\u0e21\u0e32\u0e2a\u0e4c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1.\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e02\u0e2d\u0e07\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e04\u0e25\u0e34\u0e01\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e48\u0e32\u0e17\u0e32\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e02\u0e2d\u0e07\u0e21\u0e37\u0e2d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e41\u0e17\u0e19\u0e40\u0e21\u0e32\u0e44\u0e14\u0e49<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e27\u0e48\u0e32\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1.\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e2a\u0e1a\u0e32\u0e22\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e35\u0e22\u0e4c\u0e1a\u0e2d\u0e23\u0e4c\u0e14\u0e44\u0e14\u0e49: \u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07 \u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49 AI Virtual Mouse \u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e43\u0e19\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e27\u0e07\u0e01\u0e32\u0e23: \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e2b\u0e49\u0e04\u0e27\u0e32\u0e21\u0e22\u0e37\u0e14\u0e2b\u0e22\u0e38\u0e48\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e43\u0e19\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e27\u0e07\u0e01\u0e32\u0e23\u0e2b\u0e23\u0e37\u0e2d\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e27\u0e07\u0e2d\u0e37\u0e48\u0e19\u0e46 \u0e17\u0e35\u0e48\u0e04\u0e27\u0e32\u0e21\u0e22\u0e37\u0e14\u0e2b\u0e22\u0e38\u0e48\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e19\u0e49\u0e2d\u0e22<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3.\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19: \u0e19\u0e31\u0e01\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33 AI Virtual Mouse \u0e44\u0e1b\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e17\u0e48\u0e32\u0e17\u0e32\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e02\u0e2d\u0e07\u0e21\u0e37\u0e2d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4.\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19: \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e41\u0e25\u0e30\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e21\u0e35\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e44\u0e14\u0e49\u0e15\u0e32\u0e21\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e04\u0e25\u0e32\u0e2a <code><strong>VirtualMouse<\/strong><\/code> \u0e0b\u0e36\u0e48\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e35\u0e48\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48\u0e08\u0e30\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c\u0e40\u0e2a\u0e21\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e21\u0e37\u0e2d\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21 (webcam). \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49\u0e22\u0e31\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e40\u0e0a\u0e35\u0e48\u0e22\u0e27\u0e0a\u0e32\u0e0d\u0e43\u0e19\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e42\u0e04\u0e49\u0e14\u0e19\u0e35\u0e49\u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1.PyCharm<\/strong> \u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e25\u0e49\u0e2d\u0e21\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e41\u0e1a\u0e1a\u0e1a\u0e39\u0e23\u0e13\u0e32\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e43\u0e19 Python \u0e21\u0e35\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e42\u0e04\u0e49\u0e14 \u0e14\u0e35\u0e1a\u0e31\u0e01\u0e40\u0e01\u0e2d\u0e23\u0e4c\u0e41\u0e1a\u0e1a\u0e01\u0e23\u0e32\u0e1f\u0e34\u0e01 \u0e15\u0e31\u0e27\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e41\u0e1a\u0e1a\u0e23\u0e27\u0e21 \u0e01\u0e32\u0e23\u0e23\u0e27\u0e21\u0e01\u0e31\u0e1a\u0e23\u0e30\u0e1a\u0e1a\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e19 \u0e41\u0e25\u0e30\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e14\u0e49\u0e27\u0e22 Django PyCharm&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-1024x1024.png\" alt=\"\" class=\"wp-image-7057\" style=\"width:298px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-1024x1024.png 1024w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-300x300.png 300w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-150x150.png 150w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-768x768.png 768w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-1536x1536.png 1536w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-200x200.png 200w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151-320x320.png 320w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-151.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">2.<strong>OpenCV (cv2):<\/strong> \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d. \u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21, \u0e41\u0e1b\u0e25\u0e07\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e, \u0e41\u0e25\u0e30\u0e27\u0e32\u0e14\u0e2a\u0e32\u0e22\u0e25\u0e2d\u0e22\u0e1a\u0e19\u0e21\u0e37\u0e2d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"986\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-491.png\" alt=\"\" class=\"wp-image-13255\" style=\"width:194px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-491.png 800w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-491-243x300.png 243w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-491-768x947.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">3.<strong>MediaPipe:<\/strong> \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e17\u0e35\u0e48\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e42\u0e14\u0e22 Google \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e41\u0e25\u0e30\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d\u0e41\u0e25\u0e30\u0e20\u0e32\u0e1e 2D \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e42\u0e21\u0e40\u0e14\u0e25 Machine Learning \u0e40\u0e0a\u0e34\u0e07\u0e25\u0e36\u0e01. \u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e21\u0e37\u0e2d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"278\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-492-1024x278.png\" alt=\"\" class=\"wp-image-13258\" style=\"width:413px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-492-1024x278.png 1024w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-492-300x81.png 300w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-492-768x208.png 768w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-492.png 1120w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"355\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-493.png\" alt=\"\" class=\"wp-image-13264\" style=\"width:834px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-493.png 1024w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-493-300x104.png 300w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-493-768x266.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4.<strong>PyAutoGUI:<\/strong> \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c\u0e41\u0e25\u0e30\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e1c\u0e48\u0e32\u0e19 GUI \u0e02\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"452\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-494.png\" alt=\"\" class=\"wp-image-13270\" style=\"width:383px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-494.png 825w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-494-300x164.png 300w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-494-768x421.png 768w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">5.<strong>Class <code>VirtualMouse<\/code>:<\/strong> \u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e42\u0e04\u0e49\u0e14\u0e21\u0e35\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22\u0e41\u0e25\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e0b\u0e49\u0e33\u0e44\u0e14\u0e49. \u0e43\u0e19\u0e19\u0e35\u0e49\u0e21\u0e35\u0e40\u0e21\u0e17\u0e2d\u0e14 <code>__init__<\/code>, <code>process_frame<\/code>, <code>run<\/code>, \u0e41\u0e25\u0e30 <code>__del__<\/code> \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19, \u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e40\u0e1f\u0e23\u0e21, \u0e23\u0e31\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21, \u0e41\u0e25\u0e30\u0e17\u0e33\u0e25\u0e32\u0e22\u0e2d\u0e47\u0e2d\u0e1a\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e15\u0e2d\u0e19\u0e17\u0e49\u0e32\u0e22, \u0e15\u0e32\u0e21\u0e25\u0e33\u0e14\u0e31\u0e1a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">6.<strong>\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 <code>cv2.circle<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e14\u0e27\u0e07\u0e01\u0e25\u0e21 (circle) \u0e25\u0e07\u0e1a\u0e19\u0e20\u0e32\u0e1e\u0e17\u0e35\u0e48\u0e41\u0e2a\u0e14\u0e07.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e43\u0e0a\u0e49 <code>pyautogui.moveTo<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e22\u0e49\u0e32\u0e22\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e25\u0e34\u0e01\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c (\u0e16\u0e49\u0e32\u0e21\u0e35) \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 <code>pyautogui.click<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7.<strong>Looping (<code>while True<\/code>):<\/strong> \u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e25\u0e39\u0e1b <code>while True<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e33\u0e07\u0e32\u0e19\u0e15\u0e25\u0e2d\u0e14\u0e40\u0e27\u0e25\u0e32.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">8.<strong>\u0e01\u0e32\u0e23\u0e17\u0e33\u0e04\u0e27\u0e32\u0e21\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e01\u0e31\u0e1a\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e31\u0e21\u0e1c\u0e31\u0e2a (Conditional Statements):<\/strong> \u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 <code>if<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e41\u0e25\u0e30\u0e17\u0e33\u0e07\u0e32\u0e19\u0e15\u0e32\u0e21.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">9.<strong>\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e41\u0e25\u0e30\u0e15\u0e31\u0e27\u0e41\u0e1b\u0e23\u0e17\u0e32\u0e07\u0e04\u0e25\u0e32\u0e2a (Class Methods and Variables):<\/strong> \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 <code>self<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e16\u0e36\u0e07\u0e15\u0e31\u0e27\u0e41\u0e1b\u0e23\u0e41\u0e25\u0e30\u0e40\u0e21\u0e17\u0e2d\u0e14\u0e17\u0e32\u0e07\u0e04\u0e25\u0e32\u0e2a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">10.<strong>\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e43\u0e19 GUI (<code>cv2.imshow<\/code>):<\/strong> \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 OpenCV \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e2a\u0e14\u0e07\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 <code>cv2.waitKey<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e23\u0e2d\u0e01\u0e32\u0e23\u0e1b\u0e49\u0e2d\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e14\u0e32\u0e27\u0e42\u0e2b\u0e25\u0e14<br>1.opencv-python<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.mediapipe<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3.pyautogui<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e16\u0e49\u0e32\u0e40\u0e27\u0e2d\u0e0a\u0e31\u0e19 python \u0e44\u0e21\u0e48\u0e15\u0e23\u0e07<br>protobuf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e42\u0e04\u0e47\u0e14<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>import cv2<br>import mediapipe as mp<br>import pyautogui<br>class VirtualMouse:<br>def <strong>init<\/strong>(self):<br>self.cap = cv2.VideoCapture(1)<br>self.hand_detector = mp.solutions.hands.Hands()<br>self.drawing_utils = mp.solutions.drawing_utils<br>self.screen_width, self.screen_height = pyautogui.size()<br>self.index_y = 0<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>def process_frame(self, frame):\n    frame_height, frame_width, _ = frame.shape\n    rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n    output = self.hand_detector.process(rgb_frame)\n    hands = output.multi_hand_landmarks\n\n    if hands:\n        for hand in hands:\n            self.drawing_utils.draw_landmarks(frame, hand)\n            landmarks = hand.landmark\n\n            for id, landmark in enumerate(landmarks):\n                x = int(landmark.x * frame_width)\n                y = int(landmark.y * frame_height)\n\n                if id == 8:\n                    cv2.circle(img=frame, center=(x, y), radius=10, color=(0, 255, 255))\n                    index_x = self.screen_width \/ frame_width * x\n                    self.index_y = self.screen_height \/ frame_height * y\n                    pyautogui.moveTo(index_x, self.index_y)\n\n                if id == 4:\n                    cv2.circle(img=frame, center=(x, y), radius=10, color=(0, 255, 255))\n                    thumb_x = self.screen_width \/ frame_width * x\n                    thumb_y = self.screen_height \/ frame_height * y\n\n                    if abs(self.index_y - thumb_y) &lt; 20:\n                        pyautogui.click()\n                        pyautogui.sleep(1)\n\n    cv2.imshow('Virtual mouse', frame)\n    cv2.waitKey(1)\n\ndef run(self):\n    while True:\n        _, frame = self.cap.read()\n        frame = cv2.flip(frame, 1)\n        self.process_frame(frame)\n\ndef __del__(self):\n    self.cap.release()\n    cv2.destroyAllWindows()<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>if <strong>name<\/strong> == \"<strong>main<\/strong>\":<br>mouse_controller = VirtualMouse()<br>mouse_controller.run()<\/code><\/pre>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e1c\u0e25\u0e14\u0e33\u0e40\u0e19\u0e34\u0e14\u0e01\u0e32\u0e23<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"491\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-263.png\" alt=\"\" class=\"wp-image-7957\" style=\"width:344px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-263.png 640w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-263-300x230.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>__init__<\/code> Method:<\/strong> \u0e17\u0e33\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e25\u0e32\u0e2a\u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19:\n<ul class=\"wp-block-list\">\n<li>\u0e40\u0e1b\u0e34\u0e14\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21 (<code>self.cap = cv2.VideoCapture(1)<\/code>).<\/li>\n\n\n\n<li>\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e15\u0e31\u0e27\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e21\u0e37\u0e2d\u0e08\u0e32\u0e01 MediaPipe (<code>self.hand_detector = mp.solutions.hands.Hands()<\/code>).<\/li>\n\n\n\n<li>\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e39\u0e07\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e01\u0e27\u0e49\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d (<code>self.screen_width, self.screen_height = pyautogui.size()<\/code>).<\/li>\n\n\n\n<li>\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e39\u0e07\u0e02\u0e2d\u0e07\u0e1b\u0e25\u0e32\u0e22\u0e19\u0e34\u0e49\u0e27\u0e0a\u0e35\u0e49 (<code>self.index_y = 0<\/code>).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>process_frame<\/code> Method:<\/strong> \u0e17\u0e33\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e17\u0e38\u0e01\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07:\n<ul class=\"wp-block-list\">\n<li>\u0e41\u0e1b\u0e25\u0e07\u0e2a\u0e35\u0e02\u0e2d\u0e07\u0e20\u0e32\u0e1e\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a RGB.<\/li>\n\n\n\n<li>\u0e43\u0e2b\u0e49\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e21\u0e37\u0e2d\u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e21\u0e37\u0e2d\u0e02\u0e2d\u0e07 MediaPipe.<\/li>\n\n\n\n<li>\u0e2b\u0e32\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e1a\u0e19\u0e21\u0e37\u0e2d\u0e41\u0e25\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e1a\u0e19\u0e20\u0e32\u0e1e.<\/li>\n\n\n\n<li>\u0e19\u0e33\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e1a\u0e19\u0e21\u0e37\u0e2d\u0e21\u0e32\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e1a\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d\u0e41\u0e25\u0e30\u0e22\u0e49\u0e32\u0e22\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>run<\/code> Method:<\/strong> \u0e17\u0e33\u0e43\u0e2b\u0e49\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e33\u0e07\u0e32\u0e19\u0e15\u0e25\u0e2d\u0e14\u0e40\u0e27\u0e25\u0e32 \u0e42\u0e14\u0e22\u0e2d\u0e48\u0e32\u0e19\u0e20\u0e32\u0e1e\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e41\u0e25\u0e30\u0e2a\u0e48\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07 <code>process_frame<\/code>.<\/li>\n\n\n\n<li><strong><code>__del__<\/code> Method:<\/strong> \u0e17\u0e33\u0e25\u0e32\u0e22\u0e2d\u0e47\u0e2d\u0e1a\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e41\u0e25\u0e30\u0e1b\u0e34\u0e14\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e16\u0e39\u0e01\u0e1b\u0e34\u0e14.<\/li>\n\n\n\n<li><strong><code>__main__<\/code> Block:<\/strong> \u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2d\u0e47\u0e2d\u0e1a\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e02\u0e2d\u0e07 <code>VirtualMouse<\/code> \u0e41\u0e25\u0e30\u0e40\u0e23\u0e35\u0e22\u0e01\u0e43\u0e0a\u0e49\u0e40\u0e21\u0e17\u0e2d\u0e14 <code>run<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e42\u0e04\u0e49\u0e14\u0e19\u0e35\u0e49\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21\u0e17\u0e33\u0e07\u0e32\u0e19\u0e41\u0e25\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e20\u0e32\u0e1e\u0e1a\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d. \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e21\u0e37\u0e2d\u0e16\u0e39\u0e01\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a, \u0e21\u0e32\u0e23\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e1a\u0e19\u0e21\u0e37\u0e2d\u0e08\u0e30\u0e16\u0e39\u0e01\u0e27\u0e32\u0e14\u0e1a\u0e19\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c\u0e40\u0e2a\u0e21\u0e37\u0e2d\u0e19\u0e08\u0e30\u0e16\u0e39\u0e01\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e37\u0e2d\u0e2d\u0e22\u0e39\u0e48. \u0e2b\u0e32\u0e01\u0e21\u0e37\u0e2d\u0e17\u0e33\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e27\u0e48\u0e32\u0e21\u0e35\u0e01\u0e32\u0e23\u0e04\u0e25\u0e34\u0e01 (\u0e22\u0e01\u0e19\u0e34\u0e49\u0e27\u0e0a\u0e35\u0e49\u0e41\u0e25\u0e30\u0e19\u0e34\u0e49\u0e27\u0e2b\u0e31\u0e27\u0e41\u0e21\u0e48\u0e21\u0e37\u0e2d), \u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e08\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e04\u0e25\u0e34\u0e01\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c\u0e41\u0e15\u0e48\u0e22\u0e31\u0e07\u0e21\u0e32\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e0a\u0e49\u0e32\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e49\u0e32\u0e07.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e2a\u0e23\u0e38\u0e1b\u0e1c\u0e25<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e21\u0e37\u0e2d:<\/strong> \u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e43\u0e0a\u0e49\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 MediaPipe \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e41\u0e25\u0e30\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e21\u0e37\u0e2d\u0e43\u0e19\u0e20\u0e32\u0e1e\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21.<\/li>\n\n\n\n<li><strong>\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c:<\/strong> \u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c\u0e40\u0e2a\u0e21\u0e37\u0e2d\u0e19\u0e16\u0e39\u0e01\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e15\u0e32\u0e21\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e1a\u0e19\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a.<\/li>\n\n\n\n<li><strong>\u0e01\u0e32\u0e23\u0e04\u0e25\u0e34\u0e01\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c:<\/strong> \u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e08\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e04\u0e25\u0e34\u0e01\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e21\u0e35\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e27\u0e48\u0e32\u0e21\u0e35\u0e01\u0e32\u0e23\u0e04\u0e25\u0e34\u0e01 (\u0e22\u0e01\u0e19\u0e34\u0e49\u0e27\u0e0a\u0e35\u0e49\u0e41\u0e25\u0e30\u0e19\u0e34\u0e49\u0e27\u0e2b\u0e31\u0e27\u0e41\u0e21\u0e48\u0e21\u0e37\u0e2d).<\/li>\n\n\n\n<li><strong>\u0e01\u0e32\u0e23\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35:<\/strong> \u0e42\u0e04\u0e49\u0e14\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e40\u0e0a\u0e48\u0e19 OpenCV, MediaPipe, \u0e41\u0e25\u0e30 PyAutoGUI \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23.<\/li>\n\n\n\n<li><strong>\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Object-Oriented Programming (OOP):<\/strong> \u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e43\u0e0a\u0e49\u0e04\u0e25\u0e32\u0e2a <code>VirtualMouse<\/code> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e42\u0e04\u0e49\u0e14\u0e41\u0e25\u0e30\u0e40\u0e21\u0e17\u0e2d\u0e14\u0e15\u0e48\u0e32\u0e07 \u0e46.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e2b\u0e27\u0e31\u0e07\u0e04\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e40\u0e2a\u0e21\u0e37\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e44\u0e14\u0e49\u0e14\u0e49\u0e27\u0e22\u0e21\u0e37\u0e2d\u0e1c\u0e48\u0e32\u0e19\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21. \u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e40\u0e21\u0e49\u0e32\u0e2a\u0e4c, \u0e04\u0e25\u0e34\u0e01, \u0e41\u0e25\u0e30\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e21\u0e37\u0e2d\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\"><strong>\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0e42\u0e04\u0e47\u0e14<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/ProgrammingHero1\/virtual_mouse\">https:\/\/github.com\/ProgrammingHero1\/virtual_mouse<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.jetbrains.com\/pycharm\/download\/?section=windows\">https:\/\/www.jetbrains.com\/pycharm\/download\/?section=windows<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Python<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/aws.amazon.com\/th\/what-is\/python\/\">https:\/\/aws.amazon.com\/th\/what-is\/python\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:25px\">\u0e27\u0e35\u0e14\u0e35\u0e42\u0e2d<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"\u0e23\u0e30\u0e1a\u0e1a\u0e42\u0e15\u0e15\u0e2d\u0e1a\u0e41\u0e25\u0e30\u0e2a\u0e31\u0e48\u0e07\u0e01\u0e32\u0e23\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e1c\u0e25\u0e20\u0e32\u0e1e\" width=\"620\" height=\"349\" src=\"https:\/\/www.youtube.com\/embed\/daMUB_6m9b4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21:\u0e19\u0e32\u0e22\u0e0a\u0e22\u0e18\u0e23 \u0e40\u0e23\u0e37&#46;&#46;&#46;<\/p>\n","protected":false},"author":91,"featured_media":13381,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2437","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-1"],"_links":{"self":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/2437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/users\/91"}],"replies":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2437"}],"version-history":[{"count":26,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/2437\/revisions"}],"predecessor-version":[{"id":13297,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/2437\/revisions\/13297"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/media\/13381"}],"wp:attachment":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}