Mundarija:

Aqlli uyli STONE LCD: 5 qadam
Aqlli uyli STONE LCD: 5 qadam

Video: Aqlli uyli STONE LCD: 5 qadam

Video: Aqlli uyli STONE LCD: 5 qadam
Video: Тест каравана в -25° . Ночёвка зимой. Как не замёрзнуть? 2024, Iyul
Anonim
Aqlli uy bilan STONE LCD
Aqlli uy bilan STONE LCD

Bugun men MCU -ning ketma -ket porti orqali aloqa qila oladigan STONE -ning ketma -ket portli displeyini oldim va bu displeyning UI mantiqiy dizayni to'g'ridan -to'g'ri STONE rasmiy veb -saytida taqdim etilgan VGUS dasturi yordamida ishlab chiqilishi mumkin, bu biz uchun juda qulay. Shunday qilib, men uni turli xil chiroqlarni (yashash xonasi, oshxona, bolalar xonasi, hammom) boshqarishni o'z ichiga oladigan oddiy asbob -uskunalarni boshqarish uchun ishlatishni rejalashtirmoqdaman. Shu bilan birga, ichki va tashqi harorat, namlik va havo sifati to'planishi mumkin. Bu oddiy demo va siz men bergan kod orqali ikkinchi darajali ishlab chiqarishni amalga oshirishingiz mumkin. STONE ekrani haqida ba'zi asosiy qo'llanmalar veb -saytga o'tishi mumkin:

Veb -saytda model, foydalanuvchi va dizayn hujjatlari, video darsliklar haqida turli ma'lumotlar mavjud. Men bu erda juda ko'p tafsilotlarga bormayman.

1 -qadam: UI interfeysi dizayni

UI interfeysi dizayni
UI interfeysi dizayni
UI interfeysi dizayni
UI interfeysi dizayni
UI interfeysi dizayni
UI interfeysi dizayni
UI interfeysi dizayni
UI interfeysi dizayni

Photoshop

Men fotoshop yordamida quyidagi ikkita foydalanuvchi interfeysini yaratdim:

Bu loyiha yuqoridagi ikki sahifadan iborat. O'ng yuqori burchakdagi "Nur" va "Sensor" - bu ikki sahifaning kalitlari.

"Nur" sahifasida siz uyingizdagi barcha turdagi chiroqlarni boshqarishingiz mumkin. "Sensor" sahifasida siz turli sensorlar tomonidan aniqlangan qiymatlarni tekshirishingiz mumkin.

Yuqoridagi ikkita sahifa tuzilgandan so'ng, biz STONE rasmiy veb -saytida taqdim etilgan STONE TOOL dasturi orqali tugmalar mantig'ini loyihalashtirishimiz mumkin.

Shuni ta'kidlash joizki, bu erda vaqtni ko'rsatish uchun ishlatiladigan soat manbai MCU soat manbai emas, balki displey ekranining soat manbai.

TAB sahifasini almashtirish effekti

STONE TOOL dasturida TAB sahifasini almashtirish komponenti topilmadi, shuning uchun men TAB sahifasini almashtirish effektiga erishish uchun boshqa usulni o'ylab topdim.

Kuzatuv orqali men ikkita UI tasvirini topaman, yuqoridagi ikkita tasvir "yorug'lik" va "sensor" matnidir, ularning farqi shundaki, ularning piksel o'lchamlari boshqacha, shuning uchun biz faqat ikkita pikselli pozitsiyani sozlashimiz kerak. bir xil matnni, keyin esa vaqt va sananing yuqori chap burchagida siz TAB effektini o'zgartirishingiz mumkin.

Tugma mantig'i

Misol sifatida "Yashash xonasi" tugmachasini oling. Foydalanuvchi ushbu tugmani bosganida, STONE ketma -ket portini ko'rsatish ekrani ketma -ket port orqali tegishli protokol ko'rsatmalarini yuboradi. Ushbu ko'rsatmani olgandan so'ng, foydalanuvchining MCU MCU bilan bog'liq bo'lgan chiroqlarning o'tish holatini nazorat qilish uchun protokolni tahlil qiladi.

Sensor sotib olish

Masalan, "havo sifati" ni olaylik: agar siz xonadagi havo sifatini olishni xohlasangiz, bizda havo sifatini yig'ish uchun MCU, havo sifati sensori, havo sifatining ijobiy va salbiy tomonlarini taqqoslaydigan algoritm yordamida to'plangan bo'lsa, bizda bo'lishi kerak. MCU ketma -ket port orqali "Yaxshi" yoki "Yomon" saqlash maydonini ko'rsatish uchun, "Matn o'zgaruvchisi0" ko'rsatiladigan tarkibni o'zgartirish uchun yuboriladi, shundan so'ng foydalanuvchi sifat nazorati samaradorligini sezadi. Bular keyinchalik MCU kodida tushuntiriladi.

2 -qadam: MCU aloqasi

MCU aloqasi
MCU aloqasi
MCU aloqasi
MCU aloqasi
MCU aloqasi
MCU aloqasi
MCU aloqasi
MCU aloqasi

STM32 - hamma biladigan MCU va bu xalqaro miqyosda keng tarqalgan MCU modeli. Shuning uchun men ushbu loyihada ishlatgan STM32 MCU o'ziga xos modeli STM32F103RCT6.

Bozorning turli talablariga javob beradigan ko'plab STM32 seriyalari mavjud. Yadro korteks-m0, M3, M4 va M7 ga bo'linishi mumkin va har bir yadroni asosiy oqimga, yuqori ishlashga va kam quvvat sarfiga bo'lish mumkin.

To'g'ridan-to'g'ri o'rganish nuqtai nazaridan siz F1 va F4 ni tanlashingiz mumkin, F1 korteks-m3 yadrosiga asoslangan asosiy turni ifodalaydi, asosiy chastotasi 72 MGts, F4 yuqori ish faoliyatini, korteks-m4 yadrosiga asoslangan. chastota - 180 M

F1, F4 (429 seriyali va undan yuqori) ga kelsak, har xil yadrolardan va asosiy chastotani takomillashtirishdan tashqari, yangilanishning aniq xususiyati - bu LCD displey va kamera interfeysi, SDRAM -ni qo'llab -quvvatlash, loyihani tanlashda bu farq birinchi o'ringa qo'yiladi. Biroq, universitetda o'qitish va foydalanuvchilarning boshlang'ich ta'limi nuqtai nazaridan, F1 seriyasi hali ham birinchi tanlovdir. Hozirgi vaqtda F1 seriyali STM32 bozorda eng ko'p materiallar va mahsulotlarga ega.

STM32 SCM ishlab chiqish muhitini o'rnatish va dasturni yuklab olish usuli haqida men kirish qilmayman.

GPIO -ni ishga tushirish

Ushbu loyihada biz jami 4 ta GPIO ishlatdik, ulardan biri PWM chiqish pinidir. Avval uchta oddiy GPIO portining ishga tushirilishini ko'rib chiqaylik:

Bu funksiya STM32F103C8 ning PB0 / PB1 / PB2 ni chiqish pimi sifatida ishga tushiradi va uni asosiy funktsiyadan chaqiradi. Boshlashdan so'ng, biz ushbu GPIO -ning chiqish holatini, yuqori va past darajasini nazorat qilish uchun mantiqqa ega bo'lishimiz kerak, shuning uchun men funktsiyani quyida yozdim:

Bu funktsiya, siz o'zgaruvchining nomi bilan intuitiv ravishda tushunishingiz mumkin.

Seriya portini ishga tushirish

Seriya portining ishga tushirish qismi uart.c da joylashgan:

Keyin asosiy funktsiyadagi uart_init -ga 115200 raqamli portni uzatishni boshlash uchun qo'ng'iroq qiling.

PWMni ishga tushirish

Maxsus qadamlar:

1. RCC soatini o'rnating;

2. GPIO soatini o'rnating; GPIO rejimini GPIO_Model_AF_PP yoki PIN -kodni almashtirish zarur bo'lsa, GPIO_PinRemapConfig () funktsiyasiga o'rnatish kerak.

3. TIMx taymerining tegishli registrlarini o'rnating;

4. TIMx taymerining PWM bilan bog'liq reestrini o'rnating;

A. PWM rejimini o'rnating

B. Ish tsiklini o'rnating (formulani hisoblash)

C. Chiqish taqqoslash polaritesini o'rnating (ilgari kiritilgan)

D. Eng muhimi, TIMxning chiqish holatini yoqish va TIMxning PWM chiqishini yoqish; Tegishli sozlamalar tugagandan so'ng, PWM chiqishini olish uchun TIMx taymeri TIMx_Cmd () yordamida yoqiladi. Buni asosiy funktsiyadan TIM3_PWM_Init deb chaqiring.

3 -qadam: mantiqiy kod yozish

Mantiq kodini yozish
Mantiq kodini yozish
Mantiq kodini yozish
Mantiq kodini yozish
Mantiq kodini yozish
Mantiq kodini yozish

Komponent manzili ta'rifini ko'rsatish

Displey komponentalari alohida manzilga ega va bu erda men ularning barchasini so'l ta'riflar sifatida yozdim: ketma -ket ma'lumotlarni qabul qilish

STONE displeyi haqidagi ma'lumotlarga qaraganda, siz tugma bosilganda displeydagi ketma -ket port tegishli formatdagi protokollarni yuboradi, ularni foydalanuvchi MCU qabul qilishi va tahlil qilishi mumkin. Tugma bosilganda, displeydagi ketma -ket port foydalanuvchi ma'lumotlarini o'z ichiga olgan to'qqiz baytli ma'lumotlarni yuboradi. Ma'lumotlarni ketma -ket qabul qilish Handler -da yozilgan: Qabul qilingan ma'lumotlar "USART_RX_BUF" qatorida saqlanadi. Ushbu loyihada qabul qilish uzunligi aniqlanadi. Qabul qilish uzunligi 9 baytdan oshganda, qabul qilish tugashi baholanadi.

Chiroqning o'tish holatini boshqaring

Asosiy funktsiyada men chiroqning o'tish holatini boshqarish uchun bir nechta mantiq kodini yozdim: Ko'rib turganimizdek, kod birinchi navbatda ketma -ket port ma'lumotlari qabul qilinishini aniqlaydi va ketma -ket port ma'lumotlari qabul qilinganda foydalanuvchining qaysi tugmachasini aniqlaydi. displey ekranini bosadi. Displeyning turli tugmachalari har xil manzilga ega, ularni STONE TOOL dasturida ko'rish mumkin: Foydalanuvchi "Yashash xonasi" tugmachasini bosganda, displey ekranining ketma -ket porti tomonidan yuborilgan ma'lumotlarning to'rtinchi va beshinchi bitlari ko'rsatiladi. tugma manzili. Bu erda o'rnatilgan barcha tugmalarning to'rtinchi biti 0x00 bo'lgani uchun, biz beshinchi bit ma'lumotlarini to'g'ridan -to'g'ri baholab, foydalanuvchi qaysi tugmani bosganini aniqlashimiz mumkin. Foydalanuvchi bosgan tugmachani olgandan so'ng, biz tugma bosilganda olingan foydalanuvchi ma'lumotlarini baholashimiz kerak, bu displey ekranidan yuborilgan ma'lumotlarning sakkizinchi raqami. Shuning uchun biz quyidagi nazoratni amalga oshiramiz: yorug'likning o'chish holatini boshqarish uchun tugma manzili parametrini va foydalanuvchi ma'lumotlarini "Light_Contral" funktsiyasiga yozing. Light_Contral funktsiyasi quyidagicha: Ko'rib turganingizdek, agar tugma manzili "Yashash xonasi" bo'lsa va foydalanuvchi ma'lumotlari "LightOn" bo'lsa, MCU ning PB0 pinasi yuqori darajadagi chiqishga o'rnatiladi va chiroq yonadi. Qolgan uchta tugma o'xshash, lekin men bu erda davom etmayman.

PWM chiqishi

Men yaratgan foydalanuvchi interfeysida "Bolalar xonasi" yorug'ligining yorqinligini boshqarish uchun ishlatiladigan toymasin regulyator mavjud. MCU PWM tomonidan amalga oshiriladi. PWM chiqish pimi PB5. Kod quyidagicha: toymasin sozlagichi 0x00 minimal qiymatiga va maksimal qiymati 0x64 ga o'rnatiladi. Slayd paytida displey ekranining ketma -ket porti ham tegishli manzillar va ma'lumotlarni yuboradi, so'ngra quyidagi funktsiyani chaqirib PWM chiqishining ish nisbatini o'rnatadi:

4 -qadam: Sensorlarni sotib olish

Sensor sotib olish
Sensor sotib olish
Sensor sotib olish
Sensor sotib olish
Sensor sotib olish
Sensor sotib olish

Displey ekranining "Sensor" sahifasida to'rtta Sensor ma'lumoti mavjud.

Ma'lumotlar, shuningdek, displeyda saqlash manziliga ega va biz MCU -ning ketma -ket porti orqali ushbu manzillarga ma'lumotlarni yozib, haqiqiy tarkibni o'zgartirishimiz mumkin.

Bu erda men oddiy kodni amalga oshirdim:

Displey ma'lumotlari har 5 soniyada yangilanadi va men sensorlar yig'ish funksiyasining oddiy demosini yozdim, chunki qo'limda bu sensorlar yo'q.

Haqiqiy loyihani ishlab chiqishda bu sensorlar ADC tomonidan to'plangan ma'lumotlar yoki IIC, UART va SPI aloqa interfeyslari tomonidan to'plangan ma'lumotlar bo'lishi mumkin. Siz qilishingiz kerak bo'lgan narsa bu ma'lumotlarni qaytarish qiymati sifatida mos keladigan funktsiyaga yozishdir.

5 -qadam: Haqiqiy ishlash effekti

Tavsiya: