Агуулгын хүснэгт:

Ухаалаг гэртэй ЧУЛУУ LCD: 5 алхам
Ухаалаг гэртэй ЧУЛУУ LCD: 5 алхам

Видео: Ухаалаг гэртэй ЧУЛУУ LCD: 5 алхам

Видео: Ухаалаг гэртэй ЧУЛУУ LCD: 5 алхам
Видео: БУЛ КРИЗИС 1 2024, Арваннэгдүгээр
Anonim
Ухаалаг гэртэй STONE LCD
Ухаалаг гэртэй STONE LCD

Өнөөдөр би MCU -ийн цуваа портоор харилцах боломжтой STONE -ийн цуваа порт хөтчийн дэлгэцтэй болсон бөгөөд энэ дэлгэцийн UI логик загварыг STONE -ийн албан ёсны вэбсайт дээр байрлуулсан VGUS програм хангамжийг ашиглан шууд зохион бүтээх боломжтой бөгөөд энэ нь бидэнд маш тохиромжтой юм. Тиймээс би үүнийг ашиглан янз бүрийн гэрлийн (зочны өрөө, гал тогоо, хүүхдийн өрөө, угаалгын өрөө) хяналтыг багтаасан энгийн төхөөрөмж хянагч хийхээр төлөвлөж байна. Үүний зэрэгцээ дотор болон гадна температур, чийгшил, агаарын чанарыг цуглуулах боломжтой. Энэ бол зүгээр л энгийн демо бөгөөд та миний өгсөн кодоор дамжуулан хоёрдогч хөгжүүлэлт хийх боломжтой. STONE дэлгэцийн талаархи үндсэн хичээлийг вэбсайт руу орж болно:

Вэбсайт нь загвар, хэрэглэгч, дизайны баримт бичгийн талаархи олон төрлийн мэдээлэл, видео хичээлүүдтэй. Би энд нэг их дэлгэрэнгүй ярихгүй.

Алхам 1: UI интерфэйсийн дизайн

UI интерфэйсийн дизайн
UI интерфэйсийн дизайн
UI интерфэйсийн дизайн
UI интерфэйсийн дизайн
UI интерфэйсийн дизайн
UI интерфэйсийн дизайн
UI интерфэйсийн дизайн
UI интерфэйсийн дизайн

Photoshop

Би дараах хоёр UI хуудсыг photoshop ашиглан бүтээсэн.

Энэ төсөл нь дээр дурдсан хоёр хуудастай. Баруун дээд буланд байгаа "Гэрэл" ба "Мэдрэгч" нь эдгээр хоёр хуудасны шилжих товчлуурууд юм.

"Гэрэл" хуудсан дээр та гэрийнхээ бүх төрлийн гэрлийг хянах боломжтой. "Мэдрэгч" хуудсан дээр та янз бүрийн мэдрэгчээр илрүүлсэн утгыг шалгаж болно.

Дээрх хоёр хуудсыг хийсний дараа бид STONE -ийн албан ёсны вэбсайтад байрлуулсан STONE TOOL програм хангамжийн тусламжтайгаар товчлуурын логик дизайн хийх боломжтой болно.

Энд цагийг харуулахад ашигладаг цагны эх үүсвэр нь MCU цагийн эх үүсвэр биш харин дэлгэцийн дэлгэцийн цагны эх үүсвэр гэдгийг тэмдэглэх нь зүйтэй.

TAB хуудсыг солих эффект

STONE TOOL програмаас TAB хуудсыг солих бүрэлдэхүүн хэсэг олдоогүй тул TAB хуудсыг солих эффектэд хүрэх өөр аргыг бодож олсон.

Ажиглалтын үр дүнд би хоёр UI зургийг үзүүлсэн бөгөөд дээрх хоёр зураг нь "Гэрэл" ба "Мэдрэгч" текст бөгөөд ялгаа нь тэдний пикселийн хэмжээ өөр тул бид зөвхөн хоёр пикселийн байрлалыг тохируулсан байх ёстой. ижил текст, дараа нь лавлах цаг, огнооны зүүн дээд булангаар дамжуулан та хүснэгтийн эффектийг сольж болно.

Товчны логик

"Зочны өрөө" товчлуурыг жишээ болгон аваарай. Хэрэглэгч энэ товчлуурыг дарахад STONE цуваа порт харуулах дэлгэц нь холбогдох протоколын зааврыг цуваа портоор дамжуулах болно. Энэхүү зааврыг хүлээн авсны дараа хэрэглэгчийн MCU нь MCU -тай холбогдсон гэрлүүдийн шилжих байдлыг хянах протоколыг задлан шинжлэх болно.

Мэдрэгч олж авах

Жишээлбэл, "агаарын чанар" -ыг авч үзье: хэрэв та өрөөн доторх агаарын чанарыг авахыг хүсч байвал агаарын чанарын давуу болон сул талыг харьцуулах алгоритмаар MCU -ийн тоонуудыг цуглуулахад бид агаарын чанарыг цуглуулах MCU, агаарын чанарын мэдрэгчтэй байх ёстой. MCU нь "Сайн" эсвэл "Муу" хадгалах талбарыг харуулах, "Текст хувьсагч0" дэлгэцийн агуулгыг өөрчлөхийн тулд цуваа портоор илгээсэн бөгөөд дараа нь хэрэглэгч чанарын хяналтын ач тусыг зөн совинтойгоор харах боломжтой болно. Эдгээрийг дараа нь MCU код дээр тайлбарласан болно.

Алхам 2: MCU холбоо

MCU харилцаа холбоо
MCU харилцаа холбоо
MCU харилцаа холбоо
MCU харилцаа холбоо
MCU харилцаа холбоо
MCU харилцаа холбоо
MCU харилцаа холбоо
MCU харилцаа холбоо

STM32 бол хүн бүрийн мэддэг MCU бөгөөд олон улсад түгээмэл хэрэглэгддэг MCU загвар юм. Тиймээс миний энэ төсөлд ашигладаг STM32 MCU -ийн тодорхой загвар бол STM32F103RCT6 юм.

Зах зээлийн янз бүрийн эрэлт хэрэгцээг хангах олон STM32 цувралууд байдаг. Цөмийг cortex-m0, M3, M4, M7 гэж хувааж болох бөгөөд цөм бүрийг үндсэн урсгал, өндөр гүйцэтгэл, бага эрчим хүчний хэрэглээ гэж хувааж болно.

Суралцах үүднээс авч үзвэл та F1 ба F4-ийг сонгож болно, F1 нь cortex-m3 цөмд суурилсан үндсэн төрлийг илэрхийлдэг, үндсэн давтамж нь 72MHZ, F4 нь үндсэн гүйцэтгэл болох cortex-m4 цөмд суурилсан өндөр гүйцэтгэлийг илэрхийлдэг. давтамж 180M.

F1, F4 (429 ба түүнээс дээш цуврал) хувьд өөр өөр цөм, үндсэн давтамжийг сайжруулахаас гадна шинэчлэлтийн тод шинж чанар нь LCD хянагч ба камерын интерфейс, SDRAM -ийн дэмжлэг юм. Гэсэн хэдий ч их сургуулийн сургалт, хэрэглэгчдийн анхны сургамжийн үүднээс авч үзвэл F1 цуврал нь эхний сонголт хэвээр байна. Одоогийн байдлаар F1 цувралын STM32 нь зах зээл дээрх хамгийн их хэмжээний материал, бүтээгдэхүүнтэй.

STM32 SCM хөгжүүлэх орчны суулгалт, програм татаж авах аргын талаар би танилцуулга хийхгүй.

GPIO эхлүүлэх

Энэ төсөлд бид нийт 4 GPIO ашигласан бөгөөд үүний нэг нь ХОУХ -ны гаралтын зүү юм. Эхлээд гурван энгийн GPIO портыг эхлүүлэхийг авч үзье.

Энэ функц нь STM32F103C8 -ийн PB0 / PB1 / PB2 -ийг гаралтын зүү болгон эхлүүлж үндсэн функцээс дууддаг. Эхлүүлсний дараа бид энэ GPIO -ийн гаралтын төлөв, дээд ба доод түвшинг хянах логиктой байх ёстой тул функцийг доор бичсэн болно.

Энэ бол хувьсагчийн нэрээр зөн совинтой ойлгох функц юм.

Цуваа портыг эхлүүлэх

Цуваа портыг эхлүүлэх хэсэг нь uart.c дотор байна:

Дараа нь 115200 -ийн цуваа порт дамжуулах хурдыг эхлүүлэхийн тулд үндсэн функц дээр uart_init руу залгаарай. Зүү нь PA9/PA10 -ийг ашиглана.

ХОУХШ -ийг эхлүүлэх

Тодорхой алхамууд:

1. RCC цагийг тохируулах;

2. GPIO цагийг тохируулах; Зүүг солих шаардлагатай бол GPIO горимыг GPIO_Model_AF_PP эсвэл GPIO_PinRemapConfig () функцид тохируулсан байх ёстой.

3. TIMx таймерын холбогдох бүртгэлийг тохируулах;

4. TIMx таймерын ХОУХ -той холбоотой бүртгэлийг тохируулах;

A. ХОУХ -ны горимыг тохируулах

B. Ажлын мөчлөгийг тохируулах (томъёоны тооцоо)

C. Гаралтын харьцуулах туйлыг тохируулах (өмнө танилцуулсан)

D. Хамгийн гол нь TIMx -ийн гаралтын төлөвийг идэвхжүүлж, TIMx -ийн ХОУХ -ны гаралтыг идэвхжүүлэх; Холбогдох тохиргоог хийж дууссаны дараа TIMx таймерыг TIMx_Cmd () асааж ХОУХ -ны гаралтыг авах боломжтой. Үүнийг үндсэн функцээс TIM3_PWM_Init гэж нэрлэнэ үү.

Алхам 3: Логик код бичих

Логик код бичих
Логик код бичих
Логик код бичих
Логик код бичих
Логик код бичих
Логик код бичих

Бүрэлдэхүүн хэсгийн хаягийн тодорхойлолтыг харуулах

Дэлгэцийн бүрэлдэхүүн хэсгүүд нь тусдаа хаягтай бөгөөд энд би бүгдийг нь макро тодорхойлолт болгон бичсэн: Цуваа өгөгдөл хүлээн авах

STONE дэлгэцийн талаархи мэдээллийг харахад товчлуурыг дарахад дэлгэц дээрх цуваа порт нь протоколыг зохих форматаар илгээдэг бөгөөд үүнийг хэрэглэгчийн MCU хүлээн авч задлах боломжтой болно. Товчлуурыг дарахад дэлгэц дээрх цуваа порт нь хэрэглэгчийн өгөгдлийг багтаасан 9 байт өгөгдлийг илгээдэг. Цуваа өгөгдөл хүлээн авах ажлыг Handler -д бичсэн болно: Хүлээн авсан өгөгдлийг "USART_RX_BUF" массивт хадгална. Энэ төсөлд хүлээн авах уртыг тогтоосон болно. Хүлээн авах урт нь 9 байтаас их байвал хүлээн авах төгсгөлийг үнэлнэ.

Дэнлүүний шилжих байдлыг хянах

Үндсэн функцэд би чийдэнгийн шилжих төлөвийг хянахын тулд логик код бичсэн: Бидний харж байгаагаар код нь цуваа портын өгөгдлийг хүлээн авах эсэхийг эхлээд, портын өгөгдлийг хүлээн авах үед хэрэглэгчийн аль товчлуурыг тодорхойлдог. дэлгэцийн дэлгэц дээр дарна. Дэлгэц дээрх өөр өөр товчлуурууд өөр өөр хаягтай байдаг бөгөөд үүнийг STONE TOOL програм хангамжаас харж болно: Хэрэглэгч "Зочны өрөө" товчлуурыг дарахад дэлгэцийн цуваа портоор илгээсэн өгөгдлийн дөрөв, тав дахь битүүд нь товчлуурын хаяг. Энд тохируулсан бүх товчлуурын дөрөв дэх бит нь 0x00 тул хэрэглэгч тав дахь битийн өгөгдлийг шууд шүүж, аль товчлуурыг дарж байгааг бид шүүж чадна. Хэрэглэгч дарсан товчлуурыг авсны дараа бид дэлгэцийн дэлгэцээс илгээсэн өгөгдлийн найм дахь орон болох товчлуур дарагдсан үед хүлээн авсан хэрэглэгчийн өгөгдлийг шүүх ёстой. Тиймээс бид дараах хяналтыг хийдэг: гэрлийн асаалттай байдлыг хянахын тулд товчлуурын хаягийн параметр болон хэрэглэгчийн өгөгдлийг "Light_Contral" функцэд бичнэ үү. Light_Contral функц нь дараах байдалтай байна: Таны харж байгаагаар хэрэв товчлуурын хаяг нь "Зочны өрөө", хэрэглэгчийн өгөгдөл нь "LightOn" байвал MCU-ийн PB0 зүү өндөр түвшний гаралтанд тохируулагдсан бөгөөд гэрэл асаалттай байна.. Бусад гурван товчлуур ижил төстэй боловч би энд үргэлжлүүлэхгүй.

ХОУХ -ны гаралт

Миний зохион бүтээсэн UI -д "Хүүхдийн өрөө" -ийн гэрлийн гэрлийг хянахад ашигладаг гүйдэг зохицуулагч байдаг. MCU нь PWM -ээр хэрэгждэг. PWM гаралтын зүү нь PB5 юм. Код дараах байдалтай байна: Гулгадаг тохируулагчийг хамгийн бага утга нь 0x00, хамгийн их нь 0x64 гэж тохируулсан байна. Гулгах үед дэлгэцийн цуваа порт нь холбогдох хаяг, өгөгдлийг илгээж, дараах функцийг дуудаж ХОУХ -ны гаралтын үүргийн харьцааг тохируулна.

Алхам 4: Мэдрэгчийг олж авах

Мэдрэгчийн худалдан авалт
Мэдрэгчийн худалдан авалт
Мэдрэгчийн худалдан авалт
Мэдрэгчийн худалдан авалт
Мэдрэгчийн худалдан авалт
Мэдрэгчийн худалдан авалт

Дэлгэцийн дэлгэцийн "Мэдрэгч" хуудсан дээр дөрвөн мэдрэгчийн өгөгдөл байна.

Өгөгдөл нь дэлгэц дээр хадгалах хаягтай бөгөөд бид MCU -ийн цуваа портоор дамжуулан эдгээр хаяг руу өгөгдөл бичих замаар бодит агуулгыг өөрчлөх боломжтой.

Энд би энгийн кодын хэрэгжилтийг хийсэн.

Дэлгэцийн өгөгдөл 5 секунд тутамд шинэчлэгддэг бөгөөд гартаа эдгээр мэдрэгч байхгүй тул би зөвхөн холбогдох мэдрэгч цуглуулах функцын энгийн демог бичсэн.

Төслийн бодит боловсруулалтанд эдгээр мэдрэгч нь ADC -ийн цуглуулсан өгөгдөл эсвэл IIC, UART, SPI холбооны интерфейсээс цуглуулсан өгөгдөл байж болно. Таны хийх ёстой зүйл бол эдгээр өгөгдлийг буцаах утга болгон харгалзах функцэд бичих явдал юм.

Алхам 5: Үйл ажиллагааны бодит эффект

Зөвлөмж болгож буй: