The last of the posts on the Hug avoider and the 4Tronix's Eggbit
4Tronix's Eggbit (in fact I bought three of them https://shop.4tronix.co.uk/collections/bbc-micro-bit/products/eggbit-three-pack-special :-) recently) is a cute add-on for the microbit. In three previous posts I looked at eggbit using microcode to produce a hug avoider - warns when people at too close.
In this post using the buttons and adding (via Microbit V2 with its speaker) simple speech
1. Buttons
Pins for the buttons
- pin8 - Green button
- pin12 - Red button
- pin14 - Yellow button
- pin`6 - Blue button
if pin12.read_digital()==1:
#Red Button
blank_it()
if pin8.read_digital()==1:
#Green button
startingMessage()
if pin14.read_digital()==1:
#Yellow button
rainbow()
if pin16.read_digital()==1:
#Blue botton
display.show(Image.ASLEEP)
2. Speech
The basis on the code is take from https://microbit-micropython.readthedocs.io/en/latest/tutorials/speech.html
mess1 = [
"This is the hug avoide",
"please keep back",
]
# Take from https://microbit-micropython.readthedocs.io/en/latest/tutorials/speech.html
for line in mess1:
speech.say(line, speed=120, pitch=100, throat=100, mouth=200)
sleep(500
The speech is difficult to hear but is fun and there are possibly ways to improve this starting with the information on https://microbit-micropython.readthedocs.io/en/latest/tutorials/speech.html
3. Overall
from microbit import *
from machine import time_pulse_us
import neopixel, speech
sonar =pin15
sonar.write_digital(0)
fireled=neopixel.NeoPixel(pin13,9)
def rainbow():
fireled[0] = (255, 0, 40)
fireled[1]= (255,165,0)
#block=yellow
fireled[2] = (255,255,0)
#block=green
fireled[3] = (0,255,0)
#block=blue
fireled [4] = (0,0,255)
# block=indigo
fireled[5] = (75,0,130)
# block=violet
fireled[6] = (138,43,178)
#block=purple
fireled[7] = (255,0,255)
fireled.show()
def blank_it():
for j in range(8):
fireled[j] = (63, 0, 0)
fireled.show()
def howfar():
sonar.write_digital(1)
sonar.write_digital(0)
timeus=time_pulse_us(sonar,1)
echo=timeus/1000000
dist=(echo/2)*34300
sleep(100)
return dist
def startingMessage():
mess1 = [
"This is the hug avoide",
"please keep back",
]
# Take from https://microbit-micropython.readthedocs.io/en/latest/tutorials/speech.html
for line in mess1:
speech.say(line, speed=120, pitch=100, throat=100, mouth=200)
sleep(500)
def buttonplay():
if pin12.read_digital()==1:
#Red Button
blank_it()
if pin8.read_digital()==1:
#Green button
startingMessage()
if pin14.read_digital()==1:
#Yellow button
rainbow()
if pin16.read_digital()==1:
#Blue botton
display.show(Image.ASLEEP)
while True:
buttonplay()
dist=howfar()
if dist>30:
pin2.write_digital(1)
pin0.write_digital(0)
display.show(Image.HAPPY)
else:
pin2.write_digital(1)
pin0.write_digital(1)
blank_it()
speech.say("back away please", speed=120, pitch=100, throat=100, mouth=200)
display.show(Image.ANGRY)