KiQ joku kaķis jeb kā mēs izgatavojām runājošu rotaļlietu pieaugušajiem. Kā izveidot runājošu suni BLE pakalpojumus nRF51822 un iOS lietojumprogrammā

Starp esošajām rotaļlietām īpašu vietu ieņem tās, kas spēj runāt un reaģēt uz pieskārieniem. Šādas rotaļlietas sauc par interaktīvām.

IN Nesen Meiteņu un zēnu vidū vispopulārākais ir interaktīvais putns Little Live Pets. Šī rotaļlieta būs brīnišķīga dāvana bērnam, kurš sapņo par mājdzīvnieku.

Interaktīvo rotaļlietu īpašības

Rotaļlietas var runāt, pateicoties īpašai ierīcei, kas ir uzstādīta rotaļlietas korpusa iekšpusē. Šie bloki atšķiras pēc funkcionalitātes:

  • Vienkāršākais mehānisms ir audio ierakstīšanas modulis. Spēles laiks var būt no 1 līdz 6,5 minūtēm;
  • sarežģītākas ierīces ļauj atkārtoti ierakstīt melodijas vai frāzes. Interaktīvās rotaļlietas ar šādām sistēmām iemācās runāt ar bērnu, nepārtraukti pieaugot leksikā. Var ierakstīt arī pasakas vai dziesmas mammas vai cita radinieka izpildījumā;
  • Ir sistēmas, kuras tiek aktivizētas, nevis nospiežot pogu uz skaņas bloka, bet ar balsi vai pieskārienu dažādas daļas rotaļlietas.

Piemēram, interaktīva lelle sāk smieties, kad pieskaraties tās vaigam, un, ja paņem to aiz rokas, tā sāk runāt.

Bērni dažādi vecumi patīk runājošas rotaļlietas. Spēlējoties ar viņiem, bērni mācās komunicēt, iegūst jaunas zināšanas un citas prasmes. Vienīgais interaktīvo rotaļlietu trūkums ir to izmaksas. Jo vairāk funkciju šāda rotaļlieta veic, jo augstāka ir tās cena.

Rotaļlietas izgatavošana pats

Ja vēlaties iepriecināt savu bērnu ar runājošu rotaļlietu, varat to izgatavot pats.

Persona, kas pārzina radio elektroniku, var mājās salikt programmējamu skaņas moduli. Bet tas nav īpaši nepieciešams, šodien šādus blokus var iegādāties internetā vai specializētā veikalā.

Runājošas rotaļlietas izgatavošanas process izskatās šādi:

  1. Mēs izvēlamies rotaļlietu. To var iegādāties veikalā vai izgatavot neatkarīgi. Mūsdienās ļoti populāras ir ar rokām darinātas tekstila rotaļlietas.
  2. Mēs iegādājamies mūzikas moduli un ierakstām tajā melodiju, tekstu vai pasaku. Varat arī paņemt skaņas moduli no jebkuras vecas rotaļlietas, tikai pārbaudiet, vai baterijas darbojas pareizi.
  3. Izraujam šuvi vietā, kur tiks uzstādīts bloks.
  4. Mēs ievietojam moduli rotaļlietas iekšpusē, un ir svarīgi pievērst uzmanību pogai, tai jābūt pieejamai nospiešanai.

Pēc tam atliek tikai klusi sašūt šuvi, un viss - rotaļlieta ir kļuvusi runājoša.

Šis video palīdzēs jums uzzināt, kā izveidot runājošu rotaļlietu:

Pasaulē ir neticami daudz runājošu rotaļlietu bērniem, un tas tikai padziļina iespaidu, ka pieaugušajiem ir garlaicīgi. Mūsu komanda nolēma šo situāciju labot.

Stāsta sākums

Viss sākās ar to, ka kādam manam draugam un tīklgliemežu kolēģim zinātkārajā prātā ienāca gaiša doma: kāpēc gan ar tematiskiem jokiem neizklaidēt ne tikai bērnus, bet arī pieaugušos? Par laimi, pieejamā un labi pārbaudītā aparatūra tagad vairs nav retums, un tā var ne tikai mirgot gaismas, bet arī dziedāt dziesmas.

Šajā sakarā viņš man piezvanīja un piedāvāja atkārtot šo lielisko varoņdarbu, lai redzētu, vai ESP8266 labi atskaņo mūziku MP3 formātā tīklā un vai tas nesarauj kāmi gabalos, vai tiešām ir pietiekami daudz veiktspējas, ko es ātri izdarīju. jaunā gada brīvdienas 2016:


Videoklipā ESP8266 atskaņo interneta radio, izvadot skaņu, izmantojot “5-bit PWM over I2S” uzlaušanu.

Tomēr MP3 radio atskaņošana no interneta patērēja gandrīz visu ESP8266 resursu un izklausījās "tik-tik", kamēr mūsu iztēle jau izdomāja kaut ko vairāk nekā tikai MP3 radio skaļruni. Ar šiem radošajiem impulsiem devāmies pie savas komandas un mīļotā šefpavāra Vladimira.

Pēc nelielas prāta vētras sāka parādīties detalizētāka aina un pat loģiskā ķēde ko mēs ne tikai vēlamies, bet arī varam darīt:

  • Lai MP3 aizstātu ar kaut ko mazāk resursprasīgu un brīvāku, mēs izvēlējāmies Speex, kas flexxnn diezgan veiksmīgi un ātri pārnesa uz ESP8266.
  • Paņemiet joku ierakstus no servera mākonī un saglabājiet tos lokāli SD kartē, jo... Internets nav pieejams visur, un pat ESP8266, turot to visu laiku ieslēgtu, nesaņemsit pietiekami daudz akumulatora.
  • Piesaistiet “humora jokus” dažiem notikumiem, nevis runājiet tikai nejauši. Par notikumu ģeneratoru tika izvēlēts viedtālrunis, jo tāds jau ir gandrīz ikvienam. Faktiskos notikumus var viegli saņemt no Apple paziņojumu centra pakalpojuma (ANCS), kas jau ir pieejams iPod, iPhone un iPad.
  • Izmantojiet Bluetooth Low Energy (BLE), lai sazinātos ar viedtālruni, jo dažiem cilvēkiem būs patīkami uzlādēt rotaļlietu biežāk nekā reizi nedēļā.
  • Lai rotaļlieta nekaitinātu lietotāju ar biežiem jokiem par visiem ienākošajiem notikumiem, mēs nolēmām izmantot loģiku skriptu valodā. Mēs apmetāmies uz bandinieku valodu.
  • Tā kā jokiem visiem ir atšķirīga gaume un viena un tā paša joku klausīšanās jau ir skumji, tika nolemts dot lietotājam iespēju balsot par jokiem, “paglaudot” un “sitot” (akselerometru), lai to veidotu satura serverim nākamreiz atbilstošāku atskaņošanas sarakstu.

Aparatūras izvēle

Sākotnēji es vēlējos izveidot ļoti vienkāršu, bet pilnībā funkcionējošu prototipu uz universālā paneļa, tāpēc mēs nolēmām to izmēģināt pakalpojumā MediaTek vietnē LinkIt ONE. Un netsnail izdevās gandrīz uzreiz. Bija savienojums ar telefonu un MP3 no SD kartes tika atskaņoti perfekti.
Šķiet, ka tā ir laime un gatava platforma! Bet tad mēs saskārāmies ar skarbo realitāti saistībā ar viņu slēgtā SDK ierobežojumiem, un eiforija pārgāja.

Mēs sapratām, ka uz viena tāfeles nav gatavas platformas, kas apmierinātu visas mūsu vēlmes, un tas nozīmēja, ka mums tā ir jāizveido no nulles.

Tātad, mums bija jāizvēlas (2016. gada februārī) vispiemērotākā BLE mikroshēma, kas bija jāsaista ar ESP8266. Mēs nolēmām izmantot standarta TWI (I2C) kā savienojumu starp ESP8266 un BLE mikroshēmu (toreiz mēs nezinājām, kāda veida mikroshēma tā būs).

Bet ar BLE toreiz nebija daudz izvēles:

  • TI CC2541 - kaut kā man tas uzreiz nepatika arhitektūras dēļ, un 8 KB RAM izskatījās neperspektīva viegla dzīve, ņemot vērā rotaļlietai nepieciešamo BLE pakalpojumu un raksturlielumu skaitu.
  • BCM20732 - izskatījās ļoti daudzsološi, taču patiesībā SDK izrādījās ļoti rupjš, un Broadcom WICED Smart BLE aparatūra ir tik buggy, ka neko īpašu šeit nerakstīšu, lai nelamātos. Paziņojiet man, vai situācija tagad ir uzlabojusies.
  • nRF52832 ir pirmā mikroshēma, kas mani uzreiz iepriecināja. Bet tad nebija kompakta BLE moduļa - rekod sāka prototipēt uz atkļūdošanas dēļa, man ļoti patika SDK, tajā bija daudz dažādu strādniekiem piemēri. BLE ANCS piemērs sākās uzreiz, un mēs uzreiz redzējām paziņojumus no iPhone UART žurnālos. Starp citu, šai atkļūdošanas platei ir īsts SEGGER J-Link programmētājs un atkļūdotājs, kas padarīja mūsu dzīvi daudz vieglāku nākotnē.
  • nRF51822 - tajā laikā bija gatavi moduļi, un tie tika programmēti caur SEGGER no nRF52832. Mani visvairāk pārsteidza tas, ka kods no vecākā nRF52832 modeļa ir lieliski pārnests uz jaunāko nRF51822 un atpakaļ!
Rezultātā pirmais gludeklis izskatījās kā tarantula zirneklis, apmēram šādi:

Kļūdu uztveršana dupont kabeļu nokrišanas dēļ, īpaši modulim nRF51822, kur tapas ir nedaudz mazāka izmēra, tas bija ļoti skumji.

BLE pakalpojumi nRF51822 un iOS lietojumprogrammā

Tomēr mēs ar afēru jau esam sākuši ieviest BLE pakalpojumus un parametrus nRF51822 šajā zirnekļa aparatūrā, sadalot visu apmēram uz pusēm:
  • Apple paziņojumu centra pakalpojums (ANCS) - lai saņemtu paziņojumus par notikumiem no viedtālruņa.
  • Apple Current Time Service (CTS) — kad tas ir pievienots, rotaļlieta aizņem laiku no tālruņa.
  • Handshake Service (HSS) - šis pakalpojums, starp citu, padara rotaļlietu “necaurlaidīgu”, atšķirībā no parastajām austiņām un līdzīgiem sīkrīkiem. Fakts ir tāds, ka mākonim ir ClientID, un lietotājs ne tikai savieno pārī tālruni un rotaļlietu, izmantojot Bluetooth, bet arī papildu iesiešanu, kuru nav tik viegli atiestatīt. Šī procesa aprakstam ir nepieciešams atsevišķs raksts, tāpēc es aprobežošos ar īsu pieminēšanu.
  • Battery As Service (BAS) - akumulatora statusa pārsūtīšana uz viedtālruņa lietojumprogrammu.
  • Satura pakalpojums (CONTS) - ar šo jūs varat redzēt iepriekš atskaņoto joku sarakstu ar tekstu (teksts tiek ņemts no servera mākonī).
  • Iestatījumu pakalpojums (SETTS) - ar to var konfigurēt filtrus nepiemērotam joku saturam, laiku, kad rotaļlietai jāklusē (piemēram, naktī) utt.
Tajā pašā laikā to darīja MaximKit lietojumprogramma iOS.

Labajā pusē esošajā attēlā redzams lietojumprogrammas galvenais ekrāns.

Šeit flexxnn neizturēja mūsu ciešanas krītošo vadu dēļ un izveidoja pirmo normālo prototipu mājās, izmantojot lāzera dzelzs metodi:

Fotoattēlā tas nav redzams, bet jau ir slots microSD kartei. Zemāk esošajā mazajā kvadrātveida kartē - ALC5627 - skaņa jau bija daudz labāka nekā 5 bitu PWM caur I2S.

Enerģijas pārvaldībai mēs izvēlējāmies AXP209. Ļauj vienlaikus uzlādēt un lietot akumulatoru, kā arī uzraudzīt tā stāvokli. Mikroshēma ir ļoti izplatīta, taču tai ir daudz specifiku gan programmēšanas, gan nepieciešamajā jomā ārējās sastāvdaļas, ts "zirglietas".

Maģija uz ESP8266

Paralēli tam flexxnn pārnēsāja Speex, FatF uz ESP8266, izveidoja sāknēšanas ielādētāju ESP8266 un nRF51822, lai jums nebūtu jāzibspuldze atjauninātā programmaparatūra, bet gan tas jādara, ievietojot programmaparatūras failus. microSD karte.

Man personīgi šķiet, ka viņam palīdzēja citplanētieši, jo viņš to visu izdarīja apmēram mēneša laikā. Bet viņš neatzīst kontaktus ar citplanētiešu izlūkdienestiem.

Un tad otrs, normālāks prototips:

Bet normālāks prototips vairs neiederējās mīkstajā rotaļlietā. Un pat ja tas tomēr iekļūtu, tad ar pēkšņu kustību “svešinieks” no rotaļlietas izkāptu virsū potenciālajam lietotājam, kas MVP, protams, bija nepieņemami.

Tāpēc tika nolemts valdi pasūtīt profesionāļiem, un tas notika beigās:

Šis dizains jau lieliski iederas kaķī, lai gan tas izskatās kaut kā necilvēcīgi:

Tajā pašā laikā apstiprinājās bažas, ka notikumi no telefona var nākt diezgan bieži un rezultātā lietotājs jautrības vietā gūs aizkaitinājumu. Filtrēšanai bija nepieciešama elastīga loģika, kuru jebkurā laikā varēja viegli mainīt bez atkārtotas mirgošanas. Šajā sakarā pēc aparatūras izpētes un sapratu, ka ESP8266 nav ātru un kompaktu skriptu (Lua un microPython ir tulki), es nolēmu portēt Pawn valodu, kas ātri (tikai 18 reizes lēnāk nekā vietējā) izpilda. kompaktais baitkods.

Starp citu, Pawn avoti ir ļoti līdzīgi C, tāpēc skriptu modificēšana ir prieks - jums tie ir tikai jāapkopo AMX baitkodā un jāiekopē SD kartē.

Sīkrīku krāpšana. Izliekas par iOS operētājsistēmā Android

Un tad “pēkšņi” mēs visi to atcerējāmies Android tālruņi pasaulē nav tik maz un pat vairāk kā iOS tālruņu.

Rezultātā man nācās ātri pārbaudīt, vai mēs varam apmānīt sīkrīkus un izlikties par iOS operētājsistēmā Android, lai viņi redzētu ANCS pakalpojumu, kas neatšķiras no Apple.

Galu galā viss izdevās, un nedēļas laikā sīkrīki (un mūsu kaķis nebija izņēmums) no sirds noticēja, ka man ir iPhone ar ANCS pakalpojumu, kas savienojas ar manu Nexus 5 un pat veco. Samsung Galaxy ar Android 4.4.

Iet mākonis

Tā kā nevienam nepatīk klausīties joku vairākas reizes (fakts), un ir arī preferences un kultūras ierobežojumi, tika nolemts izveidot unikālu atskaņošanas sarakstu katram lietotājam. Šajā sakarā es cieši strādāju pie servera mākonī.

Bet kā izlemt, kam kas patiks? Tieši tā – lai lietotājs pats izlemj! Lai to izdarītu, STMicroelectronics akselerometrā veicu pamata žestu noteikšanu. Ja jums patika joks, jūs noliecāt kaķi tā, it kā tas būtu "jā". Ja jums nepatika joks, jūs noliecāt to uz sāniem tā, it kā tas būtu "nē". Telefonam pievienoju arī “neaizmirsti” - ja pazūd BLE savienojums un akselerometrs konstatē kustību, tas nozīmē, ka kaķis kaut kur tiek nēsāts un telefons ir aizmirsts.

Pēc tam, kad lietotājs ir atzīmējis “patīk” un tādējādi norādījis savas preferences, informācija nonāk serverī, kur tiek salīdzināti atskaņošanas sarakstu “genomi” un ģenerēti lietotājam jauni joku komplekti. Bet šī ir atsevišķa raksta tēma .

Rezultāti

Rezultātā izklaide izrādījās lieliska platforma, kas var:
  • sazināties ar tālruni, izmantojot BLE, un saņemt paziņojumus par notikumiem;
  • sazināties, izmantojot WiFi, un lejupielādēt saturu un programmaparatūras atjauninājumus;
  • saglabāt un lasīt failus FAT32 formātā microSD;
  • spēlēt jokus, kas pildīti ar speex kodeku;
  • noteikt lietotāja preferences, izmantojot akselerometru (žestu noteikšana);
  • izveidot atskaņošanas sarakstus katram lietotājam, pamatojoties uz viņu humora vēlmēm;
Ievērības cienīgs ir tas, ka “ļoti prasmīgas rokas” var viegli pieslēgties atbilstošajām tapām (pat savienotāju caurumi uz tāfeles ir atstāti) un “padarīt kaķi gudrāku”, kā vien vēlas. Tas padara platformu “viss vienā” pievilcīgu. geeks.

Ar šo platformu mēs devāmies uz kickstarter, nosaucot gatavo rotaļlietu KiQ. Pirmajā dienā savācām 40%, un tagad jau 57%. Bet tas ir pavisam cits stāsts.

Paldies visiem, kas izlasīja šo rindiņu. Gaidu no jums interesantus jautājumus.

Kā to izdarīt runājošs suns atkārtojiet ar savām rokām. Amatniecība tika izgatavota īpaši izjokošanai Jaungada laikā. Diemžēl es neesmu redzējis nevienu atkārtotu suni pārdošanā. Ejot pa jau nobraukto taciņu, pašu rokām tapa suņu atkārtotājs. Lai to izdarītu, jums jāiegādājas tikai divas rotaļlietas un ar savām rokām jāveic vienkāršas darbības. Sīkāku informāciju par to, kā izveidot runājošu suņu atkārtotāju ar fotogrāfijām un video, skatiet prezentētajā meistarklasē. Gatavā rotaļlieta, kā vienmēr, tiks pasniegta bērnam kā dāvana jaunajā gadā.

Lai izgatavotu Repeater Dog, jums ir nepieciešams Repeater Hamster un mīkstā rotaļlieta suns. Meistars šo problēmu atrisināja, iegādājoties kāmīti vietnē Aliexpress, izmantojot saiti http://ali.pub/q3pti . Suns pirkts rotaļlietu veikalā. Cena fotogrāfijā.




Suņu rotaļlieta

Suņu rotaļlieta

Montāžas instrukcijas suņiem, kas atkārtojas

  1. Mēs noņemam kāmja mehānismu no ādas. Parasti ādu nostiprina ar kabeļu saiti. Jums tas vienkārši jānogriež ar knaiblēm. Jūs varat redzēt, kā sagriezt stiprinājumus.
  2. Mēs pārbaudām mehānisma darbību. Mehānisms jāaptur kustīgās platformas augšējā pozīcijā. Noskatieties video.
  3. Izvēlētā rotaļlieta Suns ir nedaudz maza, lai ietilptu mehānismā. Tāpēc odere tika saplēsta un pēc polsterējuma poliestera daļas noņemšanas no galvas, mehānisma augšējā platforma tika ievietota rotaļlietas galvā.
  4. Pārmērīgs poliestera polsterējums tiek ievietots suņa ķepās, lai piešķirtu tām apjomu.
  5. Rotaļlietas galvas skaidrai kustībai, atbilstoši mehānisma darbībai, galvas augšdaļa tika piesieta ar vītnēm pie mehānisma platformas.
  6. Gar rotaļlietas malu zem blīves tika izvilkts pavediens. Vītne ir izstiepta un fiksē ādas malu mehānisma rievā. Skatīties video.


Mehānisms ir uzstādīts izvērstā stāvoklī

Žēl, ka veikalos nav iespējams iegādāties gatavu rotaļlietu, bet jūs varat to izgatavot pats ar savām rokām. Amatniecība ir laika ieguldījumu vērts. Galvenais, svinot Jauno gadu, to laicīgi likt lietā un visiem būs smiekli līdz asarām! Un pati amatniecība ir cienīga dāvana bērnam. Bērni novērtē rotaļlietas, kuras jūs neatradīsit starp saviem draugiem.

Notiek ielāde...Notiek ielāde...