<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=CS link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Mám tomu rozumět tak, že vás to po devadesáti minutách spánku budí tj cca 8x za dobu spánku (délka spánku cca 8h)?</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>Od: </b><a href="mailto:lukesh@seznam.cz">Jaroslav Lukesh</a><br><b>Odesláno:</b>sobota 4. února 2017 14:42<br><b>Komu: </b><a href="mailto:hw-list@list.hw.cz">HW-news</a><br><b>Předmět: </b>Budik Drimal - vzbudi te az se vyspis</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Mám potřebu spát i ve dne. Asi je to rokama. Když mi doktorka dala nějaké </p><p class=MsoNormal>prášky, abych se v noci dlouho a dobře vyspal, tak jsem se vyspal tak dobře, </p><p class=MsoNormal>že když prášek jsem si dal naštěstí teda v pátek, vzbudil jsem se až v </p><p class=MsoNormal>neděli. Tudy fakt cesta nevede, ať se paní dochtorka nezlobí, ale takhle si </p><p class=MsoNormal>funkci kouzelné zelené pilulky nepředstavuju.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Protože se mi už několikrát stalo, že mě rodina taky nechala zlomyslně od </p><p class=MsoNormal>odpoledne spát a vzbudil jsem se až ráno, udělal jsem si budík, který budí </p><p class=MsoNormal>podle cyklů spánku. Budí ve fázích spánku - dřímání a pak každý REM stav, </p><p class=MsoNormal>který je cca každých 90 minut po usnutí. Začíní to pípat o 5 minut dřív a </p><p class=MsoNormal>končí to po 10 minutách, každou minutu to jedno pípnutí přidá.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Praktické zkušenosti z několikatýdenního provozu jsou, že když člověk není </p><p class=MsoNormal>pod vlivem léků - stačí i blbý ibalgin, nebo zdecimovanej virózou, tak těch </p><p class=MsoNormal>90 minut na jeden spánkový cyklus přesně sedí, jinak jsou ty cykly delší. </p><p class=MsoNormal>Slyším vždy 4. až 6. zapípání v cyklu, vstávám do osmého. Většinou spím 2 </p><p class=MsoNormal>cykly, tedy 3h, přerušení vzbuzením na WC i uprostřed spánkového cyklu vede </p><p class=MsoNormal>k úplnému probuzení a nepokračování ve spánku.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>pokud chvilku po zapnutí začne divoce blikat a pípat, tak by bylo záhodno ho </p><p class=MsoNormal>nabít, ale on po chvilce přestane a nechá vás vyspinkat. Když se probudíte a </p><p class=MsoNormal>ledka nebude blikat ale furt svítít, tak ho už musíte nabít, jinak hodně </p><p class=MsoNormal>ublížíte baterce.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Je to sice jenom fofr konstrukce s attiny85 a nebádal jsem nad lowpower </p><p class=MsoNormal>nastavením, prostě ta baterka má skoro 1ah tak to není třeba řešit a už to </p><p class=MsoNormal>ani neřeším, prostě užívám ho a stačí mi tak jak je. Taky by se tam mohlo </p><p class=MsoNormal>dát pro mini 3V3/8MHz a dosáhnout mikroampérové spotřeby, ale tenčí se mi </p><p class=MsoNormal>zásoby tak jsem tam dal ten digispark.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Konstrukce:</p><p class=MsoNormal>Digispark AtTiny85</p><p class=MsoNormal>http://www.ebay.com/itm/Digispark-Kickstarter-ATTINY85-Arduino-General-Micro-USB-Development-Board-/351877226756</p><p class=MsoNormal>nabíječka - modul TP4056</p><p class=MsoNormal>http://www.ebay.com/itm/MICRO-USB-1A-Battery-Charging-Module-TP4056-Precise-CA-/262434722764</p><p class=MsoNormal>Li-Ion z mobilu</p><p class=MsoNormal>krabička s vypínačem na 3xAA (vyřezaný vnitřek, ponechaný jen vypínač)</p><p class=MsoNormal>http://www.ebay.com/itm/2PCS-3-AA-4-5V-Battery-Holder-Box-Case-with-cover-switch-wire-3xAA-3x1-5V-SF602-/302171537680</p><p class=MsoNormal>pasivní elektromagnetický chrchláček, odpor 33R</p><p class=MsoNormal>http://www.ebay.com/itm/3V-5V-12V-24V-Active-Passive-Buzzer-Beeper-Electromagnetic-Type-Free-P-P-/262768636277</p><p class=MsoNormal>červená LED, odpor 1k</p><p class=MsoNormal>Tlačítko na umlčení ppání (jo, budu vstávat, ale spím dál tak zas budí až </p><p class=MsoNormal>další cyklus) je sice nějak započato a snad naprogramováno, ale není </p><p class=MsoNormal>vymazleno ani osazeno. Na fotce byste viděli černou krabičku s dírkou na </p><p class=MsoNormal>chrchlák, ledkou a vypínačem, takže ani nemá cenu ji dělat.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Budík Dřímal tedy funguje tak, že když uznám, že už fakt nemůžu a jdu si </p><p class=MsoNormal>lehnout, vezmu si krabičku, kterou když ulehnu, zapnu a dám vele sebe. Já </p><p class=MsoNormal>když lehnu, tak většinou snad do čtvrtminuty spím.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>#define __AVR_ATtiny85__</p><p class=MsoNormal>// to je tu kvůli konfiguraci pro měření napětí baterky</p><p class=MsoNormal>#define BEEPER 0</p><p class=MsoNormal>#define LED 1</p><p class=MsoNormal>#define maindelay 1000  // 6 x 1,000 vteřin x10 = minuta</p><p class=MsoNormal>byte TICHO = 0;</p><p class=MsoNormal>int napeti = 3700;</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>long readVcc() {</p><p class=MsoNormal>  // Read 1.1V reference against AVcc</p><p class=MsoNormal>  // set the reference to Vcc and the measurement to the internal 1.1V </p><p class=MsoNormal>reference</p><p class=MsoNormal>  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || </p><p class=MsoNormal>defined(__AVR_ATmega2560__)</p><p class=MsoNormal>    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);</p><p class=MsoNormal>  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || </p><p class=MsoNormal>defined(__AVR_ATtiny84__)</p><p class=MsoNormal>    ADMUX = _BV(MUX5) | _BV(MUX0);</p><p class=MsoNormal>  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || </p><p class=MsoNormal>defined(__AVR_ATtiny85__)</p><p class=MsoNormal>    ADMUX = _BV(MUX3) | _BV(MUX2);</p><p class=MsoNormal>  #else</p><p class=MsoNormal>    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);</p><p class=MsoNormal>  #endif</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  delay(2); // Wait for Vref to settle</p><p class=MsoNormal>  ADCSRA |= _BV(ADSC); // Start conversion</p><p class=MsoNormal>  while (bit_is_set(ADCSRA,ADSC)); // measuring</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH</p><p class=MsoNormal>  uint8_t high = ADCH; // unlocks both</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  long result = (high<<8) | low;</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = </p><p class=MsoNormal>1.1*1023*1000</p><p class=MsoNormal>  return result; // Vcc in millivolts</p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>void gong(byte opak= 1){</p><p class=MsoNormal>  for (byte j=1; j<=opak; j++){</p><p class=MsoNormal>    if (!digitalRead(2)) TICHO = 1;</p><p class=MsoNormal>    if (!TICHO){</p><p class=MsoNormal>      for (byte i=20; i>0; i--){</p><p class=MsoNormal>        analogWrite(BEEPER, i);</p><p class=MsoNormal>        delay(44);</p><p class=MsoNormal>      }</p><p class=MsoNormal>    }</p><p class=MsoNormal>  }</p><p class=MsoNormal>  analogWrite(BEEPER, 0); // pro jistotu</p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>void delayblink(byte svit=255){ // 6 vteřin</p><p class=MsoNormal>    analogWrite(LED, svit);</p><p class=MsoNormal>    delay(maindelay);</p><p class=MsoNormal>    if (napeti > 3500) analogWrite(LED, 0);</p><p class=MsoNormal>    delay(maindelay);</p><p class=MsoNormal>    analogWrite(LED, svit);</p><p class=MsoNormal>    delay(maindelay);</p><p class=MsoNormal>    if (napeti > 3500) analogWrite(LED, 0);</p><p class=MsoNormal>    delay(maindelay);</p><p class=MsoNormal>    analogWrite(LED, svit);</p><p class=MsoNormal>    delay(maindelay);</p><p class=MsoNormal>    if (napeti > 3500) analogWrite(LED, 0);</p><p class=MsoNormal>    delay(maindelay);</p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>void drimota(){ // 20 minut</p><p class=MsoNormal>  for (byte i=0; i<=200; i++){</p><p class=MsoNormal>    delayblink(4);</p><p class=MsoNormal>  }</p><p class=MsoNormal>}</p><p class=MsoNormal>void spanek_1(){ // 60 minut (+ 15 + 10)</p><p class=MsoNormal>  for (int i=0; i<=550; i++){</p><p class=MsoNormal>    delayblink(4);</p><p class=MsoNormal>  }</p><p class=MsoNormal>}</p><p class=MsoNormal>void spanek(){ // 80 minut</p><p class=MsoNormal>  for (int i=0; i<=790; i++){</p><p class=MsoNormal>    delayblink(4);</p><p class=MsoNormal>  }</p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>void minutku(byte opak = 1){ // bim-bam po minutě</p><p class=MsoNormal>  for (byte j=1; j<=opak; j++){</p><p class=MsoNormal>    for (byte i=0; i<=10; i++){</p><p class=MsoNormal>      delayblink(255);</p><p class=MsoNormal>    }</p><p class=MsoNormal>  gong(j);</p><p class=MsoNormal>  }</p><p class=MsoNormal>  TICHO = 0;</p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>void setup() {</p><p class=MsoNormal>  // put your setup code here, to run once:</p><p class=MsoNormal>  pinMode(2, INPUT_PULLUP); //THIS IS P2, P2 is analog input 1, so when you </p><p class=MsoNormal>are using analog read, you refer to it as 1.</p><p class=MsoNormal>  pinMode(BEEPER, OUTPUT);       //0 is P0, 1 is P1, 4 is P4 - unlike the </p><p class=MsoNormal>analog inputs,</p><p class=MsoNormal>  analogWrite(BEEPER, 0); // pro jistotu</p><p class=MsoNormal>  pinMode(LED, OUTPUT);       //0 is P0, 1 is P1, 4 is P4 - unlike the </p><p class=MsoNormal>analog inputs,</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  napeti = readVcc();</p><p class=MsoNormal>  delay(10);</p><p class=MsoNormal>  napeti = readVcc();</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  if (napeti < 3700) {</p><p class=MsoNormal>    for (byte i=0; i<=100; i++){</p><p class=MsoNormal>      digitalWrite(LED, 0);</p><p class=MsoNormal>      analogWrite(BEEPER, 24);</p><p class=MsoNormal>      delay(100);</p><p class=MsoNormal>      digitalWrite(LED, 1);</p><p class=MsoNormal>      analogWrite(BEEPER, 0);</p><p class=MsoNormal>      delay(100);</p><p class=MsoNormal>   }</p><p class=MsoNormal>  } else   gong();</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  drimota();</p><p class=MsoNormal>  minutku(10);</p><p class=MsoNormal>  spanek_1();</p><p class=MsoNormal>  minutku(10);</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>void loop() {</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  napeti = readVcc();</p><p class=MsoNormal>  if (napeti < 3500) analogWrite(LED, 16);</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    spanek();</p><p class=MsoNormal>    minutku(10);</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>_______________________________________________</p><p class=MsoNormal>HW-list mailing list  -  sponsored by www.HW.cz</p><p class=MsoNormal>Hw-list@list.hw.cz</p><p class=MsoNormal>http://list.hw.cz/mailman/listinfo/hw-list</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>