I THINK ∴ I'M DANGEROUS

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
bob [2019/11/14 18:12]
zashi created
bob [2019/11/18 14:37]
zashi
Line 1: Line 1:
-{{tag>​software hardware go stupid}}+{{tag>​software hardware go rpi stupid}}
 ====== Bob The Skull ====== ====== Bob The Skull ======
  
 What should go here is an explanation of what this project is and why it exists. Instead, I'll say this: Alexa should be dumber and more annoying. What should go here is an explanation of what this project is and why it exists. Instead, I'll say this: Alexa should be dumber and more annoying.
  
 +===== Tests =====
  
-==== Hardware ​=====+==== Test 1 ==== 
 +<​html><​iframe width="​1033"​ height="​581"​ src="​https://​www.youtube.com/​embed/​Ehz4RjqMQSQ"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; encrypted-media;​ gyroscope; picture-in-picture"​ allowfullscreen></​iframe></​html>​
  
-=== Datasheets ===+===== Hardware ====== 
 + 
 +  * Raspberry Pi Model B+ (what I had lying around) 
 +  * Junk-bin USB-Wifi (dito) 
 +  * Custom Pi-Hat to interface with/drive hardware 
 +  * Some kind of not-too-shitty USB microphone 
 + 
 + 
 +==== Datasheets ​====
  
 Cause I know I'll need 'em. Cause I know I'll need 'em.
Line 13: Line 23:
 | uln2801a (Darlington Pair IC) | https://​www.mouser.com/​datasheet/​2/​389/​uln2801a-957494.pdf | | uln2801a (Darlington Pair IC) | https://​www.mouser.com/​datasheet/​2/​389/​uln2801a-957494.pdf |
  
-=== Outputs ===+==== Outputs ​====
  
 All outputs need a 220 Ohm resistor as each Raspberry Pi GPIO can source 15mA @ 3.3V.  All outputs need a 220 Ohm resistor as each Raspberry Pi GPIO can source 15mA @ 3.3V. 
Line 29: Line 39:
  
  
-=== Inputs ===+==== Inputs ​====
  
 ^ Name ^ GPIO Pin ^ Use ^ mA ^ Notes ^ ^ Name ^ GPIO Pin ^ Use ^ mA ^ Notes ^
 | Button | | | | | Button | | | |
 | Photoresistor | | presence / movement detection | Can use to "​smartly"​ add "oh hey there" / "​hello"​ type messages | | Photoresistor | | presence / movement detection | Can use to "​smartly"​ add "oh hey there" / "​hello"​ type messages |
 +
 +
 +===== Software =====
 +
 +Alpine Linux + a Go application to control the hardware. Various Go packages to interact with AVS (Alexa Voice Service).
 +
 +Custom animation library for various responses. ​
 +
 +DSP software to match mouth movements to audio output (very simplistic).
 +
 +==== Crap I Have to Write ====
 +
 +  * Wake Word Engine - Might be able to reuse the demo program from Amazon. It's C++ garbage.
 +  * AVS system - Basically the bridge between the hardware and AVS
 +  * Gesture / Animation Library - pre-defined routines for animating Bob
 +    * The DSP / Speaking mechanism should probably go here
 +
 +==== Resuable Animations ====
 +
 +  * Speaking
 +    * Mouth movement tied to audio
 +    * Medium brightness brain and eyes
 +  * Thinking
 +    * Pulsing Brain
 +    * Front LEDs randomly blink on and off one at a time
 +    * Eyes lit
 +  * Listening / At Attention
 +    * Brain Lit
 +    * Eyes Lit
 +  * Cheeky Emote
 +    * Mouth Hangs open
 +    * Winks one eye
 +  * Deeply Confused
 +    * Mouth stays mostly open (gaping gesture)
 +    * Eyes wink randomly
 +    * Brain blinks rapidly
 +    * Blink red/orange front panel LED