Turinys:
- 1 žingsnis: visos dalys
- 2 žingsnis: Kaip prijungti dalis prie „Arduino“
- 3 žingsnis: programos schema
- 4 žingsnis: vairasvirtės programavimas
- 5 žingsnis: Pirmasis lygis
- 6 žingsnis: susidūrimo aptikimas
- 7 žingsnis: Paskutiniai du lygiai
Video: Sunkiausio pasaulio žaidimo atkūrimas „Arduino“: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Šis projektas pagrįstas kompiuteriniu žaidimu, kurį galite rasti internete. Jo pavadinimas yra „Sunkiausias pasaulio žaidimas“. Man pavyko jį iš naujo sukurti „Arduino“naudojant keturių modulių LED matricą. Šioje pamokoje aš mokysiu jus, kaip tai sukurti patys. Prieš įsitraukdami į per daug detalių, noriu trumpai apžvelgti žingsnius, kuriuos nuėjau kurdama šį žaidimą.
- Surinkau visas reikalingas dalis.
- Aš sujungiau dalis.
- Parašiau eskizą, kuris naudojo vairasvirtę, norėdamas perkelti žaidėjų šviesos diodus per visus modulius.
- Aš suprojektavau pirmąsias kliūtis ir įtraukiau jas į eskizą, kad jos imituotų sunkiausią pasaulio žaidimą.
- Tada pridėjau kodą, kad aptikčiau susidūrimą su kliūtimis, o tai iš naujo paleis žaidimą.
- Ir tada aš sukūriau dar du kliūčių lygius.
1 žingsnis: visos dalys
Čia yra visų jums reikalingų dalių sąrašas:
- „Arduino UNO“ir USB jungtis:
- Keturių modulių 8x8: LED matrica
- Joystick:
- 10 laidų nuo patelių iki moterų:
2 žingsnis: Kaip prijungti dalis prie „Arduino“
Kaip prijungti LED matricą prie „Arduino“
- GND eina į GND
- VCC pereina prie 5 V.
- „DataIn“pereina prie skaitmeninio kaiščio 12
- CLK pereina prie skaitmeninio kaiščio 11
- CS arba LOAD pereina prie skaitmeninio kaiščio 10
Kaip prijungti vairasvirtę
- GND eina į GND
- 5V pereina prie 5V
- VRx pereina prie analoginio kaiščio A0
- VRy pereina prie analoginio kaiščio A1
- SW nenaudojamas
Akumuliatorius prijungiamas prie 9 V lizdo, kad suteiktų „Arduino“energijos
3 žingsnis: programos schema
Ovalas rodo programos pradžią.
Pirmasis žingsnis yra apibrėžti visas kliūtis.
Kiti du veiksmai nurodo kintamųjų nustatymą ir visų modulių įjungimą.
Kitas žingsnis yra nustatyti šviesos diodus į pirmąjį lygį ir visus kitus kintamuosius.
Toliau parodykite lygį, kuriuo šiuo metu veikia grotuvas.
Romboje nurodoma, kad skaitote vairasvirtę, kad pamatytumėte, kokia kryptimi jis stumiamas.
Tada pastumkite grotuvą bet kuria kryptimi, kuria buvo paspausta vairasvirtė.
Patikrinkite ir ar žaidėjas nesusidūrė su kliūtimi.
Jei žaidėjas pataiko kliūtį, grįžkite į pirmąjį lygį. Jei ne, patikrinkite, ar žaidėjas pasiekė lygio pabaigą.
Jei žaidėjas yra lygio pabaigoje, nustatykite kitą lygį, tada grįžkite į „Rodyti dabartinį lygį“. Jei jie nėra pabaigoje, perkelkite kliūtis ir grįžkite į „Skaityti vairasvirtę“.
4 žingsnis: vairasvirtės programavimas
Žinoma, norėdami perkelti mažą tašką, kuris yra grotuvas, mums reikia vairasvirtės. ir norėdami leisti vairasvirtei iš tikrųjų perkelti grotuvą, turime jį koduoti „Arduino IDE“. Turite įtraukti „LedControl“biblioteką, kurią rasite eidami į eskizų meniu> Įtraukti bibliotekas> tvarkyti bibliotekas ir ieškodami „LedControl“. Štai kaip atrodo vairasvirtės kodas.
#include "LedControl.h"
int DataIn = 12; int CLK = 11; int DIN = 10; LedControl lc = LedControl (DataIn, CLK, DIN, 4); // Sukuria objektą keturiems moduliams int delaytime = 50; // žaidimo greitis int joystick_RtLt, joystick_UpDn; int žaidėjai_x = 0; // žaidėjų horizontali padėtis nuo 0 iki 31 int player_y = 3; // žaidėjų vertikali padėtis nuo 0 iki 7 int eilutė, stulpelis, modulis; void setup () {initialize_modules (); // įjungti ir nustatyti visus keturis LED modulius} void loop () {move_player (); // pradėti ciklą tikrinant, ar žaidėjas juda delčia (delaytime); } void initialize_modules () {lc.shutdown (0, false); // paleidžia modulį 0 lc.setIntensity (0, 1); lc. išjungimas (1, klaidingas); // paleidžia 1 modulį lc.setIntensity (1, 1); lc.išjungimas (2, klaidingas); // paleidžia 2 modulį lc.setIntensity (2, 1); lc. išjungimas (3, klaidingas); // paleidžia 3 modulį lc.setIntensity (3, 1); lc.clearDisplay (0); // išvalo modulį 0} void move_player () {modulis = žaidėjai_x/8; // apibrėžia, kuriame modulyje žaidėjas yra stulpelyje = players_x%8; // apibrėžia stulpelį, kuriame žaidėjas yra modulio eilutėje = players_y; lc.setLed (modulis, eilutė, stulpelis, klaidinga); // išjungti šviesos diodą dabartinėje žaidėjo padėtyje vairasvirtė_RtLt = analogRead (A0)/204 - 2; // skaityti X kreiptuką ir žemėlapio diapazoną nuo 2 iki -2, jei (vairasvirtė_RtLt> 0) // kai vairasvirtė yra į dešinę žaidėjų_x ++; // eik į dešinę, jei (vairasvirtė_RtLt 0) // jei vairasvirtė yra kairėje, o ne pradžioje player_x--; // perkelti į kairę vairasvirtę_UpDn = analogRead (A1)/204 - 2; // skaityti Y kreiptuką ir žemėlapio diapazoną nuo 2 iki -2, jei (vairasvirtė_UpDn 0) // jei vairasvirtė nuleista ir žaidėjas nėra apačioje žaidėjai_y--; // judėti žemyn kitaip if (vairasvirtė_UpDn> 0 && player_y <7) // jei vairasvirtė pakelta ir žaidėjas nėra aukščiausio lygio žaidėjų_y ++; // eiti aukštyn modulis = player_x/8; // nustatyti modulį žaidėjams naujos pozicijos stulpelis = žaidėjai_x%8; // nustatyti stulpelį žaidėjams nauja pozicija eilutė = žaidėjai_y; // nustatyti eilutę žaidėjams nauja pozicija lc.setLed (modulis, eilutė, stulpelis, tiesa); // įjungti diodą naujoje žaidėjo pozicijoje}
Dabar, kai pridėjote vairasvirtę, pradėkime dirbti su pirmąja kliūtimi!
5 žingsnis: Pirmasis lygis
Gerai, taigi dabar atėjo laikas įsitraukti į pagrindinę programos dalį, kliūtis! Kliūtys yra tai, kas iš tikrųjų daro tai „Sunkiausiu pasaulio žaidimu“. Taigi, jei norite iš tikrųjų žaisti žaidimą, turite jį pridėti prie savo kodo:
baitų kliūtis [LEVELS] [SCENES] [COLUMNS] [ROWS] = {// trys lygiai, 8 scenos, 8 kolos, 8 eilutės
{{{1, 1, 1, 1, 1, 1, 0, 0}, // pirmasis lygis, pirmoji scena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1}, { 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // pirmasis lygis, antra scena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 1, 1, 1, 1 }, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // pirmasis lygis, trečias scena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // pirmasis lygis, ketvirtoji scena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // pirmasis lygis, penkta scena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 0, 0, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // pirmasis lygis, šešta scena {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, { 1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 1, 1, 1, 1, 1, 1}, // pirmasis lygis, septintoji scena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0 }, {1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 1, 1, 1, 1, 1, 1, 1, 1}, // pirmasis lygis, aštuntas scena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}}, void setup () {initialize_modules (); // įjungti ir nustatyti visus keturis led modulius start_level (0); void loop () {move_player (); // pradėti ciklą tikrinant, ar žaidėjas juda, jei (kolizija ()) {// patikrinti susidūrimo lygį = 0; // jei susidūrimas tikras, iš naujo nustatykite lygį start_level (level); // iš naujo paleisti žaidimą} else if (delay_count == kliūties delsimas) {// jei nėra susidūrimo judėti kliūtis kas kitas delsa moveobstacle (); delay_count = 0; } else delay_count ++; vėlavimas (vėlavimo laikas); // atidėti žaidimo greitį}
Ir tai yra pirmoji kliūtis! Jei jums nuobodu tai kaip pirmasis lygis, visada galite pakeisti baitus, tiesiog atminkite, kad turite turėti aštuonias skirtingas scenas! Tęskime kitą žingsnį - susidūrimo aptikimą!
6 žingsnis: susidūrimo aptikimas
Šis žingsnis yra dar viena svarbi žaidimo dalis, be jo nebūtų didelių iššūkių! galite tiesiog įveikti kliūtis be jokių pasekmių! ar tai nebūtų labai smagu? todėl padarykime žaidimą sudėtingesnį (ir daug įdomesnį!) pridėdami šią programos skiltį:
void loop () {
„move_player“(); // pradėti ciklą tikrinant, ar žaidėjas juda, jei (kolizija ()) {// patikrinti susidūrimo lygį = 0; // jei susidūrimas tikras, iš naujo nustatykite lygį start_level (level); // iš naujo paleisti žaidimą} else if (delay_count == kliūties delsimas) {// jei nėra susidūrimo judėti kliūtis kas kitas delsa moveobstacle (); delay_count = 0; } else delay_count ++; vėlavimas (vėlavimo laikas); // uždelsimas pagal žaidimo greitį} int collision () {// patikrinkite, ar žaidėjas scenos modulyje nepataikė į kliūtį = players_x/8; stulpelis = žaidėjai_x%8; eilutė = žaidėjai_y; if (modulis> 0) if (kliūtis [lygis] [scena] [stulpelis] [eilutė] == 1) // jei žaidėjo padėtis tokia pati kaip ir kliūčių grįžimas (1); // aptiktas susidūrimas return true return (0); // no collision return false}
Ir štai! dabar galite mėgautis žaidimu daug daugiau! Dabar aš jums parodysiu, kaip užprogramuoti paskutinius du žaidimo lygius! jūs beveik baigėte šią pamoką ir esu tikras, kad esate pasirengęs tai išbandyti!
7 žingsnis: Paskutiniai du lygiai
Pasibaigus instrukcijai, šie du paskutiniai lygiai yra viskas, ko jums reikia norint užbaigti šį žaidimą. Tada galite tai išbandyti patys! čia yra kodas:
baitų kliūtis [LEVELS] [SCENES] [COLUMNS] [ROWS] = {// antras ir trečias lygis, 8 scenos, 8 stulpeliai, 8 eilutės
{{{1, 0, 0, 0, 0, 0, 0, 1}, // antras lygis, pirmoji scena {0, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, { 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 0, 0, 1}}, {{1, 1, 0, 0, 0, 0, 0, 1}, // antras lygis, antra scena {0, 0, 1, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0 }, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 0, 0, 0, 1, 1}}, {{0, 1, 0, 0, 0, 0, 0, 0}, // antras lygis, trečioji scena {0, 0, 1, 1, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 0}}, {{0, 0, 1, 0, 0, 0, 0, 0}, // antro lygio ketvirtoji scena {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {0, 1, 1, 1, 1, 0, 1, 0}, {0, 1, 0, 1, 1, 1, 1, 0}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}}, {{0, 0, 0, 1, 0, 0, 0, 0}, // antras lygis, penktas scena {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 1, 1, 0, 0, 1}, {1, 0, 0, 1, 1, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // antras lygis, šešta scena {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 1, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1}, {0, 0, 1, 0, 0, 1, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 1, 0, 0}, // antrasis lygis, septintoji scena {0, 0, 0, 0, 0, 1, 0, 0}, {1, 1, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 1, 1}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 1, 0}, // antrojo lygio aštuntoji scena {1, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 1}, {0, 1, 0, 0, 0, 0, 0, 0, 0}}}, {{{0, 1, 0, 0, 0, 0, 0, 1}, // trečias lygis, pirmoji scena {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 0} }, {{0, 0, 0, 0, 1, 0, 0, 1}, // trečias lygis, antroji scena {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // trečias lygis, trečioji scena {0, 0, 0, 1, 0, 0, 1, 0}, { 0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // trečias lygis, ketvirtoji scena {1, 0, 0, 1, 0, 0, 1, 0 }, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // trečias lygis, penktoji scena {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // trečias lygis, šešta scena {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // trečias lygis, septintoji scena {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // trečias lygis, aštuntoji scena { 1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}}};
Štai ir viskas! esate pasiruošę užbaigti sunkiausią pasaulio žaidimą. Taip pat visas „Arduino“kodas pridedamas žemiau.
Rekomenduojamas:
Pasaulio valdymas naudojant „Google AIY“: 8 žingsniai
Pasaulio valdymas naudojant „Google AIY“: „Google AIY Projects Voice“rinkinys buvo nemokamas kartu su „The MagPi“2017 m. Gegužės mėnesio spausdinimo leidimu, o dabar jį taip pat galite įsigyti iš daugelio elektronikos tiekėjų. Ką sužinosite, kaip prijungti šviesos diodą prie „AIY Voice“Rinkinys Kaip išgauti informaciją iš balso
„Tikrojo pasaulio“šviesa: 7 žingsniai
„Tikro pasaulio“šviesa: visa tai pagaminta iš magnetinių LED geležies miltelių ir chemijos buteliuko. Reiškia, pasaulis yra mokslas be magijos. Butelio viduje.žemis ir dangus.Šviesos meniu keičia šviesią žmogaus civilizaciją, taip pat reiškia cheminę
Saugiai pasiekite savo „Pi“iš bet kurios pasaulio vietos: 7 žingsniai
Saugiai pasiekite savo „Pi“iš bet kurios pasaulio vietos: turiu mažai programų, veikiančių visą parą „Pi“. Kai išėjau iš namų, pasidarė labai sunku patikrinti Pi sveikatą ir būklę. Vėliau įveikiau nedidelę kliūtį naudodamas ngrok. Prieiga prie įrenginio iš išorės suteikia
Valdykite savo namus balsu iš bet kurios pasaulio vietos: 5 žingsniai
Valdykite savo namus balsu iš bet kurios pasaulio vietos: … nebėra mokslinės fantastikos … Naudojant šiandien prieinamą aparatinę ir programinę įrangą, ši instrukcija parodys, kaip galima valdyti daugumą jūsų namų sistemų balsu valdant balsą, išmanųjį telefoną, planšetinį kompiuterį ir (arba) kompiuterį iš bet kurios vietos
Pigūs išmanieji namai - valdymas iš bet kurios pasaulio vietos: 6 žingsniai
Nebrangūs išmanieji namai - valdymas iš bet kurios pasaulio vietos: apie .Šiais laikais abu tėvai stengiasi, kad šeimai būtų patogus gyvenimas. Taigi mūsų namuose yra daug elektronikos prietaisų, tokių kaip šildytuvas, kintamosios srovės, skalbimo mašina ir kt. Grįžę į namus jie turėtų jaustis labai patogiai