Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Lopputuote
- Vaihe 2: Miekan etulevy
- Vaihe 3: Dot Matrix LED -näyttö
- Vaihe 4: Virta
- Vaihe 5: Kaavio
- Vaihe 6: 3D -tulostus
- Vaihe 7: Ohjelmointi
- Vaihe 8: Dot Matrix Control
- Vaihe 9: Videon suoratoisto
- Vaihe 10: Määritykset
- Vaihe 11: OTA -laiteohjelmistopäivitykset
- Vaihe 12: MJPEG -palvelin
- Vaihe 13: Blynk -sovellus
- Vaihe 14: Nauti
- Vaihe 15: Kirjastot ja koodi
Video: Interaktiivinen Minecraft Älä anna miekkaa/merkkiä (ESP32-CAM): 15 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Hankkeen syntymiseen on todella monia syitä:
1. Osuuskunnan TaskScheduler-monitoimikirjaston tekijänä olin aina utelias, miten yhdistettävän yhteistyön edut yhdistetään ennaltaehkäisevän edun kanssa. Molemmista on hyötyä ja molemmissa on puutteita. Näiden kahden yhdistäminen tarjoaa ainutlaatuisen mahdollisuuden hyödyntää etuja ja vähätellä kummankin ongelman ratkaisuja tietyn käyttötapauksen perusteella. Mielenkiintoista? Jatka lukemista…
2. Se tosiasia, että ESP32 on monisydäminen mikro-ohjain, on kiehtova. Olin aina utelias, voinko hyödyntää tätä ominaisuutta. Joten kokeilu oli seuraava: voiko ESP32 suoratoistaa videota sujuvasti yhdellä ytimellä samalla kun tekee jotain muuta (mielekästä ja kohtuullisen intensiivistä jotain muuta) toisella ytimellä. Vielä mielenkiintoisempaa ?? Jatka lukemista…!
3. Tarvitsin testauspaikkaa äskettäisille projekteilleni, jotka liittyvät OTA -laiteohjelmiston käyttöönottoon ja kokoonpanonhallintaan…
4. Olin ostanut kaksi LED Dot Matrix -moduulia jokin aika sitten, enkä keksinyt, mitä tehdä niiden kanssa …
5. Poikani on Minecraft -pelaaja, ja kuten jokainen pieni poika rakastaa koristella ovea "Älä mene sisään" -julisteilla …
Joten tässä kaikki - kaikki hyvät syyt: Interaktiivinen Älä mene ovikyltti, jossa ESP32 -CAM -suoratoisto videosyötteestä "suljetun oven takaa" - tai "Kuka tulee huoneeseeni?"
Joten… mistä on kyse?
Jos sinulla on kärsivällisyyttä lukea koko tarina, huomaat, että tässä ei todellakaan ole kyse Minecraft -miekasta. Tämä projekti on todiste monista käsitteistä:
- Ennaltaehkäisevän ja yhteistoiminnallisen moniajon rinnakkaiselo
- ESP32 -ytimien valikoiva käyttö
- Uusien sanakirja- ja EspBootstrap -kirjastojen käyttö
- OTA -laiteohjelmiston valmistelu
- Kokoonpanon hallinta
- Videon suoratoisto useille asiakkaille
ja paljon muuta.
Nauttia
Tarvikkeet
- ESP32-CAM
- MAX7219 Dot Matrix Module 4-in-1 LED-näyttömoduuli Geekcreit Arduinolle
- Attom Tech 2500mAh virtapankki
Vaihe 1: Lopputuote
Aloitan siitä, miltä lopullinen tuote näyttää, ja selitän sitten, miten se rakennettiin ja miten sitä hallitaan.
Vaikuttaa kiinnostavammalta näin…
Vaihe 2: Miekan etulevy
Miekan etulevy on valmistettu taulusta, merkitty lyijykynällä ja värjätty Crayola -merkeillä. Tämä yksin voi olla mielenkiintoinen projekti lapsesi kanssa:
- Merkitse miekka taululle
- Leikkaa etulevy pois
- Merkitse neliöt (tai lohkot)
- Väritä ne yksitellen
- Lisää mustat viivat teräväpiirtimellä.
Mukana oli avoin toimistoasiakirja, jossa oli esimerkkikuvio timanttimiekasta, jonka voit liimata taulun päälle, jos haluat pikavalintoja … Kun kaikki on tehty, voit joko liimata etulevyn koko kokoonpanoon tai käyttää kaksinkertaista puolinen teippi.
Vaihe 3: Dot Matrix LED -näyttö
Minulla oli niitä 2, 4 segmenttiä, joten päätin tehdä yhden 8-segmentin.
Kätevästi toisella puolella on 5-napainen urosliitin ja vastakkaisella puolella 5 reikää. Taivuttamalla urospuolisen otsikon niittimaiseksi] muotoon pystyin yhdistämään kaksi moduulia sekä sähköisesti että mekaanisesti! Tappoi kaksi lintua yhdellä kivellä (tai kaksi kärpästä yhdellä vatsalla, pysäyttää kaksi suuta yhdellä palanella, saada kaksi ystävää yhdellä lahjalla, saada kaksi narua yhteen keulaan, mitä muita idiomeja tässä asiassa - oletko ajatellut? Anteeksi, eksyin).
Vastakkaista urosotsikkoa käytetään vastaavan naarasotsikon yhdistämiseen veroboardista ESP32-Camiin ja muihin komponentteihin.
Kaksi komponenttia on yhdistetty 3D-painetulla sillalla, jossa on myös kytkin virran kytkemiseksi päälle ja pois. 3d STL-tiedostot siltaa ja muita komponentteja varten ovat GitHubin files/3d-kansiossa.
Vaihe 4: Virta
Miekka saa virtansa 2500 mAh: n USB -virtapankista - pienimmästä ja ohuimmasta mitä löysin. Powerbank liukuu 3D-painettuun koteloon, joka kiinnittyy myös pistematriisimoduuleihin pitäen siten koko asian koossa.
Virtapankin koteloon on liimattu kaksi pyöreää magneettia, ja näin miekka kiinnitetään oveen (joten se voidaan irrottaa yhtä helposti huoltoa varten).
Vaihe 5: Kaavio
Todellinen kaavio sijaitsee GitHubissa, mutta kuva on 1000 sanan arvoinen (1024 tietotekniikassa), joten tässä olet:
Tämä on melko yksinkertaista, jos tiedät tiesi juotospistoolilla. Jos päätät käyttää toista, siltakomponentti on suunniteltava uudelleen.
Vaihe 6: 3D -tulostus
Akkukotelo ja silta, joka yhdistää ESP32-CAM-veroboardin pistematriisikokoonpanoon, suunniteltiin ja tulostettiin 3D-muodossa.
Paristokotelossa on kaksi osaa, jotka on liimattava yhteen tulostuksen jälkeen, jotta akulle muodostuu "tasku". Silta on vain puhdistettava kaikista tukirakenteista (valitettavasti ei ole olemassa hyvää suuntaa, joka minimoi ne). STL -tiedostot ovat GitHubissa ja TinkerCad -alkuperäiset ovat täällä.
TinkerCadin 3D -suunnittelu sisältää myös simuloidun kokoonpanokaavion osien sopimisesta toisiinsa ja niiden yhdistämisestä.
Vaihe 7: Ohjelmointi
Moniajoa
Tämä malli käyttää FreeRTOSia ennakoivaan moniajoon ja TaskScheduler -kirjastoa yhteistyöhön. Miekan käyttäytymistä ja viestejä ohjataan Blynk-sovelluksella. Asennuksen jälkeen (nastat, kameran ja pistematriisin alustus, WiFi-yhteys jne.) Luodaan kaksi RTOS-päätehtävää:
- Videon suoratoisto -RTOS -tehtävä, kiinnitetty ESP32 -sovelluksen ytimeen (ydin 1)
- Tekstinäyttö ja Blynk-ohjauksen RTOS-tehtävä, joka on kiinnitetty ESP32: n virtalähteeseen (ydin 0), joka vastaa myös kaikista WiFi-tehtävistä. Tekstiin ja Blynkiin liittyvää suoritusta hallitaan TaskScheduler -tehtävien avulla.
Huomasin, että 4K -pinotilaa riittää RTOS -tehtäviin, mutta pino voi loppua, joten jos haluat, tee siitä 8K - ESP32: ssa on paljon RAM -muistia.
Kaikki videoiden sieppaus ja suoratoisto tapahtuu Core 1: ssä. Kaikki muu - Core 0: ssa.
ESP32: lla on tarpeeksi tehoa käsitellä kaikki tämä murtamalla hieman hikeä (levy kuumenee videon suoratoiston aikana).
TÄMÄ oli hankkeen päätavoite: ennakoivan ja yhteistyöhaluisen moniajon rauhanomainen ja tuottava rinnakkaiselo!
Vaihe 8: Dot Matrix Control
Käytän erittäin tehokkaita MD_Parola- ja MD_MAX72xx -kirjastoja, jotka ovat saatavilla myös Arduino IDE -kirjastonhallinnassa.
Kaikki tekstin erikoistehosteet tehdään näiden kirjastojen kautta. Oikean MAX72XX -laitteistotyypin (MD_MAX72XX:: ICSTATION_HW, omasi voi olla erilainen) määrittäminen vaati hieman vaivaa, sen jälkeen tekstin hallinta on helppoa.
Miekka mahdollistaa seuraavat säätimet:
- Kirkkaus
- Vilkkuu
- Salama
- Selausnopeus ja suunta (ylös/alas, vasen/oikea, tasainen)
- Voit myös muuttaa sen seinäkelloksi
Vaihe 9: Videon suoratoisto
Blynk -sovelluksessa on pieni widget videon suoratoistoon, mutta voit suoratoistaa selaimeen, VLC -soittimeen tai mihin tahansa, joka tukee MJPEG -standardia.
Jopa 10 yhdistettyä asiakasta tuetaan.
Sinun on selvitettävä ESP32-CAM-laitteen IP-osoite, jotta voit muodostaa yhteyden siihen. Voit etsiä sen reitittimeltäsi tai koota tämän luonnoksen, jossa _DEBUG_ -vaihtoehto on ensin käytössä, ja lukea päätelaitteen IP -osoite, kun se muodostaa yhteyden verkkoon.
TÄRKEÄÄ: On erittäin suositeltavaa antaa pysyvä IP-osoite tai luoda DHCP-varaus ESP32-CAM-moduulille, jotta sen osoite ei muutu vuokrasopimuksen päättyessä. Voit myös muokata Blynk -sovellusta päivittämään streamin URL -osoitteen IP -osoitteen - mielenkiintoinen kotitehtävä, jos olet valmis siihen.
Nykyinen luonnos käyttää QVGA -tarkkuutta: 320x240 pikseliä, mikä tekee siitä melko nopean. Voit vapaasti leikkiä muiden päätöslauselmien kanssa ja päättää, mikä toimii sinulle.
RAM -muistin ei pitäisi olla ongelma, koska luonnos hyödyntää PSRAM -muistia.
Vaihe 10: Määritykset
Luonnos hyödyntää Dictionary- ja EspBootstrap -kirjastojani ladatakseen kokoonpanoparametrit kokoonpanopalvelimelta käynnistyksen yhteydessä.
Käytän omaa määrityspalvelinta, jonka voit tehdä sinäkin (se on yksinkertainen Apache2 -verkkopalvelin, joka todella palvelee vain JSON -tiedostoja).
Voit myös käyttää mitä tahansa tehtävään käytettävissä olevia online -palveluita: (OTADrive, Microsoft Azure, AWS IoT jne.). Muuta tässä tapauksessa String makeConfig (merkkijonopolku) -menetelmää luodaksesi oikein määrityslähteeseesi osoittavan URL -osoitteen. Vaihtoehtoisesti voit tallentaa määritystiedoston SPIFFS-tiedostojärjestelmään ESP32-CAM-laitteessa ja lukea sen sieltä tai koodata kaikki merkinnät. Katso vaihtoehdot EspBootstrap -kirjaston README -ohjelmasta.
Esimerkki määritystiedostosta on GitHubissa.
Jos haluat koodata parametrit kovalla koodilla, alla on esimerkki:
pd ("Otsikko", "DND Sword Setup");
pd ("ssid", "wifi ssid"); pd ("salasana", "wifi -salasanasi"); pd ("msg", "Hei!"); pd ("laitteet", "8"); pd ("blynk_auth", "sinun blynk AUTH UUID"); // jos käytät vain omaa palvelinta: pd ("blynk_host", "blynk -palvelimesi IP"); pd ("blynk_port", "palvelinporttisi");
Vaihe 11: OTA -laiteohjelmistopäivitykset
Luonnoksessa on myös OTA (Over The Air) -laiteohjelmistopäivitys käytössä ja se tarkistaa uusia laiteohjelmistoja jokaisen käynnistyksen yhteydessä.
Käytän jälleen omaa OTA -päivityspalvelinta, jonka voit myös tehdä (se on yksinkertainen Apache2 -verkkopalvelin, jossa on vähän PHP -skriptejä, jotka palvelevat binääritiedostoja).
Voit myös käyttää mitä tahansa tehtävään saatavilla olevaa online -IoT -palvelua: (OTADrive, Microsoft Azure, AWS IoT jne.). Muuta tässä tapauksessa void checkOTA () -menetelmää siten, että se muodostaa päivitys -URL -osoitteen, joka osoittaa binääritiedostolähteeseesi.
Tämä on valinnaista - voit halutessasi ladata vain binääritiedostot sarjayhteyden kautta.
Vaihe 12: MJPEG -palvelin
Tämä aihe on kuvattu yksityiskohtaisesti täällä.
Vaihe 13: Blynk -sovellus
Blynk on pilvipohjainen IoT-alusta, joka mahdollistaa nopean sovellusten kehittämisen. Se on ilmainen henkilökohtaiseen käyttöön ja sillä on jopa mahdollisuus käyttää omaa Blynk -palvelinta.
Minulla (kuten olet ehkä jo arvannut) on oma Blynk -palvelin, mutta pilviversion käyttö voi olla sinulle helpompaa. Asenna Blynk iOS- tai Android -sovellus ja rekonstruoi sovellus puhelimeesi noudattamalla alla olevia kuvia.
Sinun on annettava oma Blynk Auth UUID, jotta sovellus toimii sovelluksesi kanssa. Siksi käytän määritystiedostoja. Kuitenkin kertaluonteisessa projektissa kovakoodattu arvo toimisi yhtä hyvin.
TÄRKEÄÄ: Varmista, että Blynk -projektisi on asetettu ilmoittamaan laitteille, kun sovellus on yhdistetty.
HUOMAUTUS videon suoratoisto -widgetistä: joskus video ei käynnisty. Se ei näytä olevan ongelma ESP32: n kanssa, pikemminkin Blynk -sovelluksen video -widgetin kanssa. Kokeile sulkea ja avata sovellus uudelleen tai pysäyttää/käynnistää projekti uudelleen. Lopulta se alkaa. Tätä ongelmaa ei näytä olevan selaimessa tai esimerkiksi VLC -soittimessa.
Vaihe 14: Nauti
Oli erittäin hauskaa rakentaa tämä ja todistaa, että postimerkin kokoinen laite, kuten ESP32, voi tehdä paljon enemmän kuin vain suoratoistaa videota. Monet tämän projektin käsitteet voitaisiin käyttää uudelleen muissa sovelluksissa.
Vaihe 15: Kirjastot ja koodi
Kirjastot:
- Blynk -palvelin
- EspBootstrap -kirjasto
- TaskScheduler -kirjasto
- Sanakirjasto
- LED -matriisikirjasto
- Kirjasto modulaarisille vierittäville LED -matriisin tekstinäytöille
Varsinainen arkisto:
Interaktiivinen Minecraft Älä anna miekkaa/merkkiä (ESP32-CAM)
Suositeltava:
Rakenna interaktiivinen Rainbow -silta Minecraft Raspberry Pi Editionin avulla: 11 vaihetta
Rakenna Rainbow Interactive Bridge -sovellus Minecraftin Raspberry Pi Editionin avulla: Eilen näin 8-vuotiaan veljenpoikani leikkivän Minecraftia aiemmin antamani Raspberry Pi -pelin kanssa, ja sitten sain idean, joka käyttää koodia räätälöidyn ja jännittävän Minecraftin luomiseen- pi LED -lohkojen projekti. Minecraft Pi on loistava tapa aloittaa
Arduino -maaperän kosteudenvalvontatikku - älä koskaan unohda kastella kasvejasi: 4 vaihetta (kuvilla)
Arduino -maaperän kosteudenvalvontatikku - älä koskaan unohda kasvien kastelua: Unohdatko usein kastella sisäkasvejasi? Tai ehkä annat heille liikaa huomiota ja kastat heitä? Jos teet niin, sinun pitäisi tehdä itsellesi akkukäyttöinen maaperän kosteuden tarkkailutikku. Tämä näyttö käyttää kapasitiivista maaperän kosteutta
BEND_it: Älä stressaa vain "BEND_it" ulos: 8 vaihetta (kuvilla)
BEND_it: Älä stressaa vain "BEND_it" Out: JOHDANTOBEND_it on pienimuotoinen pikatestauslaite. Se on hyvä taivuttamaan ja rikkomaan asioita. Siitä voi myös olla välillä hyötyä. Se voisi auttaa noutamaan tietoja, kuten: Vaakasuora työntövoima kaarevista toiminnoista johtuen
Näytön kiinnittäminen leipäkoneella: AKA Älä heitä sitä ulos!: 5 vaihetta (kuvilla)
Näytön kiinnittäminen leipäkoneella: AKA Älä heitä sitä ulos !: Paikallisesti Victoria, BC: ssä meillä on kaveri, joka ottaa käytöstä poistetut mutta käyttökelpoiset IT -laitteet ja välittää ne takaisin yhteisölle ilmaiseksi. Hänen pyrkimyksensä on pitää käytetty elektroniikka poissa kaatopaikoilta ja auttaa ihmisiä ulos, mikä on fantastista. Otin vastaan
Älä koskaan anna PIN -koodiasi vastaajaasi: 3 vaihetta
Älä koskaan kirjoita PIN -koodiasi vastaajaasi: Oletko kyllästynyt siihen, että sinun on syötettävä vastaajasi joka kerta, kun tarkistat vastaajasi. Olen siis löytänyt temppun siihen