Sisällysluettelo:
- Vaihe 1: Käyttöliittymän suunnittelu
- Vaihe 2: MCU -viestintä
- Vaihe 3: Loogisen koodin kirjoittaminen
- Vaihe 4: Anturin hankinta
- Vaihe 5: Todellinen toimintatehoste
Video: STONE LCD Smart Home: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Tänään sain STONEn sarjaporttiaseman näytön, joka voi kommunikoida MCU: n sarjaportin kautta, ja tämän näytön käyttöliittymän logiikka voidaan suunnitella suoraan käyttämällä STONEn virallisella verkkosivustolla olevaa VGUS -ohjelmistoa, mikä on erittäin kätevää meille. Joten aion käyttää sitä yksinkertaisen laiteohjaimen valmistamiseen, joka sisältää erilaisten valojen ohjaamisen (olohuone, keittiö, lastenhuone, kylpyhuone). Samalla voidaan kerätä sisä- ja ulkolämpötila, kosteus ja ilmanlaatu. Tämä on vain yksinkertainen esittely, ja voit suorittaa toissijaista kehittämistä antamani koodin avulla. Jotkut STONE -näytön perusoppaat voivat mennä verkkosivustolle:
Sivustolla on erilaisia tietoja mallista, käyttäjästä ja suunnitteludokumentaatiosta sekä video -oppaita. En mene tässä liikaa yksityiskohtiin.
Vaihe 1: Käyttöliittymän suunnittelu
Photoshop
Suunnittelin seuraavat kaksi käyttöliittymäsivua Photoshopilla:
Tässä projektissa on yhteensä kaksi yllä olevaa sivua. "Valo" ja "Anturi" oikeassa yläkulmassa ovat näiden kahden sivun kytkinpainikkeet.
"Valo" -sivulla voit hallita kaikenlaisia kotisi valoja. "Anturi" -sivulta voit tarkistaa eri antureiden havaitsemat arvot.
Yllä olevien kahden sivun suunnittelun jälkeen voimme suorittaa painikkeiden logiikan suunnittelun STONE TOOL -ohjelmiston avulla, joka on saatavana STONEn virallisella verkkosivustolla.
On syytä huomata, että aikanäytössä käytetty kellolähde on näytön näytön lähde, ei MCU -kellolähde.
TAB -sivunvaihtotehoste
Mitään TAB -sivunvaihtokomponenttia ei löytynyt STONE TOOL -ohjelmistosta, joten ajattelin toista tapaa saavuttaa TAB -sivunvaihtotehoste.
Havaintojen kautta annan kaksi käyttöliittymäkuvaa, jotka havaitsevat, että yllä olevat kaksi kuvaa ovat "valo" ja "anturi", ero on niiden pikselikoko on erilainen, joten meidän tarvitsee vain laittaa kahden pikselin sijainti sama teksti, ja sitten kellonajan ja päivämäärän vasemman yläkulman kautta viittaus, voit saavuttaa TAB vaihtaa tehosteen.
Napin logiikka
Ota esimerkiksi "Olohuone" -painike. Kun käyttäjä painaa tätä painiketta, STONE -sarjaportin näyttöruutu lähettää vastaavat protokollaohjeet sarjaportin kautta. Tämän ohjeen vastaanottamisen jälkeen käyttäjän MCU jäsentää protokollan ohjatakseen MCU: hon kytkettyjen valojen kytkentätilaa.
Anturin hankinta
Otetaan esimerkiksi "ilmanlaatu": jos haluat saada sisäilman laadun, meillä on oltava MCU ilmanlaadun keräämiseen, ilmanlaatutunnistin, kun MCU -numero kerätään ilmanlaadun etuja ja haittoja vertaavan algoritmin avulla, ja sitten MCU lähetetään sarjaportin kautta näyttääkseen "hyvä" tai "huono" tallennusalueen, vaihtaakseen "Text variable0" -näytön sisältöä, ja sitten käyttäjä voi intuitiivisesti nähdä laadunvalvonnan edut. Nämä selitetään myöhemmin MCU -koodissa.
Vaihe 2: MCU -viestintä
STM32 on kaikille tuttu MCU, ja se on yleinen MCU -malli kansainvälisesti. Siksi tässä projektissa käytetty STM32 MCU I -malli on STM32F103RCT6.
STM32 -sarjoja on monia, jotka voivat vastata markkinoiden erilaisiin tarpeisiin. Ydin voidaan jakaa cortex-m0, M3, M4 ja M7, ja jokainen ydin voidaan jakaa valtavirtaan, korkeaan suorituskykyyn ja pieneen virrankulutukseen.
Pelkästään oppimisen näkökulmasta voit valita F1 ja F4, F1 edustaa perustyyppiä, joka perustuu cortex-m3-ytimeen, päätaajuus on 72 MHz, F4 edustaa korkeaa suorituskykyä, joka perustuu cortex-m4-ytimeen, tärkein taajuus on 180M.
Mitä tulee F1-, F4 -sarjaan (429 -sarja ja uudemmat), eri ytimien ja päätaajuuden parantamisen lisäksi päivityksen ilmeinen piirre on LCD -ohjain ja kameran käyttöliittymä, SDRAM -tuki, tämä ero asetetaan etusijalle projektin valinnassa. Yliopisto -opetuksen ja käyttäjien alkuopetuksen kannalta F1 -sarja on kuitenkin edelleen ensimmäinen valinta. Tällä hetkellä F1 -sarjan STM32: ssa on markkinoiden suurin määrä materiaaleja ja tuotteita.
Tietoja STM32 SCM -kehitysympäristön asennuksesta ja ohjelman latausmenetelmästä en aio esitellä.
GPIO -alustus
Tässä projektissa käytimme yhteensä 4 GPIO: ta, joista yksi on PWM -ulostulonappi. Katsotaanpa ensin kolmen tavallisen GPIO -portin alustamista:
Tämä toiminto alustaa STM32F103C8: n PB0 / PB1 / PB2 lähtönastana ja kutsuu sen päätoiminnosta. Alustuksen jälkeen meillä on oltava logiikka tämän GPIO: n lähtötilan, korkean ja matalan tason hallitsemiseksi, joten kirjoitin toiminnon seuraavasti:
Tämä on toiminto, jonka voit ymmärtää intuitiivisesti muuttujan nimen perusteella.
Sarjaportin alustus
Sarjaportin alustusosa on uart.c:
Soita sitten päätoiminnon uart_init -komento alustamaan sarjaportin baudinopeus 115200. Nastat käyttävät PA9/PA10
PWM -alustus
Erityiset vaiheet:
1. Aseta RCC -kello;
2. Aseta GPIO -kello; GPIO -tilaksi on asetettava GPIO_Model_AF_PP tai GPIO_PinRemapConfig () -toiminto, jos nastan uudelleenmuodostus on tarpeen.
3. Aseta asiaankuuluvat TIMx -ajastimen rekisterit;
4. Aseta TIMx -ajastimen PWM -rekisteri;
A. Aseta PWM -tila
Aseta käyttöjakso (kaavan laskenta)
Aseta lähtövertailun napaisuus (aiemmin käyttöön otettu)
D. Mikä tärkeintä, ota käyttöön TIMx: n lähtötila ja ota käyttöön TIMx: n PWM -lähtö; Kun tarvittavat asetukset on suoritettu, TIMx_Cmd () kytkee TIMx -ajastimen päälle PWM -lähdön saamiseksi. Kutsu tätä TIM3_PWM_Init päätoiminnosta.
Vaihe 3: Loogisen koodin kirjoittaminen
Näytä komponentin osoitteen määritys
Näytön osilla on erilliset osoitteet, ja olen kirjoittanut ne kaikki makromäärittelyiksi: Sarjadatan vastaanotto
Tarkasteltaessa STONE -näytön tietoja näet, että kun painiketta painetaan, näytön sarjaportti lähettää protokollat sopivassa muodossa, jotka käyttäjän MCU voi vastaanottaa ja jäsentää. Kun painiketta painetaan, näytön sarjaportti lähettää yhdeksän tavua dataa, mukaan lukien käyttäjätiedot. Sarjatietojen vastaanotto on kirjoitettu käsittelijälle: Vastaanotetut tiedot tallennetaan "USART_RX_BUF" -matriisiin. Tässä projektissa vastaanottopituus on kiinteä. Kun vastaanottopituus on yli 9 tavua, vastaanottopää arvioidaan.
Ohjaa lampun kytkentätilaa
Päätoiminnossa kirjoitin jonkin logiikkakoodin lampun kytkimen tilan ohjaamiseksi: Kuten näemme, koodi määrittää ensin, onko sarjaporttitiedot vastaanotettu, ja kun sarjaporttitiedot vastaanotetaan, määrittää, mitä painiketta käyttäjä käyttää painaa näyttöruudussa. Näytön eri painikkeilla on eri osoitteet, jotka näkyvät STONE TOOL -ohjelmistossa: Kun käyttäjä painaa "Olohuone" -painiketta, näyttöruudun sarjaportin lähettämien tietojen neljäs ja viides bitti ovat painikkeen osoite. Koska kaikkien tässä asetettujen painikkeiden neljäs bitti on 0x00, voimme arvioida, mitä painiketta käyttäjä painaa, arvioimalla suoraan viidennen bitin tiedot. Kun olemme saaneet käyttäjän painetun painikkeen, meidän on arvioitava painiketta painettaessa vastaanotetut käyttäjätiedot, joka on näyttöruudusta lähetettyjen tietojen kahdeksas numero. Siksi teemme seuraavan ohjauksen: kirjoita painikkeen osoiteparametri ja käyttäjätiedot "Light_Contral" -toimintoon valon päälle / pois-tilan ohjaamiseksi. Light_Contral-toiminnon kokonaisuus on seuraava: Kuten huomaat, jos painikkeen osoite on "Olohuone" ja käyttäjätiedot "LightOn", MCU: n PB0-nasta on asetettu korkean tason lähtöön ja valo palaa. Muut kolme painiketta ovat samanlaisia, mutta en jatka tässä.
PWM -lähtö
Suunnittelemassani käyttöliittymässä on liukuva säädin, jota käytetään "Lastenhuoneen" valon kirkkauden säätämiseen. MCU toteutetaan PWM: llä. PWM -lähtötappi on PB5. Koodi on seuraava: Liukuva säädin on asetettu minimiarvoon 0x00 ja enimmäisarvoon 0x64. Kun liukuu, näyttöruudun sarjaportti lähettää myös asiaankuuluvat osoitteet ja tiedot ja asettaa sitten PWM -ulostulon käyttöasteen kutsumalla seuraavaa toimintoa:
Vaihe 4: Anturin hankinta
Näytön "Sensor" -sivulla on neljä anturitietoa.
Datalla on myös tallennusosoite näytössä, ja voimme muuttaa todellista sisältöä yksinkertaisesti kirjoittamalla dataa näihin osoitteisiin MCU: n sarjaportin kautta.
Tässä tein yksinkertaisen koodin toteutuksen:
Näytön tiedot päivitetään viiden sekunnin välein, ja kirjoitin vain yksinkertaisen esityksen asiaankuuluvasta anturien keräystoiminnosta, koska minulla ei ole näitä antureita kädessäni.
Todellisessa projektikehityksessä nämä anturit voivat olla ADC: n keräämiä tietoja tai IIC-, UART- ja SPI -viestintärajapintojen keräämiä tietoja. Sinun tarvitsee vain kirjoittaa nämä tiedot vastaavaan funktioon palautusarvona.
Vaihe 5: Todellinen toimintatehoste
Suositeltava:
STONE LCD -näyttö auton kojelautaan: 5 vaihetta
STONE LCD -näyttö auton kojelautaan: Talouden nopean kehityksen ja ihmisten kulutusvoiman vähitellen parantuessa autoista on tullut tavallisten perheiden päivittäisiä tarpeita, ja kaikki kiinnittävät enemmän huomiota autojen mukavuuteen ja turvallisuuteen
Lääketieteellinen tuuletin + STONE LCD + Arduino UNO: 6 vaihetta
Lääketieteellinen tuuletin + STONE LCD + Arduino UNO: 8. joulukuuta 2019 jälkeen Wuhan Cityssä, Hubein maakunnassa, Kiinassa, on raportoitu useita keuhkokuumeita, joiden etiologia on tuntematon. Viime kuukausina lähes 80000 vahvistettua tapausta on aiheuttanut koko maassa, ja epidemian vaikutus on
Stone Lcd + kiihtyvyys gyroskooppi -anturi: 5 vaihetta
Stone Lcd +kiihtyvyys gyroskooppianturi: Tämä asiakirja opettaa sinulle STM32 MCU +MPU6050 kiihtyvyysanturin gyroskooppianturin +STONE STVC070WT -sarjaporttinäytön käyttämistä DEMO.STVC070WT on yrityksemme sarjakuva, sen kehittäminen on yksinkertaista, helppokäyttöistä , voit mennä meille
Hallitse automaattista liukuporttia Home Assistantin ja ESP: n avulla Home: 5 vaihetta (kuvilla)
Hallitse automaattista liukuporttia Home Assistantin ja ESPHomen avulla: Seuraava artikkeli antaa palautetta henkilökohtaisesta kokemuksestani taloon asennetun automaattisen liukuportin ohjaamisesta. Tässä portissa, "V2 Alfariss", oli muutama Phox V2 -kaukosäädin sen hallitsemiseksi. Minulla on myös
Sormenjälkimoduuli + STONE TFT-LCD: 3 vaihetta
Sormenjälkimoduuli + STONE TFT-LCD: Suunnittelin tässä kuussa, että kehitän sormenjälkilukon oven lukitusprojektin. Kun valitsin sormenjälkien tunnistusmoduulin, projekti keskeytettiin. Ajattelin kuitenkin, että koska sormenjälkien tunnistusmoduuli oli ostettu, yksinkertaistan