0

Richard Feynman “bot” (video) @adafruit #adafruit

Richard Feynman “bot” (video) made with Adafruit CircuitPython, CircuitPlayground, and CRICKIT.

Happy Birthday: Physicist Richard Feynman – Adafruit & Richard Feynman at 100 – Nature.


# CircuitPython 3.0 CRICKIT demo

from adafruit_seesaw.seesaw import Seesaw
from adafruit_seesaw.pwmout import PWMOut
from adafruit_motor import servo, motor
import audioio
from busio import I2C
import random
import board
import time
import gc

i2c = I2C(board.SCL, board.SDA)
ss = Seesaw(i2c)

print("Feynbot demo!")

#################### 1 Servo
pwm = PWMOut(ss, 17)
pwm.frequency = 50
myservo = servo.Servo(pwm)
myservo.angle = 180   # starting angle, highest

#################### 2 Drivers
drives = []
for ss_pin in (13, 12):
    _pwm = PWMOut(ss, ss_pin)
    _pwm.frequency = 1000
    drives.append(_pwm)

#################### Audio files
wavfiles = ["01.wav", "02.wav", "03.wav", "04.wav", "05.wav"]
a = audioio.AudioOut(board.A0)

# Start playing the file (in the background)
def play_file(wavfile):
    f = open(wavfile, "rb")
    wav = audioio.WaveFile(f)
    a.play(wav)

# Tap the solenoids back and forth
def bongo(t):
    for _ in range(t):
	drives[0].duty_cycle = 0xFFFF
	time.sleep(0.1)
	drives[0].duty_cycle = 0
	time.sleep(0.1)
	drives[1].duty_cycle = 0xFFFF
	time.sleep(0.1)
	drives[1].duty_cycle = 0
	time.sleep(0.1)

# Move mouth back and forth
def talk(t):
    for _ in range(t):
	 myservo.angle = 150
	 time.sleep(0.1)
	 myservo.angle = 180
	 time.sleep(0.1)


filenum = 0 # counter to play all files

while True:
    gc.collect()
    print(gc.mem_free())

    # time to play the bongos!
    bongo(5)
    time.sleep(1)

    # OK say something insightful
    play_file(wavfiles[filenum])
    # and move the mouth while it does
    while a.playing:
	talk(1)

    # Done being insightful, take a break
    time.sleep(1)

    # If we went thru all the files, JAM OUT!
    filenum += 1   
    if filenum >= len(wavfiles):
	bongo(20)
	filenum = 0


Join 5,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython in 2018 – Python on Microcontrollers is here!

Have an amazing project to share? Join the SHOW-AND-TELL every Wednesday night at 7:30pm ET on Google+ Hangouts.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more https://www.instagram.com/adafruit/


Maker Business — A journey through Shenzhen, the electronics manufacturing hub of the world

Wearables — Ice, ice baby

Electronics — Current limiting!

Biohacking — Grindfest 2018

Python for Microcontrollers — CRICKITs are coming!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !



No Comments

No comments yet.

Sorry, the comment form is closed at this time.