KiQ vicc macska avagy hogyan készítettünk beszélő játékot felnőtteknek. Hogyan készítsünk beszélő kutyát BLE-szolgáltatások nRF51822 és iOS alkalmazáson

A meglévő játékok között különleges helyet foglalnak el azok, amelyek képesek beszélni és reagálni az érintésre. Az ilyen játékokat interaktívnak nevezik.

BAN BEN Utóbbi időben A lányok és fiúk körében a legnépszerűbb az interaktív madár, a Little Live Pets. Ez a játék csodálatos ajándék lesz annak a gyermeknek, aki egy kisállatról álmodik.

Az interaktív játékok jellemzői

A játékok beszélni tudnak egy speciális eszköznek köszönhetően, amely a játék testébe van felszerelve. Ezek a blokkok funkciójukban különböznek:

  • A legegyszerűbb mechanizmus az egyszer írható hangmodul. A játékidő 1-6,5 perc lehet;
  • a kifinomultabb eszközök lehetővé teszik dallamok vagy kifejezések újrafelvételét. Az ilyen rendszerekkel rendelkező interaktív játékok megtanulnak beszélni a gyermekkel, folyamatosan növekszik szókincs. Felvehetsz meséket vagy dalokat is, amelyeket édesanyád vagy más rokonod ad elő;
  • Vannak olyan rendszerek, amelyek nem a hangegység gombjának megnyomásával, hanem hanggal vagy érintéssel aktiválhatók különböző részek játékok.

Például egy interaktív baba nevetni kezd, ha megérinti az arcát, és ha kézen fogod, beszélni kezd.

Gyermekek különböző korúak szeretik a beszélő játékokat. A velük való játék során a gyerekek megtanulnak kommunikálni, új ismeretekre és egyéb készségekre tesznek szert. Az interaktív játékok egyetlen hátránya a költségük. Minél több funkciót lát el egy ilyen játék, annál magasabb az ára.

Saját játék készítése

Ha szeretne gyermeke kedvében járni egy beszélő játékkal, elkészítheti saját maga is.

A rádióelektronikában jártas személy otthon is összeállíthat programozható hangmodult. De ez nem különösebben szükséges, ma az ilyen blokkokat az interneten vagy egy speciális üzletben lehet megvásárolni.

A beszélő játék elkészítésének folyamata így néz ki:

  1. Kiválasztunk egy játékot. Lehet boltban vásárolni vagy önállóan is elkészíteni. A kézzel készített textiljátékok ma nagyon népszerűek.
  2. Vásárolunk egy zenei modult és felveszünk rá dallamot, szöveget vagy mesét. Bármilyen régi játékból is vehet hangmodult, csak ellenőrizze, hogy az elemek megfelelően működnek-e.
  3. A varratot a blokk felszerelési helyén tépjük fel.
  4. A modult a játék belsejében helyezzük el, és fontos odafigyelni a gombra, annak megnyomására hozzáférhetőnek kell lennie.

Ezek után nem kell mást tenni, mint csendesen felvarrni a varrást, és ennyi - a játék beszélővé vált.

Ez a videó segít megtanulni, hogyan készítsünk beszélő játékot:

Hihetetlenül sok beszélő játék van gyerekeknek a világon, és ez csak elmélyíti azt a benyomást, hogy a felnőttek unatkoznak. Csapatunk úgy döntött, hogy javítja ezt a helyzetet.

A történet kezdete

Az egész úgy kezdődött, hogy egyik barátom és hálócsiga kollégám érdeklődő fejében egy fényes gondolat támadt: miért ne szórakoztathatnánk tematikus poénokkal nemcsak a gyerekeket, hanem a felnőtteket is? Szerencsére ma már nem ritkaság a megfizethető és jól bevált hardver, amely nemcsak villogni tud, hanem dalokat is énekel.

Ezzel kapcsolatban felhívott, és felajánlotta, hogy megismételjük az epikus bravúrt, hátha az ESP8266 jól játssza-e a zenét MP3 formátumban a hálózaton keresztül, és hogy darabokra tépi-e a hörcsögöt, valóban elég a teljesítmény, amit gyorsan meg is tettem. újévi ünnepek 2016:


A videóban az ESP8266 internetes rádiót játszik le, és a hangot az „5-bit PWM over I2S” hack segítségével adja ki.

Az MP3-rádió internetről való lejátszása azonban felemésztette az ESP8266 szinte teljes erőforrását, és „úgy-úgy” hangzott, miközben a képzeletünk már többet képzelt el, mint egy MP3 rádió hangszórója. Ezekkel a kreatív impulzusokkal elmentünk csapatunkhoz és szeretett séfünkhöz, Vladimirhoz.

Kis eszmefuttatás után egy részletesebb kép kezdett kirajzolódni, sőt logikai lánc amit nem csak akarunk, de meg is tudunk tenni:

  • Ahhoz, hogy az MP3-at kevésbé erőforrásigényesre és ingyenesebbre cseréljük, a Speex mellett döntöttünk, amely flexxnn meglehetősen sikeresen és gyorsan átkerült az ESP8266-ra.
  • Vegye ki a viccek felvételeit egy szerverről a felhőben, és tárolja őket helyben egy SD-kártyán, mert... Az internet nem mindenhol elérhető, és még az ESP8266-on sem lesz elég akkumulátor, ha folyamatosan bekapcsolva tartja.
  • Kösd a „humorvicceket” bizonyos eseményekhez, és ne csak véletlenszerűen beszélgess. Eseménygenerátornak egy okostelefont választottak, hiszen szinte mindenkinek van már. Nos, a tényleges események könnyen átvehetők az Apple Notification Center Service (ANCS) szolgáltatásból, amely már elérhető iPodon, iPhone-on és iPaden.
  • Használja a Bluetooth Low Energy (BLE) funkciót az okostelefonnal való kommunikációhoz, mert kevesen fogják élvezni, ha hetente többször töltenek egy játékot.
  • Annak elkerülése érdekében, hogy a játék bosszantsa a felhasználót az összes bejövő eseménnyel kapcsolatos gyakori viccekkel, úgy döntöttünk, hogy a logikát egy szkriptnyelven használjuk. A Pawn nyelv mellett döntöttünk.
  • Mivel mindenkinek más az ízlése a viccek iránt, és ugyanazt a viccet hallgatni már szomorú, úgy döntöttek, hogy lehetőséget adunk a felhasználónak, hogy „pofozással” és „veréssel” (gyorsulásmérővel) szavazzon a viccekre, így a tartalomszerveren a következő amikor relevánsabb lejátszási listát tudnak generálni.

Hardver kiválasztása

Kezdetben egy nagyon egyszerű, de teljesen működő prototípust akartam készíteni egy all-in-one táblán, ezért úgy döntöttünk, hogy kipróbáljuk a MediaTek LinkIt ONE-ján. Netsnailnek pedig szinte azonnal sikerült. Megvolt a kapcsolat a telefonnal, és az SD kártyáról származó MP3-akat tökéletesen lejátszották.
Úgy tűnik, ez a boldogság és egy kész platform! De aztán szembesültünk a zárt SDK-juk korlátainak rideg valóságával, és az eufória elmúlt.

Rájöttünk, hogy egyetlen táblán nincs olyan kész platform, amely minden kívánságunkat kielégítené, ezért azt a semmiből kell létrehoznunk.

Tehát ki kellett választanunk (2016 februárjában) a legmegfelelőbb BLE chipet, amelyet az ESP8266-hoz kellett társítani. Úgy döntöttünk, hogy szabványos TWI-t (I2C) használunk összeköttetésként az ESP8266 és a BLE chip között (akkor még nem tudtuk, hogy milyen chip lesz).

De a BLE-vel akkoriban nem volt sok választás:

  • TI CC2541 - valahogy nem tetszett azonnal az architektúra miatt, és a 8 KB RAM kilátástalannak tűnt könnyű élet, tekintettel arra, hogy hány BLE szolgáltatást és jellemzőt igényeltünk a játékban.
  • BCM20732 - nagyon ígéretesnek tűnt, de a valóságban az SDK nagyon nyersnek bizonyult, a Broadcom WICED Smart BLE hardver pedig annyira bugos, hogy nem írok ide semmi különöset, nehogy káromkodjak. Szóljon, ha a helyzet most javult.
  • Az nRF52832 az első chip, amely azonnal megtetszett. De akkor még nem volt kompakt BLE modul - a rekod elkezdett prototípust készíteni egy hibakereső táblán, az SDK nagyon tetszett, sokféle volt benne dolgozók példák. A BLE ANCS példa azonnal elindult, és azonnal láttuk az iPhone értesítéseit az UART naplókban. Egyébként ezen a hibakereső táblán van egy igazi SEGGER J-Link programozó és hibakereső, ami jelentősen megkönnyítette az életünket a jövőben.
  • nRF51822 - akkoriban voltak kész modulok, és SEGGER-en keresztül programozták őket az nRF52832-ről. A legjobban az lepett meg, hogy a régebbi nRF52832 modell kódja tökéletesen átkerült a fiatalabb nRF51822-be és vissza!
Ennek eredményeként az első vas úgy nézett ki, mint egy tarantula pók, valahogy így:

A dupont kábelek leesése miatti akadozások, különösen az nRF51822 modulon, ahol a tűk enyhén kisebb méretű, nagyon szomorú volt.

BLE szolgáltatások nRF51822 és iOS alkalmazáson

Mindazonáltal Affair és én már elkezdtük a BLE szolgáltatások és jellemzők megvalósítását az nRF51822-n ezen a pók hardveren, mindent körülbelül felére osztva:
  • Apple Notification Center Service (ANCS) – az eseményekről szóló értesítések fogadása okostelefonjáról.
  • Apple Current Time Service (CTS) – csatlakoztatva a játék időt vesz igénybe a telefontól.
  • Handshake Service (HSS) - ez a szolgáltatás egyébként "áthatolhatatlanná" teszi a játékot, ellentétben a hagyományos fejhallgatókkal és hasonló eszközökkel. Az tény, hogy a felhő rendelkezik ClientID-vel, és a felhasználó nem csak a telefont és a játékot párosítja Bluetooth-on keresztül, hanem egy további kötést is, amelyet nem olyan egyszerű visszaállítani. Ennek a folyamatnak a leírásához külön cikkre van szükség, ezért egy rövid említésre szorítkozom.
  • Battery As Service (BAS) – az akkumulátor állapotának átvitele okostelefon-alkalmazásba.
  • Tartalomszolgáltatás (CONTS) - ezzel láthatja a korábban lejátszott viccek listáját, szöveggel (a szöveget a felhőben lévő szerverről veszik).
  • Beállítások szolgáltatás (SETTS) - ezzel beállíthatja a szűrőket a nem megfelelő vicctartalomra, a játék csendjének időpontját (például éjszaka) stb.
MaximKit csinált ugyanabban az időben alkalmazás iOS-re.

A jobb oldali képen az alkalmazás főképernyője látható.

Itt flexxnn nem bírta elviselni szenvedéseinket a leszakadt vezetékek miatt, és elkészítette otthon az első normál prototípust lézervas módszerrel:

A képen nem látszik, de már van egy nyílás a microSD kártya számára. Az alábbi kis négyzet alakú kártyán - ALC5627 - a hang már sokkal jobb volt, mint az 5 bites PWM I2S-en keresztül.

Az energiagazdálkodáshoz az AXP209-et választottuk. Lehetővé teszi az akkumulátor egyidejű töltését és használatát, valamint állapotának figyelését. A chip nagyon elterjedt, de számos sajátossága van mind a programozásban, mind a szükséges követelményekben külső alkatrészek, ún "hám".

Magic az ESP8266-on

Ezzel párhuzamosan a flexxnn a Speex-et, a FatF-eket ESP8266-ra portolta, az ESP8266-hoz és az nRF51822-höz bootloadert készített, hogy ne kelljen vezetéken keresztül flashelni a frissített firmware-t, hanem a firmware fájlokat ráhelyezve. microSD kártya.

Személy szerint nekem úgy tűnik, hogy az idegenek segítettek neki, mivel nagyjából egy hónap alatt tette mindezt. De nem ismeri el, hogy kapcsolatba került volna az idegen hírszerzéssel.

És akkor a második, normálisabb prototípus:

De a normálisabb prototípus már nem fért bele egy puha játékba. És még ha be is került, akkor egy hirtelen mozdulattal egy „idegen” mászott ki a játékból a potenciális felhasználóra, ami persze egy MVP-nél elfogadhatatlan volt.

Ezért úgy döntöttek, hogy a táblát szakemberekhez rendelik, és végül ez történt:

Ez a kialakítás már tökéletesen illeszkedik egy macskába, bár valahogy embertelenül néz ki:

Ugyanakkor beigazolódtak azok a félelmek, hogy a telefonról gyakran érkezhetnek események, és ennek eredményeként a felhasználó a szórakozás helyett irritációt kap. Rugalmas logikára volt szükség a szűréshez, amely bármikor könnyen változtatható, újravillanás nélkül. Ezzel kapcsolatban, miután áttanulmányoztam a hardvert, és rájöttem, hogy az ESP8266-hoz nincsenek gyors és kompakt szkriptek (a Lua és a microPython tolmácsok), úgy döntöttem, hogy portolom a Pawn nyelvet, amely gyorsan (csak 18-szor lassabb, mint a natív) fut. kompakt bájtkód.

Egyébként a Pawn forrásai nagyon hasonlítanak a C-hez, így a szkriptek módosítása élvezet - csak le kell fordítani őket AMX bájtkódba, és át kell másolni egy SD-kártyára.

Gadget csalás. Úgy tesz, mintha iOS lenne Androidon

És akkor „hirtelen” mindannyiunknak eszébe jutott ez Android telefonok nem olyan kevés, sőt több iOS telefon van a világon.

Ennek eredményeként gyorsan meg kellett vizsgálnom, hogy megtehetjük-e becsapni a kütyüket, és úgy tenni, mintha iOS lenne Androidon, így az Apple-től megkülönböztethetetlen ANCS szolgáltatást látnak.

Végül minden sikerült, és egy héten belül a kütyük (és a mi macskánk sem volt kivétel) őszintén elhitte, hogy van egy iPhone-om ANCS szolgáltatással, amely csatlakozik a Nexus 5-höz, sőt a régihez is. Samsung Galaxy Android 4.4-el.

Irány a Cloud

Mivel senki sem szeret többször meghallgatni egy viccet (tény), és vannak preferenciák és kulturális korlátozások is, úgy döntöttek, hogy minden felhasználó számára egyedi lejátszási listát készítenek. Ebben az ügyben szorosan dolgoztam egy felhőben lévő szerveren.

De hogyan döntöd el, hogy kinek mi fog tetszeni? Így van – döntse el maga a felhasználó! Ehhez az STMicroelectronics gyorsulásmérőjén alapvető gesztusérzékelést végeztem. Ha tetszett a vicc, úgy döntötte meg a macskát, mintha „igen” lenne. Ha nem tetszett a vicc, úgy döntötte oldalra, mintha „nem” lenne. A telefonhoz hozzáadtam egy „nefelejcs”-et is - ha a BLE kapcsolat megszakad, és a gyorsulásmérő mozgást észlel, az azt jelenti, hogy a macskát viszik valahova, és a telefont elfelejtették.

Miután a felhasználó „lájkolja”, és ezzel jelezte a preferenciáit, az információ a szerverre kerül, ahol a lejátszási listák „genomjait” összehasonlítják, és új vicckészleteket generálnak a felhasználó számára, de ez egy külön cikk témája .

Eredmények

Ennek eredményeként a szórakozás kiváló platformnak bizonyult, amely:
  • kommunikáljon telefonjával a BLE-n keresztül, és értesítéseket kapjon az eseményekről;
  • kommunikáljon WiFi-n keresztül, és töltsön le tartalmat és firmware-frissítéseket;
  • fájlok mentése és olvasása FAT32-ben microSD-n;
  • vicceket játszani speex kodekkel;
  • gyorsulásmérő segítségével határozza meg a felhasználói preferenciákat (gesztusérzékelés);
  • hozzon létre lejátszási listákat minden felhasználó számára a humor preferenciái alapján;
Ami figyelemre méltó, hogy a „nagyon képzett kezek” könnyen csatlakozhatnak a megfelelő csapokhoz (még a csatlakozók lyukai is megmaradtak a táblán), és tetszése szerint „bölcsebbé teszik a macskát”. kockák.

Ezzel a platformmal a kickstarterhez mentünk, a kész játékot KiQ-nak hívtuk. Az első napon 40%-ot gyűjtöttünk, most pedig már 57%-ot. De ez egy teljesen más történet.

Köszönöm mindenkinek, aki elolvasta ezt a sort. Várom az érdekes kérdéseket.

Hogyan kell csinálni beszélő kutya ismételje meg saját kezével. A kézműves kifejezetten az újévi csínyekre készült. Sajnos nem láttam eladó kutyát. A már kitaposott utat járva saját kezűleg készült a kutyaismétlő. Ehhez csak két játékot kell vásárolnia, és egyszerű műveleteket kell végrehajtania rajtuk saját kezével. A beszélő kutya átjátszó készítésének részleteiért fényképekkel és videókkal, tekintse meg a bemutatott mesterkurzust. Mint mindig, az elkészült játékot a gyermek ajándékba kapja az új évben.

Repeater Dog készítéséhez szükség van egy Repeater Hörcsögre és puha játék kutya. A mester úgy oldotta meg ezt a problémát, hogy a link segítségével vásárolt egy hörcsögöt az Aliexpressen http://ali.pub/q3pti . A kutyát egy játékboltban vásárolták. Ár a fényképen.




Kutya játék

Kutya játék

Összeszerelési útmutató ismétlődő kutyákhoz

  1. A hörcsög mechanizmusát eltávolítjuk a bőrről. Általában a bőrt kábelkötegelővel rögzítik. Csak fogóval kell levágni. Láthatja, hogyan kell vágni a kötőelemeket.
  2. Ellenőrizzük a mechanizmus működését. A mechanizmust a mozgó platform felső helyzetében kell leállítani. Megnézni egy videót.
  3. A kiválasztott játék, a Kutya, kicsit kicsi, hogy beleférjen a mechanizmusba. Ezért a bélést felszakították, és miután eltávolították a párnázott poliészter egy részét a fejről, a mechanizmus felső platformját a játék fejébe helyezték.
  4. A felesleges poliészter párnázást a kutya mancsába helyezik, hogy térfogatot adjon.
  5. A játék fejének egyértelmű mozgása érdekében, a mechanizmus működésének megfelelően, a fej tetejét szálakkal kötötték a mechanizmus platformjához.
  6. A játék szélén a tömítés alatt egy szálat vezettek. A szál meg van feszítve, és rögzíti a bőr szélét a mechanizmus hornyában. Nézd meg a videót.


A mechanizmus kinyújtott helyzetben van felszerelve

Kár, hogy lehetetlen kész játékot vásárolni az üzletekben, de saját kezűleg elkészítheti. A kézműves megéri az időbefektetést. A lényeg az, hogy az újév ünneplésekor időben gyakorlatba hozd, és mindenki könnyekig nevetésben lesz része! És maga a kézműves méltó ajándék egy gyermek számára. A gyerekek értékelik azokat a játékokat, amelyeket nem talál meg barátai között.

Betöltés...Betöltés...