 
 }
 
-void heartBeat(){
-  uint8_t ledPin = 13;
-  pinMode(ledPin, OUTPUT);
-  digitalWrite(ledPin, HIGH);
-  delay(100);
-  digitalWrite(ledPin, LOW);
-  delay(100);
-  digitalWrite(ledPin, HIGH);
-  delay(100);
-  digitalWrite(ledPin, LOW);
-
-}
+
+void heartBeat(unsigned long mSeconds, int hbInterval){
+  static unsigned long oldTime;
+  if(mSeconds - oldTime > hbInterval){
+    uint8_t ledPin = 13;
+    pinMode(ledPin, OUTPUT);
+    digitalWrite(ledPin, HIGH);
+    delay(100);
+    digitalWrite(ledPin, LOW);
+    delay(100);
+    digitalWrite(ledPin, HIGH);
+    delay(100);
+    digitalWrite(ledPin, LOW);
+    oldTime = mSeconds;
+  }
+}
+
+void get

  }
}

void sleep(unsigned int minTime, unsigned int maxTime){
  unsigned int delayVal = random(minTime, maxTime);
  laser.fire(0);
  panTilt.detach();
  unsigned long startTime = millis();
  for(unsigned int i = 0; i < delayVal; i++){
    while(millis() - startTime < 60000){
      heartBeat();
      delay(10000);
      if(startTime > millis()){ //check for rollovers
        startTime = millis();


int getMarkovSpeed(int oldSpeed){
  int val = random(101);
  int lowVal, midVal, hiVal

  if(oldSpeed == 1){
    if(val < 20){
