Carl Wishes “Happy New Year”
In a scramble on the “Last Day of the Year To Make My Bot Smart”, I managed to get Carl to participate in the end of the year excitement. Here he is with his friend watching the ball drop on TV:
A few seconds too early, actually, Carl started counting down “10…9…8…”, and ended wishing “Happy New Year Everyone, Happy New Year” (In the process, he scared my wife who was not expecting Carl to start talking.)
To put him in the spirit, I added the following code fragments to his “sit quiet and contemplate your navel” program (status.py) to make newyear.py
def closeToMidnight():
d = datetime.now()
minuteBefore = d.replace(hour=23, minute=59, second=0, microsecond=0)
minuteAfter = d.replace(year=2019, month=1, day=1, hour=0, minute=0, second=0)
if d > minuteBefore and d < minuteAfter:
print ("close to midnight")
return True
else: return False
def countDownAndYell():
afterMidnight = False
d = datetime.now()
startCountDown = d.replace(hour=23, minute = 59, second=50, microsecond=0)
while not(afterMidnight):
d = datetime.now()
print ("d:",d)
if d > startCountDown:
for i in range (10, 0, -1):
nStr = "{}".format(i)
d = datetime.now()
print(nStr, d)
speak.say(nStr)
time.sleep(0.45)
print ("Happy New Year")
speak.say("Happy New Year Everybody. Happy New Year.")
afterMidnight = True
else: time.sleep(1)
##### Main #####
.
.
.
try:
while True:
.
.
.
if (closeToMidnight()): countDownAndYell()
Here is some of the “After The Party Trash” he left laying around:
********* CARL Basic STATUS *****
2018-12-31 23:59:04 up 7:54, 2 users, load average: 0.14, 0.08, 0.08
Battery Voltage: 9.30
5v Supply: 5.06
Estimated Life Remaining: 4 h 25 m
Processor Temp: 45.1’C
Clock Frequency: 600.0 MHz
throttled=0x0
Distance Sensor: 53.9 inches
close to midnight
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 4, 684773))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 5, 685960))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 6, 687722))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 7, 689484))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 8, 691251))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 9, 692981))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 10, 694747))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 11, 696514))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 12, 698240))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 13, 700003))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 14, 701775))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 15, 703505))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 16, 705265))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 17, 707065))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 18, 708801))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 19, 710556))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 20, 712332))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 21, 714079))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 22, 715838))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 23, 717598))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 24, 719386))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 25, 721147))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 26, 722903))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 27, 724631))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 28, 726393))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 29, 728161))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 30, 729916))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 31, 731678))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 32, 733443))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 33, 735183))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 34, 736994))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 35, 738760))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 36, 740486))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 37, 742245))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 38, 744011))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 39, 745726))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 40, 747485))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 41, 749245))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 42, 750970))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 43, 752739))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 44, 754490))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 45, 756212))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 46, 757962))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 47, 759724))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 48, 761461))
(‘d:’, datetime.datetime(2018, 12, 31, 23, 59, 49, 763215))
(‘10’, datetime.datetime(2018, 12, 31, 23, 59, 50, 763215))
(‘9’, datetime.datetime(2018, 12, 31, 23, 59, 51, 763215))
(‘8’, datetime.datetime(2018, 12, 31, 23, 59, 52, 763215))
(‘7’, datetime.datetime(2018, 12, 31, 23, 59, 53, 763215))
(‘6’, datetime.datetime(2018, 12, 31, 23, 59, 54, 763215))
(‘5’, datetime.datetime(2018, 12, 31, 23, 59, 55, 763215))
(‘4’, datetime.datetime(2018, 12, 31, 23, 59, 56, 763215))
(‘3’, datetime.datetime(2018, 12, 31, 23, 59, 57, 763215))
(‘2’, datetime.datetime(2018, 12, 31, 23, 59, 58, 763215))
(‘1’, datetime.datetime(2018, 12, 31, 23, 59, 59, 763215))
Happy New Year********* CARL Basic STATUS *****
2019-01-01 00:00:08 up 7:55, 2 users, load average: 0.05, 0.06, 0.07
Battery Voltage: 9.29
5v Supply: 5.06
Estimated Life Remaining: 4 h 4 m
Processor Temp: 45.6’C
Clock Frequency: 600.0 MHz
throttled=0x0
Distance Sensor: 53.5 inches