Introduction
Ever seen a trip-wire alarm system found in the movies? Perhaps you've built a basic trip-wire alarm system by following our Laser Head Sensor with micro:bit guide.Â
In this guide, we'll create a simpler security system with the Bird Bot. The Bird Bot will first stand idle at one spot, then if it detects movement with its ultrasonic distance sensor, it will send an alert message to another micro:bit, start flashing its LEDs red and ring its alarm.Â
Complete this guide to create a prototype for a security system with the Bird Bot.
In this guide, we'll create a simpler security system with the Bird Bot. The Bird Bot will first stand idle at one spot, then if it detects movement with its ultrasonic distance sensor, it will send an alert message to another micro:bit, start flashing its LEDs red and ring its alarm.Â
Complete this guide to create a prototype for a security system with the Bird Bot.
Tools
-
-
-
-
-
let p = 0; function turnRight () { basic.showArrow(ArrowNames.East); pins.digitalWritePin(DigitalPin.P16, 1); pins.servoWritePin(AnalogPin.P16, 0); basic.pause(100); basic.clearScreen(); } function forward () { basic.showArrow(ArrowNames.North); pins.digitalWritePin(DigitalPin.P8, 1); pins.servoWritePin(AnalogPin.P8, 180); pins.digitalWritePin(DigitalPin.P16, 1); pins.servoWritePin(AnalogPin.P16, 0); basic.clearScreen(); } function turnLeft () { basic.showArrow(ArrowNames.West); pins.digitalWritePin(DigitalPin.P8, 1); pins.servoWritePin(AnalogPin.P8, 180); basic.pause(100); basic.clearScreen(); } function backward () { basic.showArrow(ArrowNames.South); pins.digitalWritePin(DigitalPin.P8, 1); pins.servoWritePin(AnalogPin.P8, 0); pins.digitalWritePin(DigitalPin.P16, 1); pins.servoWritePin(AnalogPin.P16, 180); basic.clearScreen(); } function stop () { pins.digitalWritePin(DigitalPin.P16, 0); pins.digitalWritePin(DigitalPin.P8, 0); } basic.forever(function () { p = sonar.ping( DigitalPin.P14, DigitalPin.P15, PingUnit.Centimeters ) basic.showNumber(p); if (p <= 5) { stop(); basic.pause(200); backward(); basic.pause(200); } else { if (p < 15) { if (Math.randomRange(0, 99) < 45) { turnLeft(); basic.pause(200); } else { turnRight(); basic.pause(200); } } else { forward(); basic.pause(200); stop(); basic.pause(200); } } })
-
-
-
-
-
-
-
-
-
-
function forward () { basic.showArrow(ArrowNames.North); pins.digitalWritePin(DigitalPin.P8, 1); pins.servoWritePin(AnalogPin.P8, 180); pins.digitalWritePin(DigitalPin.P16, 1); pins.servoWritePin(AnalogPin.P16, 0); basic.clearScreen(); } function backward () { basic.showArrow(ArrowNames.South); pins.digitalWritePin(DigitalPin.P8, 1); pins.servoWritePin(AnalogPin.P8, 0); pins.digitalWritePin(DigitalPin.P16, 1); pins.servoWritePin(AnalogPin.P16, 180); basic.clearScreen(); } function turnLeft() { basic.showArrow(ArrowNames.West); pins.digitalWritePin(DigitalPin.P8, 1); pins.servoWritePin(AnalogPin.P8, 180); basic.pause(100); basic.clearScreen(); } function turnRight() { basic.showArrow(ArrowNames.East); pins.digitalWritePin(DigitalPin.P16, 1); pins.servoWritePin(AnalogPin.P16, 0); basic.pause(100); basic.clearScreen(); } function stop() { pins.digitalWritePin(DigitalPin.P16, 0); pins.digitalWritePin(DigitalPin.P8, 0); } function flashLights() { strip = neopixel.create(DigitalPin.P13, 6, NeoPixelMode.RGB); strip.showColor(neopixel.colors(NeoPixelColors.Red)); basic.pause(100); strip.clear(); strip.show(); basic.pause(100); } function soundAlarm() { pins.digitalWritePin(DigitalPin.P0, 1); basic.pause(100); pins.digitalWritePin(DigitalPin.P0, 0); basic.pause(100); } radio.onReceivedNumber(function (receivedNumber) { basic.showIcon(IconNames.Angry); }) let p = 0; let strip: neopixel.Strip = null; let active = 0; radio.setGroup(1); basic.forever(function () { p = sonar.ping( DigitalPin.P14, DigitalPin.P15, PingUnit.Centimeters ) if (active == 0) { basic.showNumber(p); if (p <= 15) { active = 1; radio.sendNumber(0); } } if (active == 1) { soundAlarm(); flashLights(); if (p <= 5) { stop(); basic.pause(200); backward(); basic.pause(200); } else { if (p < 15) { if (Math.randomRange(0, 99) < 45) { turnLeft(); basic.pause(200); } else { turnRight(); basic.pause(200); } } else { forward(); basic.pause(200); stop(); basic.pause(200); } } } })
-
-