KiQ šala mačka ili kako smo napravili igračku koja priča za odrasle. Kako napraviti BLE usluge psa koji govori na nRF51822 i iOS aplikaciji

Među postojećim igračkama, posebnu poziciju zauzimaju one koje mogu govoriti i reagirati na dodir. Takve igračke nazivaju se interaktivnim.

IN U poslednje vreme Najpopularnija među djevojčicama i dječacima je interaktivna ptica Little Live Pets. Ova igračka će biti divan poklon za dijete koje sanja da ima kućnog ljubimca.

Karakteristike interaktivnih igračaka

Igračke mogu govoriti zahvaljujući posebnom uređaju koji je montiran unutar tijela igračke. Ovi blokovi se razlikuju po funkcionalnosti:

  • Najjednostavniji mehanizam je modul za jednokratno upisivanje zvuka. Vrijeme igranja može biti od 1 do 6,5 minuta;
  • sofisticiraniji uređaji vam omogućavaju da ponovo snimite melodije ili fraze. Interaktivne igračke sa takvim sistemima uče da razgovaraju sa djetetom, stalno se povećavajući leksikon. Također možete snimiti bajke ili pjesme koje izvodi vaša majka ili drugi rođak;
  • Postoje sistemi koji se ne aktiviraju pritiskom na dugme na zvučnoj jedinici, već glasom ili dodirom razni dijelovi igračke.

Na primjer, interaktivna lutka počinje da se smije kada joj dodirnete obraz, a ako je uzmete za ruku, ona počinje da govori.

Djeca različite starosti volim igračke koje pričaju. Igrajući se s njima, djeca uče komunicirati, stiču nova znanja i druge vještine. Jedini nedostatak interaktivnih igračaka je njihova cijena. Što više funkcija takva igračka obavlja, to je njena cijena veća.

Sami napravite igračku

Ako želite da obradujete svoje dijete igračkom koja priča, možete je napraviti sami.

Osoba koja je upoznata s radio elektronikom može kod kuće sklopiti programabilni zvučni modul. Ali to nije posebno potrebno, danas se takvi blokovi mogu kupiti na Internetu ili u specijaliziranoj trgovini.

Proces izrade igračke koja priča izgleda ovako:

  1. Odabiremo igračku. Može se kupiti u trgovini ili napraviti samostalno. Ručno rađene tekstilne igračke danas su veoma popularne.
  2. Kupujemo muzički modul i na njega snimamo melodiju, tekst ili bajku. Također možete uzeti zvučni modul iz bilo koje stare igračke, samo provjerite da li baterije rade ispravno.
  3. Pokidamo šav na mjestu gdje će se blok postaviti.
  4. Modul postavljamo unutar igračke, a važno je obratiti pažnju na dugme, mora biti dostupno za pritiskanje.

Nakon ovoga, ostaje samo da tiho zašijete šav i to je to - igračka je postala priča.

Ovaj video će vam pomoći da naučite kako napraviti igračku koja priča:

Na svijetu postoji nevjerovatan broj igračaka koje pričaju za djecu, a to samo produbljuje utisak da je odraslima dosadno. Naš tim je odlučio da ispravi ovu situaciju.

Početak priče

Sve je počelo kada je radoznalom umu jednog mog prijatelja i kolege s puževa pala svijetla misao: zašto ne zabaviti ne samo djecu, već i odrasle tematskim šalama? Na sreću, pristupačan i dobro dokazan hardver sada više nije retkost, a može ne samo da treperi, već i da peva pesme.

S tim u vezi, nazvao me je i ponudio da ponovim epski podvig da vidim da li ESP8266 pušta muziku u MP3 formatu dobro preko mreže i da li kida hrčka na komade, ima li zaista dovoljno performansi, što sam brzo i uradio novogodišnji praznici 2016:


U videu, ESP8266 pušta Internet radio, emitujući zvuk koristeći hak „5-bit PWM over I2S“.

Međutim, puštanje MP3 radija sa interneta potrošilo je skoro čitav resurs ESP8266 i zvučalo je „tako-tako“, dok je naša mašta već zamišljala nešto više od MP3 radio zvučnika. Sa ovim kreativnim porivima otišli smo do našeg tima i voljenog kuhara Vladimira.

Nakon malog razmišljanja, detaljnija slika je počela da se pojavljuje i izjednačila logički lanac ono što ne samo da želimo, već i možemo:

  • Kako bismo zamijenili MP3 nečim manje zahtjevnim za resurse i slobodnijim, odlučili smo se za Speex, koji je flexxnn prilično uspješno i brzo prenet na ESP8266.
  • Uzmite snimke šala sa servera u oblaku i pohranite ih lokalno na SD karticu, jer... Internet nije dostupan svuda, pa čak i na ESP8266, ako ga držite uključenim cijelo vrijeme, nećete dobiti dovoljno baterije.
  • Vežite "šale humora" za neke događaje, a ne samo nasumično pričajte. Kao generator događaja odabran je pametni telefon, jer ga skoro svi već imaju. Pa, stvarni događaji se mogu lako primiti iz Apple Notification Center Service (ANCS), koji je već dostupan na iPod, iPhone i iPad.
  • Koristite Bluetooth Low Energy (BLE) za komunikaciju sa pametnim telefonom, jer će malo ljudi biti zabavno puniti igračku više od jednom sedmično.
  • Kako igračka ne nervira korisnika čestim šalama o svim nadolazećim događajima, odlučili smo koristiti logiku u skript jeziku. Odlučili smo se za jezik zalagača.
  • Budući da svi imaju različite ukuse u šali, a slušanje iste šale je već tužno, odlučeno je da se korisniku da mogućnost da glasa za šalu „tapšanjem“ i „tapanjem“ (akcelerometar), kako bi ga formirao na server sadržaja sljedeći put relevantnija lista za reprodukciju.

Odabir hardvera

U početku sam želeo da napravim veoma jednostavan, ali potpuno funkcionalan prototip na sve-u-jednom ploči, pa smo odlučili da ga isprobamo na LinkIt ONE iz MediaTek-a. I netsnail je uspio skoro odmah. Postojala je veza sa telefonom i MP3 sa SD kartice su se reprodukovali savršeno.
Čini se da je ovo sreća i gotova platforma! Ali tada smo se suočili sa surovom realnošću ograničenja njihovog zatvorenog SDK-a i euforija je prošla.

Shvatili smo da na jednoj ploči ne postoji gotova platforma koja bi zadovoljila sve naše želje, što je značilo da je moramo kreirati od nule.

Dakle, morali smo odabrati (februar 2016.) najprikladniji BLE čip koji je trebao biti povezan sa ESP8266. Odlučili smo da koristimo standardni TWI (I2C) kao vezu između ESP8266 i BLE čipa (tada nismo znali kakav će to biti čip).

Ali sa BLE-om tada nije bilo puno izbora:

  • TI CC2541 - nekako mi se odmah nije svidio zbog arhitekture, a 8 KB RAM-a je izgledalo neperspektivno lak život, s obzirom na broj BLE usluga i karakteristike koje smo tražili u igrački.
  • BCM20732 - izgledalo je vrlo obećavajuće, ali u stvarnosti se SDK pokazao vrlo sirovim, a hardver Broadcom WICED Smart BLE je toliko pokvaren da neću pisati ništa posebno ovdje, da ne psujem. Javite mi da li se situacija sada popravila.
  • nRF52832 je prvi čip koji me je odmah obradovao. Ali tada nije bilo kompaktnog BLE modula - rekod je počeo da pravi prototipe na ploči za otklanjanje grešaka, stvarno mi se dopao SDK, sadržao je mnogo različitih radnici primjeri. BLE ANCS primjer je počeo odmah i odmah smo vidjeli obavijesti s iPhone-a u UART logovima. Inače, ova ploča za otklanjanje grešaka ima pravi SEGGER J-Link programator i debuger, što nam je znatno olakšalo život u budućnosti.
  • nRF51822 - tada su postojali gotovi moduli, a programirani su preko SEGGER-a sa nRF52832. Ono što me najviše iznenadilo je da se šifra sa starijeg nRF52832 modela savršeno prenosi na mlađi nRF51822 i nazad!
Kao rezultat toga, prvo željezo izgledalo je poput pauka tarantule otprilike ovako:

Hvatanje kvarova zbog otpadanja dupont kablova, posebno na nRF51822 modulu, gdje su igle malo pomaknute manjih dimenzija, bilo je veoma tužno.

BLE usluge na nRF51822 i iOS aplikaciji

Ipak, affair i ja smo već počeli implementirati BLE usluge i karakteristike na nRF51822 na ovom spider hardveru, podijelivši sve otprilike na pola:
  • Usluga Apple Notification Center (ANCS) - za primanje obavještenja o događajima sa vašeg pametnog telefona.
  • Apple Current Time Service (CTS) - kada je povezana, igračka oduzima vrijeme s telefona.
  • HandShake Service (HSS) - ova usluga, inače, čini igračku "neprobojnom", za razliku od konvencionalnih slušalica i sličnih naprava. Činjenica je da oblak ima ClientID i korisnik ne samo da uparuje telefon i igračku preko Bluetooth-a, već i dodatno povezivanje koje nije tako lako resetirati. Za opis ovog procesa potreban je poseban članak, pa ću se ograničiti na kratko spominjanje.
  • Battery As Service (BAS) - prijenos statusa baterije na aplikaciju za pametni telefon.
  • Content Service (CONTS) - sa ovim možete vidjeti listu prethodno odigranih šala, sa tekstom (tekst je preuzet sa servera u oblaku).
  • Usluga podešavanja (SETTS) - pomoću ovoga možete podesiti filtere za neprikladan sadržaj šale, vrijeme kada igračka treba da nečujno (na primjer, noću) itd.
MaximKit je radio u isto vrijeme aplikacija za iOS.

Slika sa desne strane prikazuje glavni ekran aplikacije.

Ovdje flexxnn nije mogao podnijeti našu patnju zbog otpadanja žica i napravio je prvi normalan prototip kod kuće metodom laserskog gvožđa:

Ne vidi se na fotografiji, ali već postoji slot za microSD karticu. Na maloj kvadratnoj kartici ispod - ALC5627, zvuk je već bio mnogo bolji od 5-bitnog PWM-a preko I2S-a.

Za upravljanje napajanjem odabrali smo AXP209. Omogućava vam da istovremeno punite i koristite bateriju, kao i da pratite njeno stanje. Čip je vrlo uobičajen, ali ima mnogo specifičnosti kako u programiranju tako iu potrebnim vanjske komponente, takozvani "uprtati".

Magic na ESP8266

Paralelno sa ovim, flexxnn je preneo Speex, FatFs na ESP8266, napravio bootloader za ESP8266 i nRF51822, tako da ne morate da flešujete ažurirani firmver preko žice, već to uradite tako što ćete postaviti fajlove firmvera na microSD kartica.

Lično mi se čini da su mu vanzemaljci pomogli, pošto je sve to uradio za nekih mesec dana. Ali ne priznaje kontakte sa vanzemaljskom inteligencijom.

A onda drugi, normalniji prototip:

Ali normalniji prototip više ne staje u mekanu igračku. A čak i da je ušao, onda bi naglim pokretom „stranac“ iskočio iz igračke na potencijalnog korisnika, što je naravno bilo neprihvatljivo za MVP-a.

Stoga je odlučeno da se ploča naruči profesionalcima i na kraju se dogodilo:

Ovaj dizajn se već savršeno uklapa u mačku, iako izgleda nekako nehumano:

Istovremeno, potvrđena je bojazan da bi događaji sa telefona mogli doći prilično često i kao rezultat toga korisnik bi umjesto zabave dobio iritaciju. Bila je potrebna fleksibilna logika za filtriranje, koja se mogla lako promijeniti u bilo kojem trenutku bez ponovnog flešovanja. S tim u vezi, nakon što sam proučio hardver i shvatio da ne postoje brze i kompaktne skripte za ESP8266 (Lua i microPython su tumači), odlučio sam da portiram Pawn jezik, koji se brzo (samo 18 puta sporije od izvornog) izvršava kompaktni bajt kod.

Inače, izvori na Pawn-u su vrlo slični C-u, tako da je modifikacija skripti zadovoljstvo - samo ih trebate prevesti u AMX bajt kod i kopirati na SD karticu.

Gadget varanje. Pretvarate se da ste iOS na Androidu

A onda smo se "odjednom" svi toga sjetili Android telefoni ne postoji tako malo, pa čak i više, od iOS telefona na svijetu.

Kao rezultat toga, morao sam brzo provjeriti možemo li prevariti gadgete i pretvarati se da ste iOS na Androidu, tako da vide ANCS uslugu koja se ne razlikuje od Apple-a.

Na kraju je sve ispalo i u roku od nedelju dana uređaji (a naša mačka nije bila izuzetak) su iskreno verovali da imam iPhone sa ANCS uslugom, povezujući se na moj Nexus 5, pa čak i na stari Samsung Galaxy sa Androidom 4.4.

Go Cloud

Kako niko ne voli da sluša vic nekoliko puta (činjenica), a postoje i preferencije i kulturološka ograničenja, odlučeno je da se napravi jedinstvena lista za reprodukciju za svakog korisnika. Za ovu aferu, blisko sam radio na serveru u oblaku.

Ali kako odlučiti kome će se šta svideti? Tako je - neka korisnik sam odluči! Da bih to uradio, uradio sam osnovnu detekciju pokreta na akcelerometru od STMicroelectronics. Ako vam se svidjela šala, nagnuli ste mačku kao da je "da." Ako vam se šala nije svidjela, nagnuli ste je u stranu kao da je "ne". Dodao sam i “ne zaboravim” za telefon - ako se BLE veza izgubi, a akcelerometar otkrije kretanje, to znači da se mačka negdje nosi, a telefon je zaboravljen.

Nakon što korisnik "lajkuje" i time naznači svoje preferencije, informacije idu na server, gdje se upoređuju "genomi" plejlista i generišu novi setovi viceva za korisnika. Ali ovo je tema za poseban članak .

Rezultati

Kao rezultat toga, zabava se pokazala kao odlična platforma koja može:
  • komunicirati sa svojim telefonom putem BLE-a i primati obavještenja o događajima;
  • komunicirati putem WiFi-a i preuzimati sadržaj i ažuriranja firmvera;
  • čuvajte i čitajte datoteke u FAT32 na microSD;
  • puštajte šale prepune speex kodeka;
  • odrediti korisničke preferencije pomoću akcelerometra (detekcija pokreta);
  • kreirati liste za reprodukciju za svakog korisnika na osnovu njegovih preferencija u humoru;
Ono što je vredno pažnje je da se "veoma vešte ruke" mogu lako spojiti na odgovarajuće pinove (čak su i rupe za konektore na ploči ostavljene) i "učiniti mačku mudijom" kako žele. Ovo čini platformu sve u jednom privlačnom za geeks.

Sa ovom platformom smo otišli na kickstarter, nazvavši gotovu igračku KiQ. Prvog dana smo prikupili 40%, a sada je već 57%. Ali to je sasvim druga priča.

Hvala svima koji su pročitali ovaj red. Radujem se vašim interesantnim pitanjima.

Kako to učiniti pas koji govori ponovite vlastitim rukama. Zanat je napravljen posebno za šale tokom Nove godine. Nažalost, nisam vidio nijednog psa ponovljenih na prodaju. Hodajući već utabanom stazom, repetitor za pse napravljen je vlastitim rukama. Da biste to učinili, trebate kupiti samo dvije igračke i vlastitim rukama izvršiti jednostavne radnje na njima. Za detalje o tome kako napraviti repetitor psa koji govori sa fotografijama i videozapisima, pogledajte predstavljenu majstorsku klasu. Kao i uvijek, gotova igračka će biti poklonjena djetetu u novoj godini.

Da biste napravili psa ponavljača, potreban vam je hrčak repeater i mekana igracka pas. Majstor je riješio ovaj problem kupovinom hrčka na Aliexpressu koristeći vezu http://ali.pub/q3pti . Pas je kupljen u prodavnici igračaka. Cijena na slici.




Pas igračka

Pas igračka

Upute za sastavljanje pasa ponavljača

  1. Uklanjamo mehanizam hrčka sa kože. Obično je koža pričvršćena vezicom za kablove. Potrebno je samo da ga odsečete kliještima. Možete vidjeti kako rezati zatvarače.
  2. Provjeravamo rad mehanizma. Mehanizam treba zaustaviti u gornjem položaju pokretne platforme. Pogledajte video.
  3. Odabrana igračka, Pas, je malo mala da stane u mehanizam. Stoga je podstava rasparana i nakon uklanjanja dijela poliestera za punjenje s glave, gornja platforma mehanizma je postavljena u glavu igračke.
  4. Višak poliestera se stavlja u šape psa kako bi im dao volumen.
  5. Za jasno kretanje glave igračke, prema radu mehanizma, vrh glave je bio vezan nitima za platformu mehanizma.
  6. Duž ruba igračke ispod brtve je provučen konac. Konac se rasteže i fiksira rub kože u utor mehanizma. Pogledajte video.


Mehanizam je ugrađen u izvučenom položaju

Šteta što je nemoguće kupiti gotovu igračku u trgovinama, ali možete je sami napraviti vlastitim rukama. Zanat je vrijedan ulaganja vremena. Glavno je da to na vrijeme sprovedete u djelo prilikom proslave Nove godine i svima će biti zagarantovan smijeh do suza! I sam zanat je dostojan poklon za dijete. Djeca cijene igračke koje nećete naći među prijateljima.

Učitavanje...Učitavanje...