Valmistage oma kätega rääkiv mänguasi. Kuidas teha rääkivat mänguasja. BLE teenused nRF51822 ja iOS-i rakenduses

Lastele mõeldud rääkivaid mänguasju on maailmas uskumatult palju ja see ainult süvendab muljet, et täiskasvanutel on igav. Meie meeskond otsustas selle olukorra parandada.

Loo algus

Kõik sai alguse sellest, et ühe mu sõbra ja kolleegi võrgutigu uudishimulikult pähe tuli helge mõte: miks mitte ainult lapsed, vaid ka täiskasvanud mitte lõbustada neid temaatiliste naljadega? Õnneks ei ole taskukohane ja väljakujunenud riistvara nüüd kunagi haruldus ning see ei suuda mitte ainult tulesid vilgutada, vaid ka laule laulda.

Sellega seoses helistas ta mulle ja pakkus eepilist vägitegu korrata, et ESP8266 mängiks nii hästi MP3-vormingus muusikat üle võrgu ja kas see rebib hamstri tükkideks, kas on tõesti piisavalt jõudlust, mida ma ka kiiresti tegin. Uusaasta pühad 2016. aastal:


Videos mängib ESP8266 Interneti-raadiot, väljastades heli "5-bit PWM over I2S" häkkimise abil.

Internetist MP3-raadio mängimine sõi aga peaaegu kogu ESP8266 ressursi ja kõlas "nii-nii", samas kui kujutlusvõime joonistas meile juba midagi enamat kui lihtsalt MP3-raadio veerg. Nende loominguliste impulssidega läksime oma meeskonna ja armastatud koka Vladimiri juurde.

Pärast mõningast ajurünnakut hakkas tekkima üksikasjalikum pilt ja isegi loogiline ahel mida me mitte ainult ei taha, vaid ka saame teha:

  • MP3 asendati millegi vähem ressursse nõudva ja vabamaga, asuti Speexile, mis flexxnn üsna edukalt ja kiiresti üle ESP8266-le.
  • Naljade salvestised võetakse serverist pilve ja pannakse lokaalselt SD-kaardile, sest. Internet pole kõikjal saadaval ja kui hoiate ESP8266 pidevalt sees, ei saa te piisavalt akusid.
  • Siduge "huumorinalju" mõne sündmusega ja ärge rääkige lihtsalt juhuslikult. Sündmuste generaatoriks valiti nutitelefon, kuna see on peaaegu kõigil juba olemas. Noh, tegelikke sündmusi saab hõlpsasti kätte saada Apple'i teavituskeskuse teenusest (ANCS), mis on juba iPodis, iPhone'is ja iPadis.
  • Kasutage nutitelefoniga suhtlemiseks Bluetooth Low Energy (BLE), sest vähestel inimestel on naljakas laadida mänguasja sagedamini kui kord nädalas.
  • Et mänguasi kasutajat sagedaste naljadega ei ärritaks, otsustasime kõigi saabuvate sündmuste puhul kasutada loogikat skriptikeeles. Leppisime etturi keelega.
  • Kuna naljade maitse on kõigil erinev ja sama nalja kuulamine on juba kurb, otsustati sisule kujundamiseks anda kasutajale võimalus hääletada naljade poolt “silitades” ja “löödes” (kiirendusmõõtur). server järgmine kord asjakohasem esitusloend.

Raua valik

Algselt tahtsime teha väga lihtsa, kuid täielikult töötava prototüübi kõik-ühes tahvlil, mistõttu otsustasime seda proovida MediaTeki LinkIt ONE'is. Ja netsnail õnnestus peaaegu kohe. Telefoniga oli ka ühendus olemas ja SD-kaardilt MP3 mängis suurepäraselt.
Näib - siin on õnn ja valmis platvorm! Kuid siis seisime silmitsi nende suletud SDK piirangute karmi reaalsusega ja eufooria kadus.

Saime aru, et ühel tahvlil pole valmis platvormi, mis vastaks kõigile meie soovidele, mis tähendab, et pidime selle nullist looma.

Seega pidime ESP8266-ga sidumiseks valima (veebruar 2016) kõige sobivama BLE-kiibi. Otsustasime kasutada standardset TWI-d (I2C) ühendusena ESP8266 ja BLE kiibi vahel (me ei teadnud siis, mis kiip see on).

Kuid BLE puhul polnud valik väga suur:

  • TI CC2541 - millegipärast ei meeldinud see mulle kohe arhitektuuri tõttu ja 8 KB RAM tundus lihtsa elu jaoks vähetõotav, arvestades BLE-teenuste arvu ja mänguasja jaoks vajalikke omadusi.
  • BCM20732 - nägi väga paljulubav välja, kuid tegelikult osutus SDK väga tooreks ja Broadcom WICED Smart võtmehoidja BLE riistvara on nii lollakas, et ma ei kirjuta siia midagi erilist, et mitte vanduda. Andke teada, kui nüüd on parem.
  • nRF52832 on esimene kiip, mis mind kohe rõõmsaks tegi. Aga siis polnud kompaktset BLE moodulit - rekod alustas prototüüpimist silumisplaadil, mulle meeldis väga SDK, see sisaldas palju erinevaid töölised näiteid. BLE ANCSi näide algas kohe ja nägime kohe iPhone'i teateid UART-i logides. Muide, sellel silumisplaadil on tõeline SEGGER J-Linki programmeerija ja silur, mis tegi meie elu tulevikus palju lihtsamaks.
  • nRF51822 - sel ajal olid valmis moodulid ja need olid programmeeritud SEGGERi kaudu nRF52832-st. Mind üllatas kõige rohkem see, et vanema nRF52832 mudeli kood on suurepäraselt üle kantud nooremasse nRF51822 ja tagasi!
Selle tulemusena nägi esimene raud välja nagu tarantula ämblik:

Väga kurb oli duponti kaablite mahakukkumisest tingitud tõrgete tabamine, eriti moodulil nRF51822, kus kontaktid on veidi väiksemad.

BLE teenused nRF51822 ja iOS-i rakenduses

Sellegipoolest alustasime afääriga juba sellel ämbliku riistvaral nRF51822 BLE teenuste ja omaduste juurutamist, jagades kõik umbes pooleks:
  • Apple'i teavituskeskuse teenus (ANCS) – sündmuste märguannete saamiseks nutitelefonist.
  • Apple Current Time Service (CTS) – ühendatuna võtab mänguasi telefonilt aega.
  • Handshake Service (HSS) - see teenus, muide, muudab mänguasja "purunematuks" erinevalt tavalistest peakomplektidest ja sarnastest vidinatest. Fakt on see, et pilves on ClientID ja kasutaja ei seo mitte ainult telefoni ja mänguasju Bluetoothi ​​kaudu, vaid ka täiendavat sidumist, mida pole nii lihtne lähtestada. Selle protsessi kirjeldus nõuab eraldi artiklit, seega piirdun lühidalt mainimisega.
  • Battery As Service (BAS) – aku oleku ülekandmine nutitelefoni rakendusse.
  • Sisuteenus (CONTS) - selle abil näete varem mängitud naljade loendit koos tekstiga (tekst on võetud pilves olevast serverist).
  • Seadete teenus (SETTS) – selle abil saab määrata filtreid naljade sobimatu sisu jaoks, kellaaega, millal mänguasi peaks vaikima (näiteks öösel) jne.
MaximKit samal ajal tegi rakendus iOS-i jaoks.

Parempoolsel pildil on näha rakenduse põhiekraan.

Siin ei talunud flexxnn meie kannatusi kukkuvate juhtmete tõttu ja tegi kodus laserrauaga esimese normaalse prototüübi:

Seda pole fotol näha, kuid microSD-kaardi pesa on juba olemas. Alumises väikeses kandilises sallis - ALC5627 oli heli juba palju parem kui 5-bitine PWM I2S kaudu.

Toitehalduseks valiti AXP209. Võimaldab akut korraga laadida ja kasutada, samuti jälgida selle seisukorda. Kiip on väga levinud, kuid sellel on palju spetsiifikat nii programmeerimises kui ka vajalikes väliskomponentides, nn. "siduvad".

Maagia ESP8266-l

Paralleelselt sellega porditi flexxnn ESP8266 Speexile, FatF-idele, tegi ESP8266 ja nRF51822 jaoks alglaaduri, et te ei saaks uuendatud püsivara juhtme kaudu flashida, vaid tehke seda püsivara failid microSD-kaardile paigutades.

Mulle isiklikult tundub, et tulnukad aitasid teda, kuna ta tegi seda kõike umbes kuu aja jooksul. Kuid ta ei tunnista kontakte võõra mõistusega.

Ja siis teine ​​tavalisem prototüüp:

Aga normaalsem prototüüp enam pehmesse mänguasja sisse ei roninud. Ja isegi kui see oleks sisse saanud, oleks potentsiaalse kasutaja terava liigutusega mänguasjast välja roninud "võõras", mis oli MVP jaoks muidugi vastuvõetamatu.

Seetõttu otsustati tellida professionaalidele mõeldud tahvel ja lõpuks juhtus nii:

Kassile sobib selline kujundus juba ideaalselt, kuigi tundub kuidagi ebainimlik:

Samas leidsid kinnitust kartused, et telefonist võib sündmusi tulla päris tihti ja selle tulemusena hakkab kasutaja lõbu asemel hoopis pahane. Vaja oli paindlikku filtreerimisloogikat, mida saab igal ajal ilma vilkumiseta lihtsalt muuta. Sellega seoses, olles uurinud riistvara ja mõistnud, et ESP8266 jaoks pole kiireid ja kompaktseid skripte (Lua ja microPython on tõlgid), otsustasin portida Pawni keele, mis kiiresti (ainult 18 korda aeglasem kui algne) käivitab kompaktse baitkoodi.

Muide, Pawni allikad on väga sarnased C-ga, nii et skripte on lust muuta – tuleb need lihtsalt AMX baitkoodiks kompileerida ja SD-kaardile kopeerida.

Vidinapettus. Androidis iOS-i teesklemine

Ja siis "äkki" meenus meile kõigile, et Android-telefone pole maailmas nii vähe ja isegi rohkem kui iOS-telefone.

Lõpuks pidin kiiresti kontrollima, kas saame trikke vidinaid ja teesklege, et olete Androidis iOS et nad näeksid ANCS-teenust, mis on Apple'ist eristamatu.

Lõpuks läks kõik korda ja nädala pärast uskusid vidinad (ja meie kass pole erand) siiralt, et mul on ANCS-teenusega iPhone, mis ühendab oma Nexus 5 ja isegi vana Samsung Galaxy Android 4.4-ga.

Mine Cloudi

Kuna kellelegi ei meeldi nalja mitu korda kuulata (fakt), samuti on eelistused ja kultuurilised piirangud, siis otsustati, et iga kasutaja moodustab unikaalse esitusloendi. Sest see afäär sai hakkama pilves oleva serveriga.

Aga kuidas otsustada, kellele mis meeldib? Täpselt nii – las kasutaja otsustab! Selleks tegin STMicroelectronicsi kiirendusmõõturil põhilise žestituvastuse. Mulle meeldis nali - kallutas kassi nagu "jah", nali ei meeldinud - kallutas külili, nagu "ei". Ja lisas ka telefonile "unusta mind" - kui BLE kaudu ühendus kaob ja kiirendusmõõtur tuvastab liikumise, siis kassi tassitakse kuhugi, aga telefon on unustatud.

Pärast seda, kui kasutaja "meeldib" ja sellega oma eelistused on märkinud, läheb info serverisse, kus võrreldakse esitusloendite "genoome" ja moodustatakse kasutaja jaoks uued naljakomplektid, kuid see on juba eraldi artikli teema.

Tulemused

Selle tulemusena osutus meelelahutus suurepäraseks platvormiks, mis suudab:
  • suhelda telefoniga BLE kaudu ja saada sündmuste teateid;
  • WiFi kaudu ühenduse loomine ning sisu ja püsivara värskenduste allalaadimine;
  • salvestada ja lugeda faile FAT32-s microSD-l;
  • mängida speex-koodekiga pakitud nalju;
  • määrata kiirendusmõõturi abil kasutaja eelistused (žestituvastus);
  • luua esitusloendeid igale kasutajale tema huumori eelistuste põhjal;
Tähelepanuväärne on see, et "väga osavad käed" võivad hästi ühenduda vastavate tihvtidega (isegi plaadil olevad pistikute augud on alles jäetud) ja "targaks kassi" oma äranägemise järgi. See muudab kõik-ühes platvormi nohikute jaoks atraktiivseks.

Selle platvormiga läksime kickstarterisse, kutsudes valmis mänguasja KiQ-ks. Esimesel päeval kogusid nad 40% ja nüüd 57%. Aga see on hoopis teine ​​lugu.

Aitäh kõigile, kes on selle rea lõpuni lugenud. Ootan teie huvitavaid küsimusi.

Olemasolevate mänguasjade hulgas on eriline positsioon nendel, mis oskavad rääkida ja puudutusele reageerida. Selliseid mänguasju nimetatakse interaktiivseteks.

Viimasel ajal on tüdrukute ja poiste seas populaarseim interaktiivne lind Little Live Pets. Selline mänguasi on suurepärane kingitus lapsele, kes unistab lemmikloomast.

Interaktiivsete mänguasjade omadused

Mänguasjad saavad rääkida tänu spetsiaalsele seadmele, mis on paigaldatud mänguasjakotti. Need plokid erinevad funktsionaalsuse poolest:

  • Lihtsaim mehhanism on heli-üks kord kirjutamise moodul. Taasesitusaeg võib olla 1 kuni 6,5 minutit;
  • keerukamad seadmed võimaldavad meloodiaid või fraase uuesti salvestada. Selliste süsteemidega interaktiivsed mänguasjad õpivad lapsega rääkima, suurendades pidevalt sõnavara. Saate salvestada ka muinasjutte või laule, mida esitab ema või mõni muu sugulane;
  • On süsteeme, mida ei aktiveerita mitte heliplokil nuppu vajutades, vaid häälega või mänguasja erinevaid osi puudutades.

Näiteks interaktiivne nukk hakkab põsele puudutades naerma ja kui ta käest võtta, hakkab ta rääkima.

Igas vanuses lapsed armastavad rääkivaid mänguasju. Nendega mängides õpivad lapsed suhtlema, omandavad uusi teadmisi ja muid oskusi. Interaktiivsete mänguasjade ainus puudus on nende maksumus. Mida rohkem selline mänguasi funktsioone täidab, seda kõrgem on selle hind.

Teeme ise mänguasja

Kui soovite oma last rääkiva mänguasjaga rõõmustada, saate selle ise valmistada.

Raadioelektroonikaga kursis olev inimene saab kodus kokku panna programmeeritava helimooduli. Kuid see pole eriti vajalik, täna saab selliseid plokke osta Internetist või spetsialiseeritud kauplusest.

Rääkiva mänguasja valmistamise protsess näeb välja järgmine:

  1. Valime mänguasja. See võib olla poest ostetud või ise valmistatud. Käsitsi valmistatud tekstiilist mänguasjad on tänapäeval väga populaarsed.
  2. Ostame muusikamooduli ja salvestame sellele meloodia, teksti või muinasjutu. Helimooduli saate võtta ka igast vanast mänguasjast, lihtsalt kontrollige akude jõudlust.
  3. Rebime õmbluse ploki paigaldamise kohas.
  4. Asetame mooduli mänguasja sisse, samas kui nupule on oluline tähelepanu pöörata, peab see olema vajutamiseks kättesaadav.

Pärast seda jääb üle vaid õmblus vaikselt kokku õmmelda ja ongi kõik - mänguasjast on saanud rääkiv.

See video aitab teil õppida rääkivat mänguasja tegema:

Kuidas oma kätega rääkivat koera kordajat teha. Käsitöö tehti spetsiaalselt aastavahetusel joonistamiseks. Kahjuks ma koerte müügis kordajaid ei kohanud. Juba sissetallatud rada kõndides sai koer oma kätega tehtud. Selleks peate ostma ainult kaks mänguasja ja tegema nendega oma kätega lihtsaid toiminguid. Lisateavet fotode ja videotega rääkiva koera valmistamise kohta leiate esitatud meistriklassist. Nagu ikka, kingitakse uuel aastal lapsele valmis mänguasi.

Korduskoera valmistamiseks on vaja repiiterhamstrit ja pehmet koeramänguasja. Meister lahendas selle probleemi, ostes lingi abil Aliexpressist hamstri http://ali.pub/q3pti . Koer on ostetud mänguasjapoest. Foto hind.




koeralik mänguasi

koeralik mänguasi

Paigaldusjuhised Repiiteri koerad

  1. Eemaldame hamstri mehhanismi nahalt. Tavaliselt kinnitatakse nahk kaablisidemega. See tuleb lihtsalt ära lõigata. Näete, kuidas kinnitusvahendeid lõigata.
  2. Kontrollime mehhanismi tööd. Mehhanism tuleks peatada liikuva platvormi ülemises asendis. Vaadake videot.
  3. Valitud koeramänguasi on mehhanismi paigaldamiseks pisut väike. Seetõttu rebiti vooder lahti ja peale osa polstri polüestri peast eemaldamist mahtus mehhanismi ülemine platvorm mänguasja pähe.
  4. Liigne sünteetiline talvekreem asetatakse koera käppadesse, et anda neile volüümi
  5. Mänguasja pea selgeks liikumiseks kinnitati vastavalt mehhanismi toimimisele pea võra keermetega mehhanismi platvormi külge.
  6. Mänguasja servast oli polstri all niit puudu. Niit on venitatud ja fikseerib naha serva mehhanismi soones. Vaata videot.


Mehhanism on paigaldatud väljatõmmatud asendisse

Kahju, et valmis mänguasja ei saa poest osta, vaid saate selle ise oma kätega valmistada. Käsitöö on seda aega väärt. Peaasi, et uusaasta vastu tulles see õigel ajal ellu viia ja kõigile pakutakse pisarateni naeru! Ja käsitöö ise on lapsele väärt kingitus. Lapsed hindavad mänguasju, mida te sõpradega ei leia.