2017-08-14

L'APARITION de LOURDES

   Turbūt po to kai mirė bobutės sesuo Jadvyga 1985, kuri neturėjo vaikų, artimi giminės išsidalino jos turtą, nežinau ar pagal testamentą ar kažkokiu kitu būdu. Pas ją buvo nemažai jos (ir bobutės) brolio Povilo Bakšio dalykų - knygų, nuotraukų, enciklopedijų, suvenyrų iš užsienių ir panašiai. Keletas iš tokių niekučių atiteko ir bobutei, o tiksliau tokios grojančios dėžutės. Prisuki mechanizmą ir skamba :) 
   Tuomet man buvo gal 9 metai ir tai buvo stebuklas kažkoks! Pirmoji dėžutė tokia labai graži buvo. Priekis lyg iš kokio dramblio kaulo gabalėlių, viduryje šventas abrazdėlis, nugarėlė aksominė, atraminė kojelė visa blizga tokia, bet muzikėlė gan liūdna ir todėl man nelabai patiko. Ten grojo Ave Marija
   O kita dėžutė buvo ne tokia prašmatni. Tiksliau sakant ten net ne dėžutė bet pora fosforinių statulėlių ant plastmasinio pagrindo. Vis pamenu laikydavau prie lempos, kol ranka pavargsta ir po to bėgdavau kur tamsu žiūrėt kaip "magiškai" žaliai-mėlynai jos šviečia abi. Tada dar prisukdavau ir klausydavau, klausydavau...
   Matyt nuo to klausymo ji ir gedo dažnai ir krisdavo ir lūždavo ir taip toliau. Neseniai buvau pas tėvus ir tėvas įdavė man šias statulėles. Sako ten matyt spyruoklė atsikabino, nebegroja. Parsivežiau išardžiau, pasirodo ten ta spyruoklė pavargus nuo gyvenimo ir tiesiog lūžus pusiau. Neremontuojama, nevirinama.
   Vieną dieną su bendradarbiu Roku pietų metu užsukom į laikrodžių taisyklą. Pasipasakojau laikrodininkui, tas man pardavė spyruoklę. Jos pasirodo visos standartinės tik reik ilgį atsikirpt kiek reik. Papasakojo kaip nulaužt, kaip atleist grūdinimą, kaip padaryt skylę... Žodžiu vakarui darbelio smagaus :). Kai vargais negalais aš tą spyruoklę įkišau į vidų, išlindo ir kitos bėdos - vienas dantratukas pametęs pusę dantų, varžtas nebesilaiko. O galiausiai ir ta spyruoklė šiek tiek peraukšta.     Kelioms dienoms buvau užmetęs remontą ir audžiau mintį ar nereiks elektrifikuot šito grožio. Nupirkt kokį mikro motoriuką, bateriją... Poto mąsčiau gal kokią kinišką šiolaikinę grojančią dėžutę kaip donorą šiai,  bet jos pasirodo dabar plastmasinės, o ir būgno dydis tikrai ne toks... Galiausiai nusprendžiau dar syk grįžt pas laikrodininkus. Kai pabandžiau nuimti tą dvigubą aptrupėjusį dantratį pamačiau, kad jis iš dviejų atskirų dalių, o ne vientisas. Taigi pakako mažąjį tik apsukti kita puse ir grąžinti atgal. Žinoma tai "čytinimas", kaip pasakytų vaikai, bet kodėl "nedamušus" ir antros pusės dantračio? Va kai ir šita nusibaigs, tada ir paieškosim visiškai sveiko ;)
   Taigi apsukau ir grąžinau atgal. Tą nesilaikantį varžtą apklijavau kažkokiais klijais (labai negrabiai), kurie virsta kaip akmuo. Atspausdinau naują dugną, nes senasis buvo faneros gabalėlis prisuktas medsriegiais. Taip pat teko nuimt šiek tiek seno remonto niuansų ir padaryt vietos būgnui. Kažkur apsiskaičiavau ir teko išgramdyt apie milimetrą plastiko iš vidaus virš būgno kad nesiremtų. Na galutinis variantas gavo si toks

O vidaus "grožybės", nors ir gėda bet parodysiu vistiek ;)

Na ir muzika, gal atpažinsi... https://goo.gl/photos/qW1JXn55NcYXcdET8

Beje, panašią dėžutę radau internete ieškodamas pagal "REUGE Fabrfrancaise" http://themusicboxman.com/A.PilgrimageSouvenirs137/2.html. Gal reikalui esant pavyks pas juos rasti ir detalių?

2017-07-15

Oho!

   Matyt senstu, nes kuo tolyn tuo keistyn mano užsiėmimai. Patapau 952 bendrijos pirmininku (http://952dnsb.blogspot.lt/), pradėjau domėtis 3d spausdinimu, mikrokontroleriais, radioelektronika (net išsiaškinau kas tie amperai, voltai watai ir omai !!!:)), radio bangomis, laistinais dažniais, atstumo matavimo galimybėmis, geometrija (nuo Pitagoro teoremos iki cosinusų ir stačiojo trikampio formulių)... uch... kaip įdomu... Tiesa atstumo matavimui daugiau ir nereikia kaip šių kelių formulių.
 
   Paskutinis iš mano smagių dalykėlių prie kurio dirbu (bet matyt kaip ir visų kitų nebaigsiu iki galo) yra automatinė strėlių paieška taikinyje. Nors lankais nebešaudau senokai, netgi savo geriausią lanką pardaviau su visom strėlėm (beveik, pasirodo dar buvau rusį kažkur paslėpęs keletą), bet vistiek gryžtu prie šio sporto. Prisiminiau kad Edma kažkada klausė, ar negalima padaryt kažko kas parodytų kur pataikiau. Na aišku tam yra žiūronai, bet taip neįdomu. Juk gyvenam elektronikos pasaulyje! Viskas turi būti telefone, mobilu ir atrodyt kuo "krūčiau"!
 
  Idėja tokia. Taikinio apačioje, kairėje (nors nesvarbu) prismeigsim aparatėlį degtukų dėžutės dydžio. Pagrindiniai smegenys - Wemos D1 su ESP8266 controleriu. Prie jo prismeigtas Mini  Micro Servo varikliukas SG90, kuris sukinės nurodytais laipsniais lazerinį atstumo matuoklį GY-530 VL53L0X. Jei darysim prielaidą jog servo variklis sukinėsis tiksiais kampais, lazeris tiksliai matuos atstumą -  turėsim grąžų žaisliuką. Bet yra dar vienas bet. Jei strėlė užstos strėlę nuo daviklio reiks minimum 2 servų ir 2 lazerių. Nors yra tikimybė jog ir jų dviejų nepakaks, tada reiks mastyt kažkokį aparatą kuris jutiklį judintų, o nebūtų fiksuotose padėtyse. Bet čia poto.
 
   Pradžiai maketas:
   Patencikas kol kas atstoja lazerį imituodamas atsitiktinį atstumą kol dalys važiuoja iš kinijos. Servo variklis veikia gražiai, D1 irgi negrybauja, kaip grybavo esp01 modelis.
 
   Aplikacijai pasirinkau Blynk platformą. Labai paprasta ir tokiems minimalistiniams uždaviniams per akis. Yra vienas bet. Ji nori interneto arba lokalaus Blynk servo. Servas - 15 min darbo, jei projektas pasirodys bent kiek vertas dėmesio, bus galima pagalvot apie kokį resberi ar banana šiam reikalui. Kolkas jei vyks testavimas lauke telefone tiesiog reik įjungt HotSpot, kad ESP galėtų prisismeigt prie Blynk serverio.
   Taigi, prismeigiam aparatą kur nors šalia taikinio (kairėj, apačioj). Tada įsmeigiam strėlę į patį taikinio vidurį. Įjungus aparatą jis prisijungs prie Blynk servų per wifi kurį šarins telefonas. Poto praskanuos lentą. Mygtuke "Center" atsiras atstumas milimetrais iki strėlės ir kampas iki jos nuo menamo horizonto. Taigi šitas taškas bus įrenginio suprantamas kaip taikinio centras. Po to sušaudai visą partiją, ar po kiekvieno šūvio spaudi "Rescan". Mygtuke taip pat matysis atstumas iki rastos strėlės ir kampas (čia tik tetavimui, vėliau tuos skaičius išimsiu). Apačioje lentelėje atsiras visos rastos strėlės, atstumai iki centro ir kryptis nuo centro (Nort West, South East ir pan).
Na ir čia testavimo rezultatai:
   Tikras stebuklas ką gali geometrija!!!

   Na ir kodo gabaliukas jei kam įdomu. Kolkas pritaikytas tik skanavimui po kiekvieno šūvio, poto strėles dėsiu į masyvus ir senas ignoruosiu:




#define BLYNK_PRINT Serial
#include 
#include 
#include 
Servo servo_L;
int aw, cd, ca, cx, cy, ad, aa, ax, ay, an=0, a2c, d2c;
float ba;
float ra=57.2957795;
String name;

BLYNK_WRITE(V4)
{
  int pinData = param.asInt();
  if (pinData == 1) 
  {
    Blynk.virtualWrite(V3,"clr");
    an=0;
  }
}


BLYNK_WRITE(V2)
{
  int pinData = param.asInt();
  if (pinData == 1) 
  {
    an++;                                  // Kelintas suvis
    int val;
    int kampas = random(5, 85);            // Imituojam kokiu kampu nuo pagringo buvo rasta strele.
  
    servo_L.write(0);  delay(500);
    for (int i=0; i<=90; i++)
    {
      servo_L.write(i);
      delay(15);
  
      val = analogRead(A0);                // imituojam lazerio skaityma, kolkas patencikas

      if (i==kampas) {
                                           // Visi pataikymai turi buti netoliau nei 2*centras
        if (val < cd*2) {
          ad=val+aw/2;
          aa=i;
        }
      }
    }
    name=ad; name+="@"; name+=aa;
    Blynk.setProperty(V2,"offLabel",name);
    Blynk.virtualWrite(V2,LOW);
    
    d2c=round(sqrt(pow(cd,2)+pow(ad,2)-2*cd*ad*cos((aa-ca)/ra)));        // skaiciuojam atstuma iki centro
//    a2c=acos((pow(d2c,2)+pow(cd,2)-pow(ad,2))/(2*d2c*cd))*ra;          // skaiciuojam kampa nuo 45 i taikini, nereikia jo
    name=d2c;

    ax=round(cos(aa/ra)*ad);
    ay=round(sin(aa/ra)*ad);
    name+=" ";  
    if (aycy) name+="N";
    if (axcx) name+="E";

    Blynk.virtualWrite(V3,"add",an,String(an),name);                     //siunciam i lentele
  }
}

BLYNK_WRITE(V0)
{
  aw = param.asInt(); // nusiskaitom streles stori
}


void out(String str, int val)
{
  str+=": ";
  str+=val;
  Serial.println(str);
}

void setup()
{
  Serial.begin(115200);
  Blynk.begin("authkejus", "wifi sidas", "wifi passordas");

  servo_L.attach(D4);
  servo_L.write(0); delay(500);             // grazinam i 0 pozicija ir leidziam motorui atsisukt
                                            // skanuojam lapa
  for (int i=0; i<=90; i++)
  {
    servo_L.write(i); delay(15);            // sukam serva ir duodam laiko
    int val = analogRead(A0);               // imituojam lazerio skaityma
                                            // imituojam jog radom centra lygiai ant 45 laipsniu
    if (i==45) {
      cd=val+aw/2;                          // dadedam puse streles storio prie ilgio                                
      ca=i;                                 // cia kampas iki centro
      cx=round(cos(ca/ra)*cd);
      cy=round(sin(ca/ra)*cd);
      name=cd; name+="@"; name+=ca;
      Blynk.setProperty(V1,"offLabel",name);
      name=cx; name+=":"; name+=cy;
      Blynk.setProperty(V1,"onLabel",name);
    }
  }
}

void loop()
{
  Blynk.run();
}