ព័ត៌មានអំពីផលិតផល
- វ៉ុលប្រតិបត្តិការtage: 3.3V / 5V (សូមធានាវ៉ុលtagភាពជាប់លាប់សម្រាប់មុខងារត្រឹមត្រូវ)
- ចំណុចប្រទាក់៖ SPI
- ប្រភេទ LCD៖ IPS
- អ្នកបើកបរ៖ ST7789V
- ដំណោះស្រាយ៖ 240 (V) x 320 (H) RGB
- ទំហំបង្ហាញ៖ 30.60H x 40.80V mm
- ទំហំភីកសែល៖ 0.0975H x 0.0975V mm
- វិមាត្រ៖ 58 x 35 ម។
- Q: តើអ្វីជាវេទិកាដែលគាំទ្រសម្រាប់ម៉ូឌុល LCD នេះ?
- A: ម៉ូឌុល LCD នេះផ្តល់នូវឧamples សម្រាប់ Raspberry Pi, STM32 និង Arduino ។
សេចក្តីផ្តើម
ផលិតផលនេះផ្តល់នូវ Raspberry Pi, STM32, Arduino examples
លក្ខណៈ
- ក្នុងនាមជាម៉ូឌុលបង្ហាញ IPS 2 អ៊ីញជាមួយនឹងកម្រិតភាពច្បាស់ 240 * 320 វាប្រើចំណុចប្រទាក់ SPI សម្រាប់ការទំនាក់ទំនង។ LCD មានឧបករណ៍បញ្ជាខាងក្នុងដែលមានមុខងារជាមូលដ្ឋាន ដែលអាចប្រើដើម្បីគូរចំណុច បន្ទាត់ រង្វង់ និងចតុកោណកែង និងបង្ហាញភាសាអង់គ្លេស ចិន ក៏ដូចជារូបភាព។
- យើងផ្តល់ជូននូវការបង្ហាញ Raspberry Pi ពេញលេញ (បណ្ណាល័យ BCM2835 បណ្ណាល័យ WiringPi និងការបង្ហាញ python) ការបង្ហាញ STM32 និងការបង្ហាញ Arduino ។
លក្ខណៈបច្ចេកទេស
- វ៉ុលប្រតិបត្តិការtage: 3.3V/5V (សូមប្រាកដថាការផ្គត់ផ្គង់ថាមពលវ៉ុលtage និង logic voltage គឺស្រប, បើមិនដូច្នេះទេវានឹងមិនដំណើរការត្រឹមត្រូវ)
- ចំណុចប្រទាក់៖ SPI
- ប្រភេទ LCD៖ IPS
- អ្នកបើកបរ៖ ST7789V
- ដំណោះស្រាយ៖ 240 (V) x 320 (H) RGB
- ទំហំបង្ហាញ៖ 30.60 (H) x 40.80 (V) មម
- ទំហំភីកសែល៖ 0.0975 (H) x 0.0975 (V) មម
- វិមាត្រ៖ 58 x 35 (មម)
ការពិពណ៌នាចំណុចប្រទាក់
ការតភ្ជាប់ផ្នែករឹង Raspberry Pi
សូមភ្ជាប់ LCD ទៅនឹង Raspberry Pi របស់អ្នកដោយខ្សែ 8PIN យោងតាមតារាងខាងក្រោម
ប្រើបឋមកថាម្ជុល ឬចំណុចប្រទាក់ PH2.0 8PIN អ្នកត្រូវភ្ជាប់តាមតារាងខាងក្រោម
ភ្ជាប់ទៅ Raspberry Pi
អេក្រង់ 2inch LCD ប្រើ PH2.0 8PIN interface ដែលអាចភ្ជាប់ទៅ Raspberry Pi តាមតារាងខាងលើ៖ (សូមភ្ជាប់តាមតារាងកំណត់ pin។ ពណ៌ខ្សែក្នុងរូបភាពគឺសម្រាប់តែជាឯកសារយោងប៉ុណ្ណោះ ហើយ ពណ៌ពិតប្រាកដនឹងឈ្នះ។ )
ការតភ្ជាប់ផ្នែករឹង STM32
អតីតampដែលយើងផ្តល់ជូនគឺផ្អែកលើ STM32F103RBT6 ហើយវិធីសាស្ត្រតភ្ជាប់ដែលបានផ្តល់ក៏ជាម្ជុលដែលត្រូវគ្នានៃ STM32F103RBT6 ផងដែរ។ ប្រសិនបើអ្នកត្រូវការស្ទូងកម្មវិធីសូមភ្ជាប់តាមម្ជុលពិតប្រាកដ។
ការឆ្លើយឆ្លងម្ជុលភ្ជាប់ STM32F103ZET
យកក្រុមប្រឹក្សាអភិវឌ្ឍន៍ XNUCLEO-F103RB ដែលបង្កើតឡើងដោយក្រុមហ៊ុនរបស់យើងជាអតីតampដូច្នេះ ការតភ្ជាប់មានដូចខាងក្រោម៖
ការតភ្ជាប់ផ្នែករឹង Arduino
Arduino UNO Connection pin ការឆ្លើយឆ្លង
ដ្យាក្រាមតភ្ជាប់មានដូចខាងក្រោម (ចុចដើម្បីពង្រីក)៖
ការពិពណ៌នាផ្នែករឹង
LCD និងឧបករណ៍បញ្ជា
អេក្រង់ LCD គាំទ្រទ្រង់ទ្រាយពណ៌បញ្ចូល 12 ប៊ីត 16 ប៊ីត និង 18 ប៊ីតក្នុងមួយភីកសែល ពោលគឺទម្រង់ពណ៌បី RGB444 RGB565 និង RGB666 ការបង្ហាញនេះប្រើទម្រង់ពណ៌ RGB565 ដែលជាទម្រង់ RGB ដែលប្រើជាទូទៅផងដែរ។
សម្រាប់ឧបករណ៍បញ្ជា LCD ភាគច្រើន របៀបទំនាក់ទំនងរបស់ឧបករណ៍បញ្ជាអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធ ជាធម្មតាមានចំណុចប្រទាក់ប៉ារ៉ាឡែល 8080, SPI បីខ្សែ, SPI បួនខ្សែ និងវិធីទំនាក់ទំនងផ្សេងទៀត។ LCD នេះប្រើចំណុចប្រទាក់ទំនាក់ទំនង SPI បួនខ្សែ ដែលអាចរក្សាទុកច្រក GPIO យ៉ាងខ្លាំង ហើយល្បឿនទំនាក់ទំនងនឹងកាន់តែលឿន។
ពិធីសារទំនាក់ទំនង
ចំណាំ៖ ខុសពីពិធីការ SPI ប្រពៃណី ខ្សែទិន្នន័យពី slave ទៅមេត្រូវបានលាក់ ដោយសារឧបករណ៍មានតម្រូវការបង្ហាញប៉ុណ្ណោះ។
- RESX៖ ម្ជុលកំណត់ឡើងវិញ វាគួរតែទាបនៅពេលផ្តល់ថាមពលដល់ម៉ូឌុល និងខ្ពស់ជាងនៅពេលផ្សេងទៀត;
- CSX៖ ជ្រើសរើសបន្ទះឈីប slave នៅពេល CS ទាប បន្ទះឈីបត្រូវបានបើក។
- D/CX៖ data/command control pin, when DC = 0, write command, when DC = 1, សរសេរទិន្នន័យ
- SDA៖ ម្ជុលទិន្នន័យសម្រាប់បញ្ជូនទិន្នន័យ RGB វាដំណើរការជាម្ជុល MOSI នៃចំណុចប្រទាក់ SPI ។
- SCL ធ្វើការជាម្ជុល SCLK នៃចំណុចប្រទាក់ SPI ។
- ការទំនាក់ទំនង SPI មានពេលវេលាផ្ទេរទិន្នន័យ ដែលត្រូវបានរួមបញ្ចូលគ្នាដោយ CPHA និង CPOL ។
- CPOL កំណត់កម្រិតនៃនាឡិកាធ្វើសមកាលកម្មសៀរៀលនៅស្ថានភាពទំនេរ។ នៅពេល CPOL = 0 កម្រិតគឺទាប។ ទោះជាយ៉ាងណាក៏ដោយ CPOL មានឥទ្ធិពលតិចតួចចំពោះការបញ្ជូន។
- CPHA កំណត់ថាតើទិន្នន័យត្រូវបានប្រមូលនៅគែមនាឡិកាទីមួយ ឬនៅគែមនាឡិកាទីពីរនៃនាឡិកាធ្វើសមកាលកម្មសៀរៀល។ នៅពេល CPHL = 0 ទិន្នន័យត្រូវបានប្រមូលនៅគែមនាឡិកាដំបូង។
- មាន 4 របៀបទំនាក់ទំនង SPI ។ SPI0 ត្រូវបានគេប្រើជាទូទៅដែលក្នុងនោះ CPHL = 0, CPOL = 0 ។
ធ្វើការជាមួយ Raspberry Pi
បើកដំណើរការចំណុចប្រទាក់ SPI
PS: ប្រសិនបើអ្នកកំពុងប្រើប្រព័ន្ធនៃសាខា Bullseye អ្នកត្រូវផ្លាស់ប្តូរ "apt-get" ទៅ "apt" ប្រព័ន្ធនៃសាខា Bullseye គាំទ្រតែ Python3 ប៉ុណ្ណោះ។
- បើកស្ថានីយ ហើយប្រើពាក្យបញ្ជា ដើម្បីចូលទំព័រកំណត់រចនាសម្ព័ន្ធ។
ចាប់ផ្ដើម Raspberry Pi ឡើងវិញ
- sudo ចាប់ផ្ដើមឡើងវិញ
សូមប្រាកដថា SPI មិនត្រូវបានកាន់កាប់ដោយឧបករណ៍ផ្សេងទៀតទេ អ្នកអាចពិនិត្យមើលនៅកណ្តាល/boot/config.txt។
ដំឡើងបណ្ណាល័យ
ដំឡើងបណ្ណាល័យ BCM2835
ដំឡើងបណ្ណាល័យ WiringPi
ដំឡើងបណ្ណាល័យ Python
ទាញយក Examples
បើកស្ថានីយ Raspberry Pi ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម
ដំណើរការកូដសាកល្បង
- សូមចូលទៅកាន់ថត RaspberryPi (កូដសាកល្បង) ជាមុនសិន ហើយដំណើរការពាក្យបញ្ជានៅក្នុងស្ថានីយ
កូដ C
- ចងក្រងលេខកូដសាកល្បងឡើងវិញ
- កម្មវិធីសាកល្បងនៃអេក្រង់ទាំងអស់អាចត្រូវបានហៅដោយផ្ទាល់ដោយបញ្ចូលទំហំដែលត្រូវគ្នា។
- sudo ./ទំហំអេក្រង់មេ
អាស្រ័យលើ LCD ពាក្យបញ្ជាមួយក្នុងចំណោមពាក្យបញ្ជាខាងក្រោមគួរតែត្រូវបានបញ្ចូល៖
ពស់ថ្លាន់
- បញ្ចូលថតកម្មវិធី python ហើយដំណើរការពាក្យបញ្ជា ls -l
កម្មវិធីសាកល្បងសម្រាប់អេក្រង់ទាំងអស់អាចជា viewed, តម្រៀបតាមទំហំ៖
- 0inch96_LCD_test.py៖ កម្មវិធីធ្វើតេស្តអេក្រង់ LCD 0.96 អ៊ីញ
- 1inch14_LCD_test.py៖ កម្មវិធីធ្វើតេស្តអេក្រង់ LCD 1.14 អ៊ីញ
- 1inch28_LCD_test.py៖ កម្មវិធីធ្វើតេស្តអេក្រង់ LCD 1.28 អ៊ីញ
- 1inch3_LCD_test.py៖ កម្មវិធីធ្វើតេស្តអេក្រង់ LCD 1.3 អ៊ីញ
- 1inch47_LCD_test.py៖ កម្មវិធីធ្វើតេស្តអេក្រង់ LCD 1.47 អ៊ីញ
- 1inch54_LCD_test.py: កម្មវិធីសាកល្បង 1.54inchLCD
- 1inch8_LCD_test.py៖ កម្មវិធីធ្វើតេស្តអេក្រង់ LCD 1.8 អ៊ីញ
- 2inch_LCD_test.py៖ កម្មវិធីសាកល្បង LCD 2inch
- 2inch4_LCD_test.py៖ កម្មវិធីសាកល្បង LCD 2inch4
គ្រាន់តែដំណើរការកម្មវិធីដែលត្រូវគ្នានឹងអេក្រង់ កម្មវិធីនេះគាំទ្រ python2/3
ច្រក FBCP
PS: FBCP បច្ចុប្បន្នមិនឆបគ្នាជាមួយប្រព័ន្ធ Raspberry Pi 64 ប៊ីតទេ វាត្រូវបានណែនាំឱ្យប្រើប្រព័ន្ធ 32 ប៊ីត។
- Framebuffer ប្រើឧបករណ៍បញ្ចេញវីដេអូ ដើម្បីជំរុញឧបករណ៍បង្ហាញវីដេអូពីអង្គចងចាំបណ្តោះអាសន្នដែលមានទិន្នន័យស៊ុមពេញលេញ។ និយាយឱ្យសាមញ្ញ តំបន់អង្គចងចាំត្រូវបានប្រើដើម្បីរក្សាទុកមាតិកាបង្ហាញ ហើយមាតិកាបង្ហាញអាចត្រូវបានផ្លាស់ប្តូរដោយការផ្លាស់ប្តូរទិន្នន័យនៅក្នុងអង្គចងចាំ។
- មានគម្រោងប្រភពបើកចំហនៅលើ github: fbcp-ili9341 ។ បើប្រៀបធៀបជាមួយគម្រោង fbcp ផ្សេងទៀត គម្រោងនេះប្រើការធ្វើឱ្យស្រស់ជាផ្នែក និង DMA ដើម្បីសម្រេចបាននូវល្បឿនរហូតដល់ 60fps
ទាញយក Drivers
វិធីសាស្រ្ត 1: ប្រើស្គ្រីប (បានណែនាំ)
- នៅទីនេះយើងបានសរសេរស្គ្រីបជាច្រើនដែលអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ប្រើ fbcp យ៉ាងឆាប់រហ័ស និងដំណើរការពាក្យបញ្ជាដែលត្រូវគ្នាយោងទៅតាមអេក្រង់របស់ពួកគេផ្ទាល់។
- ប្រសិនបើអ្នកប្រើស្គ្រីប ហើយមិនចាំបាច់កែប្រែវា អ្នកអាចមិនអើពើនឹងវិធីសាស្ត្រទីពីរខាងក្រោម។
ចំណាំ៖ ស្គ្រីបនឹងជំនួស /boot/config.txt និង /etc/rc.local ដែលត្រូវគ្នា ហើយចាប់ផ្តើមឡើងវិញ ប្រសិនបើអ្នកប្រើត្រូវការ សូមបម្រុងទុកដែលពាក់ព័ន្ធ files ជាមុន។
វិធីសាស្រ្ត 2: ការកំណត់រចនាសម្ព័ន្ធដោយដៃ
ការកំណត់រចនាសម្ព័ន្ធបរិស្ថាន
vc4-kms-v3d របស់ Raspberry Pi នឹងធ្វើឱ្យ fbcp បរាជ័យ ដូច្នេះយើងត្រូវបិទ vc4-kms-v3d មុនពេលដំឡើងវានៅក្នុង fbcp។
- sudo nano /boot/config.txt
គ្រាន់តែរារាំងសេចក្តីថ្លែងការណ៍ដែលត្រូវគ្នានឹងរូបភាពខាងក្រោម។
បន្ទាប់មកការចាប់ផ្ដើមឡើងវិញគឺត្រូវបានទាមទារ។
- sudo ចាប់ផ្ដើមឡើងវិញ
ចងក្រងនិងដំណើរការ
ជំនួសវាដោយខ្លួនអ្នកយោងទៅតាមម៉ូឌុល LCD ដែលអ្នកប្រើខាងលើ cmake [ជម្រើស] ..
រៀបចំដើម្បីចាប់ផ្តើមដោយស្វ័យប្រវត្តិ
- sudo cp ~/Waveshare_fbcp/buil
- d/fbcp /usr/local/bin/fbcp
- sudo nano /etc/rc.local
- បន្ថែម fbcp& មុនពេលចេញលេខ 0។ ចំណាំថាអ្នកត្រូវតែបន្ថែម “&” ដើម្បីដំណើរការក្នុងផ្ទៃខាងក្រោយ បើមិនដូច្នេះទេប្រព័ន្ធប្រហែលជាមិនអាចចាប់ផ្តើមបានទេ។
កំណត់គុណភាពបង្ហាញ
កំណត់ទំហំបង្ហាញចំណុចប្រទាក់អ្នកប្រើនៅក្នុង /boot/config.txt file.
- sudo nano /boot/config.txt
បន្ទាប់មកបន្ថែមបន្ទាត់ខាងក្រោមនៅចុងបញ្ចប់នៃ config.txt ។
ជំនួស hdmi_cvt=[options] ខាងលើដោយយោងតាម LCD Module ដែលអ្នកកំពុងប្រើ
ហើយបន្ទាប់មកចាប់ផ្ដើមប្រព័ន្ធឡើងវិញ
- sudo ចាប់ផ្ដើមឡើងវិញ
បន្ទាប់ពីចាប់ផ្តើមប្រព័ន្ធឡើងវិញ ចំណុចប្រទាក់អ្នកប្រើ Raspberry Pi OS នឹងត្រូវបានបង្ហាញ
ការពិពណ៌នា API
- ស៊េរី RaspberryPi អាចចែករំលែកកម្មវិធីមួយឈុត ព្រោះវាសុទ្ធតែជាប្រព័ន្ធបង្កប់ ហើយភាពឆបគ្នាគឺខ្លាំង។
- កម្មវិធីនេះត្រូវបានបែងចែកទៅជាចំណុចប្រទាក់ផ្នែករឹងស្រទាប់ខាងក្រោម កម្មវិធីបញ្ជាអេក្រង់ LCD ស្រទាប់កណ្តាល និងកម្មវិធីស្រទាប់ខាងលើ។
ចំណុចប្រទាក់ផ្នែករឹង
- យើងបានអនុវត្តការបំប្លែងកម្រិតទាប ប្រសិនបើអ្នកត្រូវការដឹងពីការអនុវត្តផ្ទៃក្នុងអាចចូលទៅកាន់ថតដែលត្រូវគ្នាដើម្បីពិនិត្យមើល ដោយហេតុផលដែលវេទិកាផ្នែករឹង និងការអនុវត្តផ្ទៃក្នុងខុសគ្នា។
- អ្នកអាចបើក DEV_Config.c.h) ដើម្បីមើលនិយមន័យ ដែលនៅក្នុងថត RaspberryPi\c\lib\Config ។
ប្រភេទទិន្នន័យ៖
ការចាប់ផ្តើមម៉ូឌុល និងដំណើរការចេញ
GPIO អាននិងសរសេរ៖
- ទុកជាមោឃៈ DEV_Digital_Write(UWORD Pin, UBYTE តម្លៃ);
- UBYTE DEV_Digital_Read(UWORD Pin);
SPI សរសេរទិន្នន័យ៖
- ទុកជាមោឃៈ DEV_SPI_WriteByte (តម្លៃ UBYTE);
កម្មវិធីខាងលើ
ប្រសិនបើអ្នកត្រូវការគូររូបភាព ឬបង្ហាញអក្សរចិន និងអង់គ្លេស យើងផ្តល់មុខងារជាមូលដ្ឋានមួយចំនួននៅទីនេះអំពីដំណើរការក្រាហ្វិកមួយចំនួននៅក្នុងថត RaspberryPi\c\lib\GUI\GUI_Paint.c.h)។
ពុម្ពអក្សរអាចរកបាននៅក្នុងថត RaspberryPi\c\lib\Fonts
- លក្ខណៈសម្បត្តិរូបភាពថ្មី៖ បង្កើតសតិបណ្ដោះអាសន្នរូបភាពថ្មី លក្ខណសម្បត្តិនេះរួមបញ្ចូលឈ្មោះបណ្ដោះអាសន្នរូបភាព ទទឹង កម្ពស់ មុំត្រឡប់ និងពណ៌។
- ជ្រើសរើសបណ្តុំរូបភាព៖ គោលបំណងនៃការជ្រើសរើសគឺអ្នកអាចបង្កើតគុណលក្ខណៈរូបភាពច្រើន អាចមានសតិបណ្ដោះអាសន្នរូបភាពច្រើន អ្នកអាចជ្រើសរើសរូបភាពនីមួយៗដែលអ្នកបង្កើត។
- ការបង្វិលរូបភាព៖ កំណត់មុំបង្វិលនៃរូបភាពដែលបានជ្រើសរើស និយមបន្ទាប់ពី Paint_SelectImage() អ្នកអាចជ្រើសរើសបង្វិល 0, 90, 180, 270។
- កញ្ចក់ឆ្លុះរូបភាព៖ កំណត់ការត្រឡប់កញ្ចក់នៃរូបភាពដែលបានជ្រើសរើស។ អ្នកអាចជ្រើសរើសគ្មានកញ្ចក់ កញ្ចក់ផ្តេក កញ្ចក់បញ្ឈរ ឬកញ្ចក់កណ្តាលរូបភាព។
- កំណត់ចំណុចនៃទីតាំងបង្ហាញ និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន៖ នេះគឺជាមុខងារ GUI ស្នូល ចំណុចដំណើរការបង្ហាញទីតាំង និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន។
- ពណ៌បំពេញសតិបណ្ដោះអាសន្នរូបភាព៖ បំពេញសតិបណ្ដោះអាសន្នរូបភាពដោយពណ៌ ដែលជាធម្មតាប្រើដើម្បីបញ្ចេញអេក្រង់ឱ្យទទេ។
- ពណ៌បំពេញនៃបង្អួចជាក់លាក់មួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព៖ ផ្នែកសតិបណ្ដោះអាសន្នរូបភាពនៃបង្អួចដែលពោរពេញដោយពណ៌ជាក់លាក់មួយ ជាធម្មតាត្រូវបានប្រើដើម្បីធ្វើឱ្យអេក្រង់ស្រស់បំព្រងទៅជាទទេ ជាញឹកញាប់ត្រូវបានប្រើសម្រាប់ការបង្ហាញពេលវេលា ធ្វើឱ្យស្រស់នៅវិនាទីចុងក្រោយនៃអេក្រង់។
- គូរចំណុច៖ នៅក្នុងបណ្តុំរូបភាព សូមគូសចំណុចនៅលើ (Xpoint, Ypoint) អ្នកអាចជ្រើសរើសពណ៌ ទំហំចំណុច រចនាប័ទ្មនៃចំណុច។
- គូរបន្ទាត់៖ នៅក្នុងបណ្តុំរូបភាព គូរបន្ទាត់ពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹង និងរចនាប័ទ្មនៃបន្ទាត់។
- គូរចតុកោណកែង៖ នៅក្នុងរូបភាព buffer គូរចតុកោណកែងពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ។
- គូររង្វង់៖ នៅក្នុងបណ្តុំរូបភាព សូមគូសរង្វង់កាំដោយ (X_Center Y_Center) ជាកណ្តាល។ អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ និងថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃរង្វង់។
- សរសេរតួអក្សរ Ascii៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាកំពូលខាងឆ្វេង សរសេរតួអក្សរ Ascii អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- សរសេរអក្សរអង់គ្លេស៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរអង់គ្លេសមួយជួរ អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- សរសេរអក្សរចិន៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរចិនមួយខ្សែ អ្នកអាចជ្រើសរើសតួអក្សរ ពុម្ពអក្សរ ពណ៌ផ្ទៃខាងមុខ និងពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរនៃការអ៊ិនកូដ GB2312 ។
- សរសេរលេខ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរលេខលេខ អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- ពេលវេលាបង្ហាញ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង ពេលវេលាបង្ហាញ អ្នកអាចជ្រើសរើសពុម្ពអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- អានរូបភាព bmp មូលដ្ឋាន ហើយសរសេរវាទៅឃ្លាំងសម្ងាត់។
សម្រាប់ប្រព័ន្ធប្រតិបត្តិការ Linux ដូចជា Raspberry Pi អ្នកអាចអាន និងសរសេររូបភាពបាន។ សម្រាប់ Raspberry Pi នៅក្នុងថត៖ RaspberryPi\c\lib\GUI\GUI_BMPfile.c.h).
កូដសាកល្បងសម្រាប់អ្នកប្រើប្រាស់
សម្រាប់ Raspberry Pi នៅក្នុងថត៖ RaspberryPi\c\examples, សម្រាប់លេខកូដសាកល្បងទាំងអស់;
ប្រសិនបើអ្នកត្រូវការដំណើរការកម្មវិធីតេស្ត LCD ទំហំ 0.96 អ៊ីញ អ្នកត្រូវបន្ថែម 0.96 ជាប៉ារ៉ាម៉ែត្រនៅពេលដំណើរការការបង្ហាញមេ។
ប្រតិបត្តិឡើងវិញក្នុងរបៀបបញ្ជាលីនុចដូចខាងក្រោម៖
- ធ្វើឱ្យស្អាត
- ធ្វើ
- sudo ./main 0.96
Python (សម្រាប់ Raspberry Pi)
- ធ្វើការជាមួយ python និង python3.
- សម្រាប់ python ការហៅរបស់គាត់មិនស្មុគស្មាញដូច C.
- Raspberry Pi៖ RaspberryPi\python\lib\
lcdconfig.py
- ការចាប់ផ្តើមម៉ូឌុល និងដំណើរការចេញ
GPIO អាននិងសរសេរ៖
- def digital_write(pin, value)
- def digital_read(pin)
SPI សរសេរទិន្នន័យ។
- def spi_writebyte (ទិន្នន័យ)
xxx_LCD_test.py (xxx បង្ហាញពីទំហំ ប្រសិនបើវាជា LCD ទំហំ 0.96 អ៊ីញ វាគឺ 0inch96_LCD_test.py ហើយដូច្នេះនៅលើ)
python មាននៅក្នុងថតខាងក្រោម៖
Raspberry Pi៖ RaspberryPi\python\examples\
ប្រសិនបើកំណែ python របស់អ្នកគឺ python2 ហើយអ្នកត្រូវដំណើរការកម្មវិធីសាកល្បង LCD ទំហំ 0.96inch សូមប្រតិបត្តិវាឡើងវិញដូចខាងក្រោមក្នុងរបៀបបញ្ជា linux៖
- sudo python 0inch96_LCD_test.py
ប្រសិនបើកំណែ python របស់អ្នកគឺ python3 ហើយអ្នកត្រូវដំណើរការកម្មវិធីតេស្ត LCD ទំហំ 0.96inch សូមប្រតិបត្តិឡើងវិញដូចខាងក្រោមក្នុងរបៀបបញ្ជា linux៖
- sudo python3 0inch96_LCD_test.py
អំពីការកំណត់ការបង្វិល
ប្រសិនបើអ្នកត្រូវកំណត់ការបង្វិលអេក្រង់ក្នុងកម្មវិធី python អ្នកអាចកំណត់វាដោយ statement im_r=image1.rotate(270)។
- im_r=image1.rotate(270)
ឥទ្ធិពលបង្វិល យក 1.54 ជាអតីតample, លំដាប់គឺ 0°, 90°, 180°, 270°
មុខងារ GUI
Python មានបណ្ណាល័យរូបភាព PIL តំណភ្ជាប់បណ្ណាល័យផ្លូវការ វាមិនចាំបាច់សរសេរកូដពីស្រទាប់ឡូជីខលដូច C ហើយអាចហៅដោយផ្ទាល់ទៅបណ្ណាល័យរូបភាពសម្រាប់ដំណើរការរូបភាព។ ខាងក្រោមនេះនឹងយក LCD ទំហំ 1.54 អ៊ីញ ជាអតីតampដូច្នេះ យើងផ្តល់ការពិពណ៌នាសង្ខេបអំពីការបង្ហាញ។
វាត្រូវការប្រើបណ្ណាល័យរូបភាព និងដំឡើងបណ្ណាល័យ
- sudo apt-get ដំឡើង python3-pil
ហើយបន្ទាប់មកនាំចូលបណ្ណាល័យ
- ពី PIL នាំចូលរូបភាព រូបភាព រូបភាព រូបភាព ពុម្ពអក្សរ។
ក្នុងចំណោមនោះ រូបភាពជាបណ្ណាល័យមូលដ្ឋាន ImageDraw ជាមុខងារគូរ ហើយ ImageFont ជាមុខងារអត្ថបទ។
កំណត់ឃ្លាំងសម្ងាត់រូបភាព ដើម្បីសម្រួលដល់ការគូរ ការសរសេរ និងមុខងារផ្សេងទៀតនៅលើរូបភាព
- image1 = Image.new(“RGB”, (disp.width, disp.height), “WHITE”)
ប៉ារ៉ាម៉ែត្រទីមួយកំណត់ជម្រៅពណ៌នៃរូបភាព ដែលត្រូវបានកំណត់ជា “1” ដើម្បីបង្ហាញផែនទីនៃជម្រៅមួយប៊ីត។ ប៉ារ៉ាម៉ែត្រទីពីរគឺជា tuple ដែលកំណត់ទទឹង និងកម្ពស់នៃរូបភាព។ ប៉ារ៉ាម៉ែត្រទីបីកំណត់ពណ៌លំនាំដើមនៃសតិបណ្ដោះអាសន្ន ដែលត្រូវបានកំណត់ថាជា "ស" ។
បង្កើតវត្ថុគំនូរដោយផ្អែកលើរូបភាពទី 1 ដែលប្រតិបត្តិការគំនូរទាំងអស់នឹងត្រូវបានអនុវត្តនៅទីនេះ។
- គូរ = ImageDraw.Draw(រូបភាព១)
គូរបន្ទាត់។
- draw.line([(20, 10),(70, 60)], បំពេញ = “ក្រហម”, ទទឹង = 1)
ប៉ារ៉ាម៉ែត្រទីមួយគឺ tuple ធាតុបួនដែលចាប់ផ្តើមនៅ (0, 0) និងបញ្ចប់នៅ (127,0) ។ គូរបន្ទាត់។ បំពេញ =”0″ មានន័យថាពណ៌នៃបន្ទាត់គឺពណ៌ស។
គូរចតុកោណ
- draw.rectangle([(20,10),(70,60)],fill = “WHITE”, outline=”BLACK”)
អាគុយម៉ង់ទីមួយគឺ tuple នៃធាតុបួន។ (20,10) គឺជាតម្លៃកូអរដោណេនៅជ្រុងខាងឆ្វេងខាងលើនៃចតុកោណកែង ហើយ (70,60) គឺជាតម្លៃកូអរដោណេនៅជ្រុងខាងក្រោមខាងស្តាំនៃចតុកោណ។ Fill = "WHITE" មានន័យថា ខ្មៅនៅខាងក្នុង ហើយគ្រោង = "BLACK" មានន័យថាពណ៌នៃគ្រោងគឺខ្មៅ។
គូររង្វង់មួយ។
- draw.arc((150,15,190,55),0, 360, បំពេញ =(0,255,0)
គូររង្វង់ដែលមានចារឹកក្នុងការ៉េ ប៉ារ៉ាម៉ែត្រទីមួយគឺជាដុំនៃធាតុចំនួន 4 ដែលមាន (150, 15) ជាកំពូលជ្រុងខាងឆ្វេងខាងលើនៃការ៉េ (190, 55) ជាចំនុចកំពូលជ្រុងខាងស្តាំនៃការ៉េ ដោយបញ្ជាក់ កម្រិតបន្ទាត់មធ្យមនៃស៊ុមចតុកោណកែងគឺមុំ 0 ដឺក្រេ ប៉ារ៉ាម៉ែត្រទីពីរបង្ហាញពីមុំចាប់ផ្តើម ប៉ារ៉ាម៉ែត្រទីបីបង្ហាញពីមុំបញ្ចប់ ហើយការបំពេញ = 0 បង្ហាញថាពណ៌នៃបន្ទាត់គឺពណ៌ស។ ប្រសិនបើតួលេខមិនមានរាងការ៉េតាមការសំរបសំរួលនោះអ្នកនឹងទទួលបានរាងពងក្រពើ។ ក្រៅពីមុខងារធ្នូ អ្នកក៏អាចប្រើមុខងារអង្កត់ធ្នូសម្រាប់គូររង្វង់រឹងផងដែរ។
- draw.ellipse((150,65,190,105), បំពេញ = 0)
ប៉ារ៉ាម៉ែត្រទីមួយគឺការសម្របសម្រួលនៃចតុកោណកែង។ ប៉ារ៉ាម៉ែត្រទីពីរនិងទីបីគឺជាដឺក្រេចាប់ផ្តើមនិងចុងបញ្ចប់នៃរង្វង់។ ប៉ារ៉ាម៉ែត្រទីបួនគឺជាពណ៌បំពេញនៃរង្វង់។
តួអក្សរ។
ម៉ូឌុល ImageFont ចាំបាច់ត្រូវនាំចូល និងធ្វើភ្លាមៗ៖
- Font1 = ImageFont.truetype(“../Font/Font01.ttf”, 25)
- Font2 = ImageFont.truetype(“../Font/Font01.ttf”, 35)
- Font3 = ImageFont.truetype(“../Font/Font02.ttf”, 32)
អ្នកអាចប្រើពុម្ពអក្សររបស់ Windows ឬពុម្ពអក្សរផ្សេងទៀតដែលមានទម្រង់ ttc..
ចំណាំ៖ បណ្ណាល័យតួអក្សរនីមួយៗមានតួអក្សរផ្សេងៗគ្នា។ ប្រសិនបើតួអក្សរមួយចំនួនមិនអាចបង្ហាញបានទេ វាត្រូវបានណែនាំថាអ្នកអាចយោងទៅសំណុំការអ៊ិនកូដ ro ដែលបានប្រើ។ ដើម្បីគូរអក្សរអង់គ្លេស អ្នកអាចប្រើពុម្ពអក្សរដោយផ្ទាល់។ សម្រាប់អក្សរចិន អ្នកត្រូវបន្ថែមនិមិត្តសញ្ញា u៖
- draw.text((40, 50), 'WaveShare', បំពេញ = (128,255,128), font=Font2)
- text=u”微雪电子”
- draw.text((74, 150), អត្ថបទ, បំពេញ = “WHITE”, font=Font3)
ប៉ារ៉ាម៉ែត្រទីមួយគឺជាដុំនៃធាតុ 2 ដែលមាន (40, 50) ជាចំនុចកំពូលខាងឆ្វេង ពុម្ពអក្សរគឺ Font2 ហើយការបំពេញគឺជាពណ៌ពុម្ពអក្សរ។ អ្នកអាចធ្វើការបំពេញ = "WHITE" ដោយផ្ទាល់ ពីព្រោះតម្លៃពណ៌ធម្មតាត្រូវបានកំណត់រួចហើយ ជាការប្រសើរណាស់ អ្នកក៏អាចប្រើការបំពេញ = (128,255,128) វង់ក្រចកត្រូវគ្នាទៅនឹងតម្លៃនៃពណ៌ RGB ទាំងបី ដូច្នេះអ្នកអាចគ្រប់គ្រងបានយ៉ាងជាក់លាក់។ ពណ៌ដែលអ្នកចង់បាន។ ប្រយោគទីពីរបង្ហាញពី Micro Snow Electronics ដោយប្រើ Font3 ពណ៌ពុម្ពអក្សរគឺពណ៌ស។
អានរូបភាពក្នុងស្រុក
- រូបភាព = Image.open('../pic/LCD_1inch28.jpg')
ប៉ារ៉ាម៉ែត្រគឺជាផ្លូវរូបភាព។
មុខងារផ្សេងទៀត។
- សម្រាប់ព័ត៌មានបន្ថែម អ្នកអាចយោងទៅ http://effbot.org/imagingbook ដុំ
ប្រើជាមួយ STM32
ការពិពណ៌នាកម្មវិធី
- ការបង្ហាញនេះត្រូវបានបង្កើតឡើងដោយផ្អែកលើបណ្ណាល័យ HAL ។ ទាញយកការបង្ហាញ ស្វែងរកកម្មវិធី STM32 file ថត ហើយបើក LCD_demo.uvprojx ក្នុងថត STM32\STM32F103RBT6\MDK-ARM ដើម្បីពិនិត្យមើលកម្មវិធី។
- បើក main.c អ្នកអាចមើលឃើញកម្មវិធីសាកល្បងទាំងអស់ ដកមតិយោបល់នៅពីមុខកម្មវិធីសាកល្បងនៅលើអេក្រង់ដែលត្រូវគ្នា ហើយចងក្រង និងទាញយកឡើងវិញ។
- កម្មវិធីតេស្ត LCD_0in96_test() 0.96inch LCD
- កម្មវិធីតេស្ត LCD_1in14_test() 1.14inch LCD
- កម្មវិធីតេស្ត LCD_1in28_test() 1.28inch LCD
- LCD_1in3_test() កម្មវិធីធ្វើតេស្ត LCD 1.3 អ៊ីង
- កម្មវិធីតេស្ត LCD_1in54_test() 1.54inch LCD
- កម្មវិធីតេស្ត LCD_1in8_test() 1.8inch LCD
- កម្មវិធីតេស្ត LCD_2in_test() 2 អ៊ីញ LCD
ការពិពណ៌នាកម្មវិធី
ចំណុចប្រទាក់ផ្នែករឹងមូលដ្ឋាន
ប្រភេទទិន្នន័យ
- #define / UBYTE / uint8_t
- #define / UWORD / uint16_t
- #define / UDOUBLE / uint32_t
ការចាប់ផ្តើមម៉ូឌុល និងដំណើរការចេញ
សរសេរនិងអាន GPIO
- ចាត់ទុកជាមោឃៈ / DEV_Digital_Write(UWORD Pin, UBYTE តម្លៃ);
- UBYTE / DEV_Digital_Read(UWORD Pin);
SPI សរសេរទិន្នន័យ
- UBYTE / SPI4W_Write_Byte (តម្លៃ uint8_t);
កម្មវិធីខាងលើ
សម្រាប់អេក្រង់ ប្រសិនបើអ្នកត្រូវការគូររូបភាព បង្ហាញអក្សរចិន និងអង់គ្លេស បង្ហាញរូបភាពជាដើម អ្នកអាចប្រើកម្មវិធីខាងលើដើម្បីធ្វើ ហើយយើងផ្តល់មុខងារជាមូលដ្ឋានមួយចំនួននៅទីនេះអំពីដំណើរការក្រាហ្វិកមួយចំនួននៅក្នុងថត STM32\STM32F103RB\ អ្នកប្រើប្រាស់\GUI_DEV\GUI_Paint.c.h)
ចំណាំ៖ ដោយសារតែទំហំនៃ RAM ខាងក្នុងរបស់ STM32 និង arduino GUI ត្រូវបានសរសេរដោយផ្ទាល់ទៅ RAM របស់ LCD ។
ពុម្ពអក្សរតួអក្សរដែល GUI អាស្រ័យគឺនៅក្នុងថត STM32\STM32F103RB\User\Fonts
- លក្ខណៈសម្បត្តិរូបភាពថ្មី៖ បង្កើតលក្ខណសម្បត្តិរូបភាពថ្មី លក្ខណសម្បត្តិនេះរួមបញ្ចូលឈ្មោះបណ្ដោះអាសន្នរូបភាព ទទឹង កម្ពស់ ត្រឡប់មុំ ពណ៌។
កំណត់មុខងារអេក្រង់ច្បាស់ ជាធម្មតាហៅមុខងារច្បាស់របស់ LCD ដោយផ្ទាល់
កំណត់មុខងារភីកសែលគំនូរ
ជ្រើសរើសបណ្តុំរូបភាព៖ គោលបំណងនៃការជ្រើសរើសគឺអ្នកអាចបង្កើតគុណលក្ខណៈរូបភាពច្រើន សតិបណ្ដោះអាសន្នរូបភាពអាចមានច្រើន អ្នកអាចជ្រើសរើសរូបភាពនីមួយៗដែលអ្នកបង្កើត
ការបង្វិលរូបភាព៖ កំណត់មុំបង្វិលរូបភាពដែលបានជ្រើសរើស និយមបន្ទាប់ពី Paint_SelectImage() អ្នកអាចជ្រើសរើសបង្វិល 0, 90, 180, 270។
កញ្ចក់ឆ្លុះរូបភាព៖ កំណត់ការត្រឡប់កញ្ចក់នៃរូបភាពដែលបានជ្រើសរើស។ អ្នកអាចជ្រើសរើសគ្មានកញ្ចក់ កញ្ចក់ផ្តេក កញ្ចក់បញ្ឈរ ឬកញ្ចក់កណ្តាលរូបភាព។
កំណត់ចំណុចនៃទីតាំងបង្ហាញ និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន៖ នេះគឺជាមុខងារ GUI ស្នូល ចំណុចដំណើរការបង្ហាញទីតាំង និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន។
ពណ៌បំពេញសតិបណ្ដោះអាសន្នរូបភាព៖ បំពេញសតិបណ្ដោះអាសន្នរូបភាពដោយពណ៌ ដែលជាធម្មតាប្រើដើម្បីបញ្ចេញអេក្រង់ឱ្យទទេ។
ផ្នែកសតិបណ្ដោះអាសន្នរូបភាពនៃពណ៌បំពេញបង្អួច៖ ផ្នែកសតិបណ្ដោះអាសន្នរូបភាពនៃបង្អួចដែលពោរពេញទៅដោយពណ៌ជាក់លាក់មួយ ជាទូទៅជាមុខងារលាងសរបស់បង្អួច ដែលជារឿយៗត្រូវបានប្រើសម្រាប់ការបង្ហាញពេលវេលា ការលាងជម្រះពណ៌សនៅលើវិនាទី។
គូរពិន្ទុ៖ នៅក្នុងបណ្តុំរូបភាព សូមគូសចំណុចនៅលើ (Xpoint, Ypoint) អ្នកអាចជ្រើសរើសពណ៌ ទំហំចំណុច រចនាប័ទ្មនៃចំណុច។
គំនូរបន្ទាត់៖ នៅក្នុងបណ្តុំរូបភាព បន្ទាត់ពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងបន្ទាត់ រចនាប័ទ្មបន្ទាត់។
គូរចតុកោណកែង៖ នៅក្នុងរូបភាព buffer គូរចតុកោណកែងពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ។
គូររង្វង់៖ នៅក្នុងបណ្តុំរូបភាព សូមគូសរង្វង់កាំដោយ (X_Center Y_Center) ជាកណ្តាល។ អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ និងថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃរង្វង់។
សរសេរតួអក្សរ Ascii៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព នៅ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរតួអក្សរ Ascii អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
សរសេរអក្សរអង់គ្លេស៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរអង់គ្លេសមួយខ្សែ អាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
សរសេរអក្សរចិន៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរចិនមួយជួរ អ្នកអាចជ្រើសរើសពុម្ពអក្សរតួអក្សរបំប្លែង GB2312 ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
សរសេរលេខ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរលេខលេខ អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
ពេលវេលាបង្ហាញ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង ពេលវេលាបង្ហាញ អ្នកអាចជ្រើសរើសពុម្ពអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
ការពិពណ៌នាកម្មវិធី Arduino
ចំណាំ៖ ការបង្ហាញទាំងអស់ត្រូវបានសាកល្បងនៅលើ Arduino uno ។ ប្រសិនបើអ្នកត្រូវការប្រភេទ Arduino ផ្សេងទៀត អ្នកត្រូវកំណត់ថាតើម្ជុលដែលបានតភ្ជាប់ត្រឹមត្រូវឬអត់។
ជំហានដំឡើង Arduino IDE
ដំណើរការកម្មវិធី
នៅក្នុងចំណុចប្រទាក់សព្វវចនាធិប្បាយផលិតផល ទាញយកកម្មវិធី ហើយបន្ទាប់មកពន្លាវា។ កម្មវិធី Arduino មានទីតាំងនៅ ~/Arduino/…
សូមជ្រើសរើសកម្មវិធីដែលត្រូវគ្នាដោយយោងតាមគំរូអេក្រង់ LCD ដើម្បីបើក
អ្នកអាចធ្វើបាន view កម្មវិធីសាកល្បងសម្រាប់ទំហំអេក្រង់ទាំងអស់ តម្រៀបតាមទំហំ៖
- សម្រាប់អតីតample, ម៉ូឌុល LCD 1.54 អ៊ីញ។ បើកថត LCD_1inch54 ហើយដំណើរការ LCD_1inch54.ino file.
- បើកកម្មវិធី ជ្រើសរើសគំរូក្រុមប្រឹក្សាអភិវឌ្ឍន៍ Arduino UNO
ជ្រើសរើសច្រក COM ដែលត្រូវគ្នា។
បន្ទាប់មកចុចដើម្បីចងក្រង និងទាញយក
ការពិពណ៌នាកម្មវិធី
សេចក្តីផ្តើមឯកសារ
យក Arduino UNO គ្រប់គ្រងអេក្រង់ LCD 1.54 អ៊ីញជាអតីតampបើកថត Arduino\LCD_1inch54៖
ក្នុងនោះ៖
- LCD_1inch54.ino៖ បើកជាមួយ Arduino IDE;
- LCD_Driver.cpp.h): គឺជាអ្នកបើកបរនៃអេក្រង់ LCD;
- DEV_Config.cpp.h)៖ វាគឺជានិយមន័យនៃចំណុចប្រទាក់ផ្នែករឹង ដែលបង្កប់នូវកម្រិតនៃការអាន និងសរសេរកូដ PIN ទិន្នន័យបញ្ជូន SPI និងការចាប់ផ្តើមម្ជុល។
- font8.cpp, font12.cpp, font16.cpp, font20.cpp, font24.cpp, font24CN.cpp, fonts.h: ពុម្ពអក្សរសម្រាប់តួអក្សរដែលមានទំហំខុសៗគ្នា;
- image.cpp.h): គឺជាទិន្នន័យរូបភាព ដែលអាចបំប្លែងរូបភាព BMP ណាមួយទៅជាអារេរូបភាពពណ៌ពិត 16 ប៊ីត តាមរយៈ Img2Lcd (អាចទាញយកបានក្នុងទិន្នន័យអភិវឌ្ឍន៍)។
- កម្មវិធីនេះត្រូវបានបែងចែកទៅជាចំណុចប្រទាក់ផ្នែករឹងស្រទាប់ខាងក្រោម កម្មវិធីបញ្ជាអេក្រង់ LCD ស្រទាប់កណ្តាល និងកម្មវិធីស្រទាប់ខាងលើ។
ចំណុចប្រទាក់ផ្នែករឹងមូលដ្ឋាន
ចំណុចប្រទាក់ផ្នែករឹងត្រូវបានកំណត់ក្នុងពីរ files DEV_Config.cpp.h) និងមុខងារដូចជាអាន និងសរសេរកម្រិតម្ជុល ការពន្យាពេល និងការបញ្ជូន SPI ត្រូវបានរុំព័ទ្ធ។
សរសេរកម្រិតម្ជុល
- ទុកជាមោឃៈ DEV_Digital_Write(int pin តម្លៃ int)
ប៉ារ៉ាម៉ែត្រទីមួយគឺម្ជុលហើយទីពីរគឺកម្រិតខ្ពស់និងទាប។
អានកម្រិតម្ជុល
- int DEV_Digital_Read(int pin)
ប៉ារ៉ាម៉ែត្រគឺម្ជុល ហើយតម្លៃត្រឡប់គឺជាកម្រិតនៃម្ជុលអាន។
ពន្យារពេល
DEV_Delay_ms(ពេលវេលាពន្យាពេល int មិនបានចុះហត្ថលេខា)
- ការពន្យាពេលកម្រិតមីលីវិនាទី។
ទិន្នន័យលទ្ធផល SPI
- DEV_SPI_WRITE (ទិន្នន័យតួអក្សរដែលមិនបានចុះហត្ថលេខា)
ប៉ារ៉ាម៉ែត្រគឺប្រភេទ char កាន់កាប់ 8 ប៊ីត។
កម្មវិធីខាងលើ
សម្រាប់អេក្រង់ ប្រសិនបើអ្នកត្រូវការគូររូបភាព បង្ហាញអក្សរចិន និងអង់គ្លេស បង្ហាញរូបភាពជាដើម អ្នកអាចប្រើកម្មវិធីខាងលើដើម្បីធ្វើ ហើយយើងផ្តល់មុខងារជាមូលដ្ឋានមួយចំនួននៅទីនេះអំពីដំណើរការក្រាហ្វិកមួយចំនួននៅក្នុងថត GUI_Paint.c( .h)
ចំណាំ៖ ដោយសារតែទំហំនៃ RAM ខាងក្នុងរបស់ STM32 និង Arduino GUI ត្រូវបានសរសេរដោយផ្ទាល់ទៅ RAM របស់ LCD ។
ពុម្ពអក្សរដែលប្រើដោយ GUI ទាំងអស់គឺអាស្រ័យលើពុម្ពអក្សរ*.cpp(h) files នៅក្រោមដូចគ្នា។ file
- លក្ខណៈសម្បត្តិរូបភាពថ្មី៖ បង្កើតលក្ខណៈសម្បត្តិរូបភាពថ្មី លក្ខណសម្បត្តិនេះរួមបញ្ចូលឈ្មោះបណ្ដោះអាសន្នរូបភាព ទទឹង កម្ពស់ មុំត្រឡប់ និងពណ៌។
- កំណត់មុខងារអេក្រង់ច្បាស់ ជាធម្មតាហៅមុខងារច្បាស់របស់ LCD ដោយផ្ទាល់។
- កំណត់មុខងារភីកសែលគំនូរ។
- ជ្រើសរើសបណ្តុំរូបភាព៖ គោលបំណងនៃការជ្រើសរើសគឺថាអ្នកអាចបង្កើតគុណលក្ខណៈរូបភាពច្រើន បណ្តុំរូបភាពអាចមានច្រើន ហើយអ្នកអាចជ្រើសរើសរូបភាពនីមួយៗដែលអ្នកបង្កើត។
- ការបង្វិលរូបភាព៖ កំណត់មុំបង្វិលរូបភាពដែលបានជ្រើសរើស និយមបន្ទាប់ពី Paint_SelectImage() អ្នកអាចជ្រើសរើសបង្វិល 0, 90, 180, 270។
- កញ្ចក់ឆ្លុះរូបភាព៖ កំណត់ការត្រឡប់កញ្ចក់នៃរូបភាពដែលបានជ្រើសរើស។ អ្នកអាចជ្រើសរើសគ្មានកញ្ចក់ កញ្ចក់ផ្តេក កញ្ចក់បញ្ឈរ ឬកញ្ចក់កណ្តាលរូបភាព។
- កំណត់ចំណុចនៃទីតាំងបង្ហាញ និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន៖ នេះគឺជាមុខងារ GUI ស្នូល ចំណុចដំណើរការបង្ហាញទីតាំង និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន។
- ពណ៌បំពេញសតិបណ្ដោះអាសន្នរូបភាព៖ បំពេញសតិបណ្ដោះអាសន្នរូបភាពដោយពណ៌ ដែលជាធម្មតាប្រើដើម្បីបញ្ចេញអេក្រង់ឱ្យទទេ។
- គូរពិន្ទុ៖ នៅក្នុងបណ្តុំរូបភាព សូមគូសចំណុចនៅលើ (Xpoint, Ypoint) អ្នកអាចជ្រើសរើសពណ៌ ទំហំចំណុច រចនាប័ទ្មនៃចំណុច។
- គំនូរបន្ទាត់៖ នៅក្នុងបណ្តុំរូបភាព បន្ទាត់ពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងបន្ទាត់ រចនាប័ទ្មបន្ទាត់។
- គូរចតុកោណកែង៖ នៅក្នុងរូបភាព buffer គូរចតុកោណកែងពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ។
- គូររង្វង់៖ នៅក្នុងបណ្តុំរូបភាព សូមគូសរង្វង់កាំដោយ (X_Center Y_Center) ជាកណ្តាល។ អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ និងថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃរង្វង់។
- សរសេរតួអក្សរ Ascii៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព នៅ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរតួអក្សរ Ascii អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- សរសេរអក្សរអង់គ្លេស៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរអង់គ្លេសមួយខ្សែ អាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- សរសេរអក្សរចិន៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរចិនមួយជួរ អ្នកអាចជ្រើសរើសពុម្ពអក្សរតួអក្សរបំប្លែង GB2312 ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- សរសេរលេខ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរលេខលេខ អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- សរសេរលេខដោយទសភាគ៖ នៅ (Xstart Ystart) ជាចំណុចកំពូលខាងឆ្វេង សរសេរជួរលេខដោយលេខទសភាគ អ្នកអាចជ្រើសរើសកូដ Ascii ពុម្ពអក្សរដែលមើលឃើញ ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ
- ពេលវេលាបង្ហាញ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង ពេលវេលាបង្ហាញ អ្នកអាចជ្រើសរើសពុម្ពអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
- បង្ហាញរូបភាព៖ នៅ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង បង្ហាញរូបភាពដែលមានទទឹង W_Image និងកម្ពស់គឺ H_Image;
VisionFive ២
គំរូអាដាប់ធ័រ
- ម៉ូឌុល LCD 0.96 អ៊ីញ
- ម៉ូឌុល LCD 1.14 អ៊ីញ
- ម៉ូឌុល LCD 1.28 អ៊ីញ
- ម៉ូឌុល LCD 1.3 អ៊ីញ
- ម៉ូឌុល LCD 1.54 អ៊ីញ
- ម៉ូឌុល LCD 1.8 អ៊ីញ
- ម៉ូឌុល LCD 2 អ៊ីញ
- ម៉ូឌុល LCD 2.4 អ៊ីញ
ការតភ្ជាប់ផ្នែករឹង
ការតភ្ជាប់ VisionFive2 Pin
ដំឡើងបណ្ណាល័យដែលត្រូវគ្នា។
ទាញយកសាកល្បង
ដំណើរការការបង្ហាញដែលត្រូវគ្នាយោងទៅតាមអេក្រង់ដែលអ្នកបានទិញ
ធនធាន
ឯកសារ
កម្មវិធី
កូដសាកល្បង
គំនូរ 3D
សំណួរគេសួរញឹកញាប់
'សំណួរ៖' 1. LCD រក្សាពណ៌ខ្មៅនៅពេលប្រើជាមួយ Raspberry Pi?
ចម្លើយ៖
- សូមពិនិត្យមើលថាប្រសិនបើអ្នកបានបើកចំណុចប្រទាក់ SPI
- ពិនិត្យម្ជុល BL ប្រសិនបើម្ជុល BL មិនមានតម្លៃលទ្ធផល អ្នកអាចព្យាយាមផ្ដាច់ BL pin ហើយសាកល្បងវាម្តងទៀត។
'សំណួរ៖' 2. លេខកូដ python មានកំហុស? ចម្លើយ៖
- សូមដំឡើងបណ្ណាល័យរូបភាព ហើយសាកល្បងវាម្តងទៀត។ រត់ពាក្យបញ្ជា៖ sudo apt-get install pythonimaging ដើម្បីដំឡើងវា ហើយសាកល្បងម្តងទៀត។
'សំណួរ៖' 3. ហេតុអ្វីបានជាអេក្រង់មិនបង្ហាញត្រឹមត្រូវនៅពេលភ្ជាប់ទៅ Arduino?
ចម្លើយ៖
- នៅពេលប្រើ Arduino សូមប្រាកដថាវាត្រូវបានដោតចូលទៅក្នុងការផ្គត់ផ្គង់ថាមពល 5v ។
'សំណួរ៖'4.ការប្រើប្រាស់មិនត្រឹមត្រូវនៃការគ្រប់គ្រង Raspberry Pi អាចបណ្តាលឱ្យ?
ចម្លើយ៖
ប្រសិនបើការដំណើរការ wiringPi demo គឺធម្មតា នោះការដំណើរការ python ឬ BCM2835 អាចធ្វើឱ្យអេក្រង់មិនដំណើរការឡើងវិញជាធម្មតាទេ ព្រោះបណ្ណាល័យ bcm2835 គឺជាមុខងារបណ្ណាល័យនៃបន្ទះឈីប Raspberry Pi cpu ហើយស្រទាប់ខាងក្រោមគឺដើម្បីដំណើរការការចុះឈ្មោះដោយផ្ទាល់ ខណៈពេលដែល ស្រទាប់ខាងក្រោមនៃបណ្ណាល័យ wiringPi និង python ត្រូវបានអាន និងសរសេរដោយការអាន និងការសរសេរ។ ឧបករណ៍ file នៃប្រព័ន្ធលីនុចដំណើរការឧបករណ៍ ដែលអាចបណ្តាលឱ្យច្រក GPIO ដំណើរការខុសប្រក្រតី។ ការចាប់ផ្តើម Raspberry Pi ឡើងវិញអាចដោះស្រាយវាបានយ៉ាងល្អឥតខ្ចោះ។
'សំណួរ៖'5. តើធ្វើដូចម្តេចដើម្បីត្រឡប់រូបភាព?
ចម្លើយ៖
- ការគ្រប់គ្រងភាសា C អាចប្រើមុខងារ Paint_SetRotate(Rotate); ប៉ុន្តែមុំត្រឡប់ជាភាសា C អាចត្រឹមតែ 0, 90, 180, 270 ដឺក្រេ; Python អាចហៅ rotate (បង្វិល) ដើម្បីត្រឡប់មុំណាមួយ។
'សំណួរ៖'6. តើការប្រើប្រាស់ថាមពលអតិបរមានៃម៉ូឌុល LCD 2 អ៊ីញគឺជាអ្វី?
ចម្លើយ៖
- 3.3V 46mA
គាំទ្រ
- ប្រសិនបើអ្នកត្រូវការជំនួយផ្នែកបច្ចេកទេស សូមចូលទៅកាន់ទំព័រ ហើយបើកសំបុត្រ។
ឯកសារ/ធនធាន
![]() |
ម៉ូឌុលអេក្រង់ LCD 2 អ៊ីញទូទៅរបស់ Waveshare [pdf] សៀវភៅណែនាំ ម៉ូឌុលអេក្រង់ LCD 2 អ៊ីញទូទៅ, ទូទៅ, ម៉ូឌុលអេក្រង់ LCD 2 អ៊ីញ, ម៉ូឌុលបង្ហាញ LCD, ម៉ូឌុលបង្ហាញ, ម៉ូឌុល |