Developer blog (all entries)

Amikor a jelvényt faragtam még nem merült fel bennem, hogy elektronikát is rakjak bele. Aztán elkezdtem mélyebben foglalkozni az Arduino-val és ekkor született az ötlet, hogy ebből simán meg lehetne csinálni, ráadásul egészen kicsiben. A cél, hogy az elektronikát hangszóróval és elemmel együtt belesűrítsem a jelvénybe, és ha a viselője „megnyomja“, akkor csipogjon, akár csak a filmben.

DS9-Voyager komjelvény

A korábban kifaragott DS9-Voyager korszakbéli komjelvény.

Mikrovezérlő

A projekthez egy ATtiny85 mikrovezérlőt használtam fel, ennek az üzemi feszültsége 2,7 - 5,5 Volt, így tökéletesen alkalmas arra, hogy egy lítiumos gombelemről járassam, és mindössze 8 lába van, így rendkívül kicsi, még DIP tokozásban is.

kapcsolási rajz

A teljes kapcsolási rajz.

A kapcsoló

A filmben a jelvények műanyagból voltak és a hangot utólag keverték alá. Az én megoldásomnál a jelvény alumíniumból van, és noha az arany része itt is festve van, az ezüstös részén meghagytam csupaszon, hogy valódi fémes hatása legyen. Ebből kiindulva született az ötlet: érintés érzékelő! Legegyszerűbb esetben egyetlen bemenet kellene egy MΩ-os felhúzóellenállással, és mivel az emberi test ellenállása ennél jóval kisebb, ha hozzáér, azzal a földre köti. Ez viszont csak közös földpotenciál esetén működik.

Erre találtam meg Paul Badger kapacitív érzékelős library-ját. Itt egészen más irányból közelíti meg a problémát, egy soros RC kört épít, ahol a két tag között van az érzékelő, és ha bárki belenyúl ebbe a rendszerbe, növeli annak a kapacitását, így az időállandó – ami a kondenzátor feltöltődési illetve kisülési ideje – meghosszabbodik. Ezt az időt mérve el tudjuk dönteni, hogy „meg lett-e nyomva“ a gomb.

Ehhez az Arduino két lábára lesz szükség, az adó lábon (2-es láb a kapcsolási rajzon) megváltozik a jelszint, a vevő lábon (3-as) pedig várja, hogy az mikor kerül azonos állapotba az adóval. A két lábat egy nagy értékű ellenállás (100 kΩ - 50 MΩ) köti össze, a vevő lábról egy 100 pF körüli kondenzátor megy a föld felé, és ide csatlakozik az érzékelő, ami jelen esetben a jelvény csupasz alumínium felülete.

A beépített védődiódák és az RC kör kondenzátora megvédik a mikrovezérlőt az érintés során az esetleges statikus kisülésektől.

 Első prototípus bemutató, alumínium érintkezővel.

Hanglejátszás

A hangszórót egy PWM (Pulse Width Modulation) jellel hajtja meg. Ez egy változtatható kitöltési tényezőjű négyszögjelet generál 8 bites bontásban, ami nullán végig alacsony jelet ad, felénél egyenletes a kitöltés, 255-nél pedig végig magas a jel. Erre egy az egyben ráküldhető egy 8 bites hang épp aktuális mintája, amiket egy a program memóriában tárolt tömbből olvas ki, és ezzel nagyjából fel is éli az ATtiny 8 kilobájtos tárterületét.

A kimenet persze nem analóg jel lesz, hanem egy azt nagyjából közelítő digitális jel; ezt finomíthatjuk egy aluláteresztő szűrővel, de enélkül is kielégítő eredményt ad, úgyhogy ezt elvetettem, mert csak plusz alkatrész lett volna.

Ez viszont felvet egy másik problémát: mivel az alap állapot az 50%-nál nem egy nyugalmi állapot, ezért alapjáraton is lesz fogyasztása. Erre a megoldás, ha alapjáraton nullára tesszük a kimenetet. Ha ez hirtelen történik, egy kattanás fog hallatszani, ezért kell egy rámpa, ahol az 50%-os értékről szép lassan leúszik nullára, illetve a következő lejátszás elején nulláról vissza 50%-ra. Ennek az ideje legalább 12,5 ezredmásodperc kell legyen, hogy az ezáltal generált hang 20 Hz alatt maradjon, amit az emberi fül már nem hall.

Hangszórónak a kis méret miatt egy kikukázott mobiltelefon hangszóróját használtam fel. Mivel tekercset nem illik finom elektronikára kötni, mert visszaindukál, egy NPN tranzisztorral vezéreltem meg. Ennek a típusa jelen esetben lehet egy úgynevezett „mindegy” típusú (pl. BC338).

második prototípus

A második prototípus. Ez csupán egy kompaktabb változata az elsőnek, ezt még nem a jelvényhez méreteztem. A képen egy CR2032 lítiumos gombelemről megy.

Fogyasztás

A mikrovezérlő órajelét a beépített 8 MHz-es oszcillátor adja. Alapjáraton ezt az órajel előosztó 64-el leosztja, így valójában 125 Hz-en fut, és a szenzor minden mintavétele között alvó módba vált, amiből egy watchdog timer kelti fel 128 ms után, ezzel minimalizálva amennyire csak lehetséges az alapjárati fogyasztást. Hanglejátszás alatt kikapcsolja az előosztót és teljes sebességgel megy.

Az eszköz fogyasztása így alapjáraton körülbelül ~5 μA, lejátszás közben pedig ~4 mA. Ezzel elméletben napokig is kibírja egy gombelemről.

Tokozás és összeszerelés

Jelenleg csak prototípusként létezik az elektronika, jó nagyban, ugyanis még nem sikerült kitalálnom, hogy miként férhetne bele a jelvénybe. A legkisebb lítiumos gombelem amit találtam 12,5 mm átmérőjű és 2 mm vastag, ami még így is hatalmas, ráadásul könnyedén cserélhetőnek kell lennie. Meg aztán ott van hangszóró is. Az arduino és a többi alkatrész lehet SMD.

Eddig még a leginkább megvalósítható ötletem az, hogy az elemet kivezetném a hátán, át a ruhán, és akkor a ruha alatt a vezetéket már el lehet vezetni akárhova.

Jövőbeli fejlesztési lehetőségek

  • Az órajelnek lehet, hogy elég lenne a beépített 1 MHz-es oszcillátort használni, elvégre a hangeffekt mintavételi rátája csak 15 kHz. Ezzel szignifikánsan leesne a fogyasztás, mivel az nagyjából exponenciálisan arányos az órajel frekvenciával.
  • Potenciométerrel állítani a kapacitív érzékelő érzékenységét.
  • Megépíteni kisebbre.

Letöltés

A forráskódot szabadon rendelkezésre bocsájtom, lehet nyugodtan nézegetni, átírni, felhasználni saját projektre. Annyit kérek csak, hogy a forrásmegjelölés ne maradjon el, illetve a harmadik féltől származó kódoknak megvan a saját licenszük.

Forráskód letöltése:
http://vbstudio.hu/download/file/arduino_chirping_star_trek_combadge_v0.1.zip

Felhasznált források

Programming ATtiny85 with Arduino Uno
https://create.arduino.cc/projecthub/arjun/programming-attiny85-with-arduino-uno-afb829

PCM playback by Michael Smith
https://github.com/shatteredhaven/HauntedPumpkin/tree/master/damellis-PCM-ae3f463/damellis-PCM-ae3f463

Capacitive Sensing Arduino library by Paul Badger
http://playground.arduino.cc/Main/CapacitiveSensor

Első kitekintésként a nem lemezalapú alkotások felé, ezúttal a Nichijou (日常) nevű anime kissé furcsa kinézetű varjúját készítettem el. A dolog borzasztó egyszerű, mivel az egész állat egy kúp, nyakában egy kendővel. A testét, meg a talapzatot fából készítettem el, a lábai vas drótból vannak, ez körbefogja a talapzatot, amitől stabilan megáll. A kendőre filcet használtam, miután többszöri próbálkozásra sem sikerült szövetből megcsinálni, mivel túl kicsi ahhoz, hogy rendesen megkössem. A filccel viszont tudtam csalni és háromszög helyett egy speciális formát vesz fel (lásd képek), illetve a csomó helyén egyszerűen csak össze van varrva.

hu Metál medál

January 14, 2017,Handicraft

Továbbvíve a keltacsomó dizájnját, született ez a nagyon metál, pentagrammát ábrázoló nyaklánc. Itt most 5 darab lemezből áll, ezeknek a végeit szegecseltem össze, aztán csiszoltam egymáshoz. Hogy a szerkezete merevebb legyen, még a közepénél is elláttam szegecsekkel. Az egyik csúcsán a szegecs egy lyukszegecs, így annál fogva ráköthető egy nyakláncra.

A rozsdát elkerülendő, most két rétegben fújtam le átlátszó akryl lakkal, majd meglátjuk ez mennyit ér. Egyszer majd kitanulom a galvanizálást is, és azzal már biztosra fogok menni.

Sajnos az eredeti két lehetséges billentyű, amik között lehetett váltogatni, nem bizonyultak elegendőnek, így eljött a továbbfejlesztés ideje!

Először is a kapcsoló az oldalán már régóta zavart, nem így akartam eredetileg, csak akkor nem volt jobb ötletem. Most az aljára került egy toló kapcsoló, aminek a pöcke épp csak kilóg. Sőt, kettő is, így most már 4 féle billentyűgomb közül lehet választani, ezek pedig a Space, Pause, F11 és a Scroll Lock.

A régi kapcsoló helyén keletkező lyukra egy vaslemezt csavaroztam fel és az egész dobozt lefestettem feketére.

A Vasparittya program is kapott egy új funkciót, mint az a videón is látszik, bármelyik gomb megnyomására felvillantja a Scroll Lock led-et a billentyűzeten, ami a nagy piros gombra van közve. Persze az időtartam állítható, vagy ki is lehet kapcsolni teljesen.

hu Megújult weboldal

November 19, 2016,Software

A sok-sok kézműves poszt mellett úgy tűnhet, hogy végleg felhagytam a szoftverekkel, de ne tévesszen meg senkit sem a látszat! Tény, hogy a munka mellett kevesebb időm van, és munkából hazajőve még kevesebb kedvem, elvégre bent is ugyanezt csinálom napi 8 órában, de ilyen könnyen nem adom fel.

Az utóbbi hetekben a weboldalamat írtam át Bootstrap keretrendszer alá, ehhez a teljes dizájnt újra kellett írni, úgy, hogy minden tartalom automatikusan igazodjon az éppen aktuális képernyő mérethez. Ennek eredményeként a weboldalam mostantól elérhető asztali gépről, tabletről és telefonról is egyaránt!

A következő, amit ezután csinálni fogok – nem, még mindig nem Codename Z, de jön az is – hogy a körmére nézek a mostani publikált munkáimnak és kijavítok pár dolgot amit már egy ideje tervezek, elvégre nem a mennyiség, hanem a minőség a fontos.

Mivel a legutóbbi faragott dísztökjeim pár nap után elfonnyadtak, most egészen más irányból közelítettem meg a dolgot. A korábbi munkáim mintájára készítettem egy vas és bőr tököt. Az akasztós megoldást teljesen elvetettem, mert nem volt túl praktikus, így visszatértem a mágnesekhez, amit annyival még megspékeltem, hogy a mágnes a bőr alá került, így a tök háta teljesen üres maradt, ami esztétikusabb is, meg a mágnest se kell félteni, hogy netán leszakadna.

Hogy teljes legyen a Halloween-i faragványok tárháza, a tök mellé még készült egy apró koponya hűtőmágnes is.

A dolgok árnyoldala viszont, hogy a korábbi vas alapú munkáimnál rozsda kezdte el felütni a fejét, ráadásul rendkívül hamar és a védőlakkon keresztül is. Ez főleg azoknál a munkáimnál jött ki, amiket géppel csiszoltam le. Amit még kézzel, mint pl. a Skyrim-os, ott ez nincs, de ez az, amelyiknél írtam is, hogy fél órán át csiszoltam és még mindig voltak rajta foltok az eredeti védőborításból. Amíg nem találok megoldást, visszatérek az alumíniumhoz, és vasat legfeljebb festék alatt alkalmazok.

De persze minden rosszban van valami jó is, volt egy korábbi szándékos rozsdásító próbálkozásom, csak ott a vasat még szintén kézzel csiszoltam, alighanem emiatt maradt el a hatás. Fogok csinálni pár új kísérletet, és ha működik, akkor végre megcsinálhatom a Quake logóját tökéletesen úgy, mint az igazi!