"Cat Spraygatron" - ou uma torre de batalha contra um gato ^ _ ^

Essa história vai ser cheia de intrigas, conspirações, decepções, lágrimas e alegria sincera ... Mas, aliás, me empolguei um pouco - não vai haver nada assim.

Histórico: Tenho uma mãe idosa que mora em outra cidade. E ele cura suas doenças com babosa. O método ajuda muito - e ela planta constantemente novos brotos para substituir os gastos. Ela é o lar de 2 representantes da fauna de cauda: Kuzya e Marek (gato e gatinho). Por que o gato de repente se tornou "Marek" é uma longa história. Vamos designar brevemente a razão como "porque as estrelas foram formadas dessa maneira". Ou seja, vamos supor que Cat cat = novo Cat ("Marek");





Gostaria que seus hóspedes tratassem a flora em crescimento com o devido respeito. Por exemplo, assim:





No entanto, eles estão relacionados da seguinte forma: 





Durante o ano, várias abordagens foram tentadas, tais como: ensinar, repreender, fechar a porta da sala ... Nada adianta. O resultado é sempre o mesmo - apenas alongado com o tempo.





. : . .





, , : , - : " () LOL! ""! - ...  , , . , ( ): 





  • ;





  • (, , - 100 , 2-3 );





  • .





, - . ... 





, - ... ...





( , , ) :





  • - ,





  • - ,





  • - , - .





, , "" . - .





, - . 3d :





: (, - ) ( , , - 30,5):





, : , ( ) - . " "...





. , - ^_^





, - ...





... "" - :





. - (LOL):





. ! ! 





: : . , :





" anti-access/area-denial A2/AD, , - , ".





, , , "-" - , . : :





, 0,3 - ! ( - (LOL, - )- .. , . - " " - ( , (500 ) - , , ""). , " - ": :





"" ( 2101).





P.S. - . - ? LOL.





, :





, " ". " ".





" ". , ...





- .. .





, "-".





:





  1. - " "- , 3-5 ;





  2. , ( "" ). - ABS - . :





, - , .





Arduino IDE:






int sensor1 = 2 ;//    1
int sensor2 = 3; //    2
int mosfet = 10; //   ,   

boolean isSensorStarted = false; //      
boolean isMotorStarted = false; //      
boolean catStatusMessage = false; //      
boolean isFirstMessage = true; //   

boolean firstStart = true; //      (  )

volatile uint32_t startTime = 0; //  ,   
volatile uint32_t workingTime = 3000; //  ,    

void setup ()
{
  Serial.begin(9600);
  pinMode (sensor1, INPUT) ; //     
  pinMode (sensor2, INPUT) ; //     
  pinMode (mosfet, OUTPUT) ;//     

  attachInterrupt(digitalPinToInterrupt (sensor1), sensor_impulse, HIGH);
  attachInterrupt(digitalPinToInterrupt (sensor2), sensor_impulse, HIGH);
}

void loop ()
{

  while (isSensorStarted)
  {
      if (firstStart) //    ,    -     -   LOW
        {
          detachInterrupt(sensor1);
          detachInterrupt(sensor2);
          while ( (digitalRead(sensor1)==HIGH) || (digitalRead(sensor2)==HIGH) )
          {
            //  -,     LOW
          }
          firstStart = false;
          isSensorStarted  = false;
          Serial.println ("");
          isFirstMessage = false;           
          attachInterrupt(digitalPinToInterrupt (sensor1), sensor_impulse, HIGH);
          attachInterrupt(digitalPinToInterrupt (sensor2), sensor_impulse, HIGH);
          break;                      
        }
    
     if (catStatusMessage)
     {
        Serial.println ("  !!! :-)"); 
        catStatusMessage = false;     
     }

     detachInterrupt(sensor1);
     detachInterrupt(sensor2);
   
     digitalWrite(mosfet, HIGH);
     startTime = millis(); //       
     isMotorStarted = true;
     Serial.println (" !");     
    
     while (isSensorStarted)
     {
        if (isMotorStarted)
        {
          if (millis()-startTime >= workingTime)
          { 
            isMotorStarted=false;
            digitalWrite(mosfet, LOW);
            Serial.println (" !");
          }          
        }

      
      if ( (digitalRead(sensor1)==LOW) && (digitalRead(sensor2)==LOW) )
         {
           attachInterrupt(digitalPinToInterrupt (sensor1), sensor_impulse, HIGH);
           attachInterrupt(digitalPinToInterrupt (sensor2), sensor_impulse, HIGH); 
           isSensorStarted = false;
         }
     }
  }

 if (!isFirstMessage)
 {
    if (!catStatusMessage)
       {
         Serial.println ("   ...:-(");
         catStatusMessage = true;      
       }  
 }
     

}

void sensor_impulse () 
{
  if (!isSensorStarted)
  {
     isSensorStarted = true;
  }
}
      
      



Você pode baixar arquivos para impressão 3D neste link .





Isso é tudo - o relatório está concluído.








All Articles