You are on page 1of 381

Introduction

When RadioShack announced last year that it was starting to stock Arduinos we knew just what to do: we went shopping. It's one of our favorite tools to use and we were
up for any excuse to use more of them.

The cool thing about Arduino is that it lets you do so many different things that it's really about what the user can think of. And we thought of so many things to do.
Thanks to the Arduino we were able to feed pets with tweets, water our plants automatically, make a guitar pedal for crazy sounds, and so much more.

So please dig into all these projects of ours and find out what the Arduino is capable of. Redo a whole project or even just a part of one and make it your own. It's all
about your own expression of what's great and the Arduino can be your new best friend in making it happen.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Table of Contents

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Author and Copyright Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Arduino Guitar Pedal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Intro: Arduino Guitar Pedal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Step 1: Go get stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Step 2: Header breakdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Step 3: Solder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Step 4: Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Step 5: Drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Step 6: Wire the pots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Step 7: Wire the Rotary Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Step 8: Build the circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Step 9: Cut Brackets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Step 10: Insert knobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Step 11: Trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Step 12: Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Step 13: Stereo jacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Step 14: Insert jacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Step 15: Wire the switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Step 16: Finish the wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Step 17: Cork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Step 18: Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Step 19: Attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Step 20: Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Step 21: Case closed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Step 22: Knobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Step 23: Plug and play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Arduino Xylophone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Intro: Arduino Xylophone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Step 1: You will need... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Step 2: Free the Piezos, then solder longer leads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Step 3: The Bars and Housing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Step 4: Attach the Piezos to the Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Step 5: Attach the Bars to the top Panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Step 6: Build the circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Step 7: Connecting to the Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 8: Power and communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Step 9: Serial to Midi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Step 10: Jam it! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Persistence of Vision Wand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Intro: Persistence of Vision Wand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Step 1: Build a support for your wand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Step 2: Add resistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Step 3: Solder resistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Step 4: Add header pins to protoboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Step 5: Attach toggle switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Step 6: Attach battery connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Step 7: Wire up LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Step 8: Connect LEDs to arduino shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Step 9: Connect to ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Step 10: Upload firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Step 11: Attach battery and arduino board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Step 12: Create your own messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Twitter Controlled Pet Feeder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Intro: Twitter Controlled Pet Feeder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Step 1: Open pet feeder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Step 2: Unscrew pcb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Step 3: Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Step 4: Drill holes in pcb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Step 5: Solder wires to pcb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Step 6: Screw pcb back onto enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Step 7: Solder header pins on protoboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Step 8: Solder white LEDs and current limiting resistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Step 9: Solder resistors and photoresistors to protoboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Step 10: Attach to feeder PCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Step 11: Attach control buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Step 12: Wire power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Step 13: Attach arduino and arduino ethernet shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Step 14: Drill holes in enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Step 15: Connect USB and ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Step 16: Reassemble enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Step 17: Batteries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 18: Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Step 19: Try it out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Waterproof Solar Powered Boom Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Intro: Waterproof Solar Powered Boom Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Step 1: Materials and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Step 2: Mark and Cut Speaker Holes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Step 3: Mark and Drill Speaker Mounting Holes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Step 4: Build Base Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Step 5: Cut Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Step 6: Round Corners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Step 7: Lay Out Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Step 8: Cut Holes in Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Step 9: Prepare Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Step 10: Mount Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Step 11: Prepare Bus Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Step 12: Extend Charging LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Step 13: Prepare AC Power Accesories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Step 14: Install Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Step 15: Wiring (panel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Step 16: Install Speakers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Step 17: Wiring (box) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Step 18: Epoxy Panel Supports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Step 19: Construct Solar Panel Bungee Cord Holder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Step 20: Solar/DC Mode Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Step 21: AC/Wall Mode Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Step 22: Accessories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

DIY Bicycle Turn Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

Intro: DIY Bicycle Turn Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

Step 1: Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

Step 2: Assembling your flash timing circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

Step 3: Assembling your flash timing circuit. (cont.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102

Step 4: Assembling your flash timing circuit. (cont.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102

Step 5: Assembling your flash timing circuit. (cont.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103

Step 6: Making and Wiring your back plate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

Step 7: Insert your LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

Step 8: Wire you LEDs to the plate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105

Step 9: Wire your circuit to the LEDs on the plate, connect your switches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107

Step 10: Securing, and waterproofing your circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 11: Encapsulate your circuit in resin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110

Step 12: Polishing the light. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112

Step 13: Attach the hoseclamp to your light. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113

Step 14: Run switches from your handlebars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114

Step 15: Go for a ride! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

Arduino Bike Speedometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119

Intro: Arduino Bike Speedometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119

Step 1: Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119

Step 2: Protoboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121

Step 3: Reed Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121

Step 4: Mount Reed Switch on Wheel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123

Step 5: Test Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124

Step 6: LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126

Step 7: Install Parallax LCD Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

Step 8: Parallax LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

Step 9: Test LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

Step 10: Backlight Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128

Step 11: Final Speedometer Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

Step 12: Battery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130

Step 13: Enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131

Step 14: Install Components in Enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132

Step 15: Attach to Bike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132

Step 16: Take it Out on the Road . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133

Electronic Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134

Intro: Electronic Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135

Step 1: Build enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137

Step 2: Wire buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139

Step 3: Prepare arduino shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139

Step 4: Wire buttons on arduino shield - part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140

Step 5: Wire buttons on arduino shield - part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142

Step 6: Wire buttons on arduino shield - part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144

Step 7: Sand enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144

Step 8: Mount and wire LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145

Step 9: Tempo pot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 10: DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149

Step 11: Amplifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151

Step 12: Wire volume(gain) control pot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151

Step 13: Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152

Step 14: Battery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152

Step 15: Headphone jack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153

Step 16: Install components in enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154

Step 17: Screw on back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156

Step 18: Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156

Step 19: Audio firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157

Step 20: MIDI firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158

Step 21: Editing the firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158

Step 22: Prepare audio files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160

Simple Walker Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161

Intro: Simple Walker Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161

Step 1: Go get stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161

Step 2: Saw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162

Step 3: Bend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163

Step 4: Take apart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163

Step 5: Drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164

Step 6: Mark and drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165

Step 7: Mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166

Step 8: Drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167

Step 9: Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168

Step 10: Mark again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168

Step 11: Drill again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169

Step 12: Zip tie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170

Step 13: Reattach the horn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170

Step 14: Mark and drill a bit more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171

Step 15: Insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173

Step 16: Attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174

Step 17: Mounting holes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174

Step 18: Front legs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 19: Hind legs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177

Step 20: Spacers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178

Step 21: Trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

Step 22: 9V adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

Step 23: Sensor board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180

Step 24: Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181

Step 25: Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183

Step 26: Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183

Step 27: Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184

Step 28: Attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185

Step 29: Plug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186

Step 30: Wire it up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186

Step 31: Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187

The Arduino Synthesizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

Intro: The Arduino Synthesizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

Step 1: How it works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

Step 2: Materials and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189

Step 3: Code, Circuit Diagram, and Power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191

Step 4: Using a breadboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191

Step 5: Wire your Audio Jack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193

Step 6: Connect your photoresistor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194

Step 7: Connect a SPDT switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194

Step 8: Wire the tactile switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

Step 9: Connect the LEDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

Step 10: Test it! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196

Step 11: Drill the enclosure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196

Step 12: Start adding components to the enclosure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197

Step 13: Add the rest of the components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197

Step 14: Wire the audio jack to the Protoboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198

Step 15: Solder in the resistors for photo resistor, tactile switch, and SPDT switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199

Step 16: Solder your LEDs into place . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199

Step 17: Wire the potentiometers to the Protoboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200

Step 18: Attach your knobs to your potentiometers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201

Step 19: Connect the protoboard to the Arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201

Step 20: Play with it! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202

Self-Watering Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203

Intro: Self-Watering Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203

Step 1: Go get stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203
http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216 Step 24: Case closed . . . .instructables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224 Step 5: Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207 Step 9: Start the PCB . . . . . . . . .226 Step 7: More Marking and Drilling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213 Step 19: Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 Step 26: Tubing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 Step 15: Prep the cords . . .223 Step 4: Remove the Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 Step 10: Attach wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206 Step 6: Drill more holes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 Step 28: Place tube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228 Step 10: Attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 Step 27: Probes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 Step 29: Insert tube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 Step 21: 9V clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214 Step 20: Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 Step 6: Mark and Drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 Intro: RC Car to Robot . . . . . . . . . . . . . . . . . . . . . . . . .205 Step 5: Drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 Step 12: Wire the power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222 Step 2: Remove the Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222 Step 3: Unplug . . . . . . . . . . . . . . . . . .215 Step 23: Wire it up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 Step 13: Attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 2: Trim the pump . . . . . . . . . . . . . . . . .204 Step 3: Drill or cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 Step 17: Wire the power . . . . . . .207 Step 8: Cut the cord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 Step 11: Split the wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204 Step 4: Mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 Step 25: Drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 Step 1: Go Get Stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 http://www. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 Step 14: Wire nut . . . . . . . . . . . . . . . . . . .227 Step 8: Attach . . .228 Step 9: Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 Step 18: Install the switch . . . . . . .com/id/RadioShack-presents-18-More-Awesome-Projects/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 Step 22: Plug it in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 Step 16: Prepare the probes . . . . . . .220 RC Car to Robot . . . . . . . . . .219 Step 30: Turn it on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219 Related Instructables . . . . . . . . . . . . . . . . . . . .206 Step 7: Fasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236 File Downloads . . . . . . . . . . .233 Step 16: Clean Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 Intro: Arduino Waveform Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 Step 19: Wire Frequency and PWM Pots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 Step 13: Amplifier: Part 3 . . . . . . . . . . . . .259 Step 25: Firmware . . .241 Step 1: Prepare Arduino Proto Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 Step 17: Put it together . . . . . . . . . . . . . . . . .231 Step 13: Insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230 Step 12: Solder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 Step 22: Wire LEDs: Part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .com/id/RadioShack-presents-18-More-Awesome-Projects/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238 Step 20: Go! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250 Step 12: Amplifier: Part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245 Step 4: Install Audio Jack . . . . . . . . . . . . . . . . . . . . . . . . . .253 Step 16: Connect to Battery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 11: Trim . . . . . .259 Step 24: Glue LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243 File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 Step 18: Program . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 Step 21: Wire LEDs: Part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 Step 8: R2R DAC on Arduino Shield: Part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 Step 18: Wire Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260 File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 Step 15: Wire Gain Pot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 Step 23: Black Diffuser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 Step 11: Amplifier: Part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254 Step 17: Connect Output to Headphone Jack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 Step 10: Low Pass Filter . . . . . . .232 Step 15: Extend . . . . . . . . . . . . .instructables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 http://www. . . . . . . . . . . . . . . . . . . . . . . . . . . .239 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240 Arduino Waveform Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232 Step 14: Drill and Fasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247 Step 6: R2R DAC on Arduino Shield: Part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247 Step 7: R2R DAC on Arduino Shield: Part 1 . . . . . . . . .242 Step 2: Enclosure . . . . . . . . . . . .246 Step 5: Install Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 Step 14: Amplifier: Part 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 Step 3: Solder Button Leads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238 Step 19: Wire it up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 Step 9: IC socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256 Step 20: Install Pots . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274 Step 8: Glue and clamp . .281 Step 15: Clamp and glue again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 Step 29: Floor tom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291 Step 24: Attach motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 Step 27: Screw Back Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 Intro: Arduino-Controlled Robotic Drum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Step 32: Plug in the Shields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 Step 31: Kick drum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 Step 30: Cymbal strikers . . . . . . . . . .264 Arduino-Controlled Robotic Drum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 Step 6: Attach drum sticks . . . . . . .286 Step 19: 24" pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266 Step 2: Attach the motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .com/id/RadioShack-presents-18-More-Awesome-Projects/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292 Step 26: Jack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262 Step 29: Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Step 5: Drill a hole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275 Step 10: Assemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274 Step 9: Motor brackets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282 Step 16: Assemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 Step 21: Prepare the kick drum pedal . . . . . . . . . . . . . . . . . . . . . . . . . . . .308 http://www. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298 Step 34: Attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280 Step 13: 18" pipe . . . . . . . . . . . .278 Step 12: Attach . . . . . . . . . . . . . . . . . . . . . .263 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 26: Last Few Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 Step 18: Fasten . . . . . . . . . . . . . .266 Step 3: Make another . . . . . . . . . . . . . . . . . . . . . . . . . . . . .instructables. . . .283 Step 17: Build another mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262 Step 28: Add Knobs . . . . . . . . . . . . . . . . . . . . . . . . . .280 Step 14: Connect drum sticks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294 Step 27: Snare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 Step 22: Attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295 Step 28: Toms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286 Step 20: Connect the drum stick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290 Step 23: Spacers . . . . . . .265 Step 1: Go get stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272 Step 7: Build more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276 Step 11: Build the mount . . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Step 4: Motor pair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292 Step 25: Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Step 33: Program the Arduinos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .com/id/RadioShack-presents-18-More-Awesome-Projects/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333 Step 19: Non-inverting amplifier: part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319 Step 2: Header Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 35: Extend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313 Step 40: Case closed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340 http://www. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320 Step 3: DAC: Part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 Step 23: DC offset: part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .instructables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325 Step 11: RC low pass filter . . . . . . . . . . . . . . . . . . . . . . . . . .329 Step 16: Batteries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 Step 20: Non-inverting amplifier: part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331 Step 18: Microphone input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 Step 1: Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 Arduino Vocal Effects Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312 Step 39: Wire it up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 Step 13: DC offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 Intro: Arduino Vocal Effects Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327 Step 14: Audio Jack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324 Step 10: Voltage divider . .322 Step 7: 8 pin socket and buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338 Step 28: Half frequency playback . . .337 Step 26: Simple audio out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 Step 21: Non-inverting amplifier: part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 Step 25: Connect to analog input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322 Step 6: Test DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310 Step 36: Plug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321 Step 4: DAC: Part 2 . . . . . . . . .335 Step 22: DC offset: part 1 . . . . . . . . . . . . . . . . . . . . . . .323 Step 8: Wire up pot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329 Step 17: Amplifier socket and power . . . . . . . . . . . . . . .311 Step 38: Jacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315 Step 43: Plug some stuff in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 Step 24: DC offset: part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311 Step 37: Drill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 Step 41: Set up . . . . . . . . . . . . . . . . . . . . .315 Step 42: Cymbals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 Step 27: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316 Step 44: Sequence . . . . . . . . . . . . . . .323 Step 9: Second 8 pin socket . . . . . . . . . . . . . . . . . . .321 Step 5: DAC: Part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 Step 12: More buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327 Step 15: Microphone Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .370 Step 1: Tools and Materials . .352 Step 2: Solder header pins to perf board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375 http://www. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346 Step 35: Knobs . . . . . . . . . . . . . . . . . . . . .358 Step 8: Install switch . . . . . . . . . . . . . . . . . . . . . . . . . . .361 Step 2: File Down the LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369 Earthquake Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355 Step 7: Secure arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341 Step 30: Switch . .372 File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360 iPhone Camera Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342 Step 31: Indicator LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365 Step 5: Solder LEDs to eachother. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343 Step 33: Enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355 Step 6: Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352 Step 4: Piezo buzzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355 Step 5: Power connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370 Step 2: Modify the 9V relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367 Step 7: Get the app and take pictures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362 Step 3: Glue the LEDs together . . . . . . . . . . . . . . . . . . . . . . . . .347 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346 Step 34: Batteries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346 Step 36: Final firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359 Step 9: . .352 Step 3: Parallax compass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 Step 1: Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . and battery clip to enclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366 Step 6: Re-Sleeve the headphone plug with heat shrink. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361 Step 1: Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360 Related Instructables . . . . . . . . . . . . . . . . . . . . . .361 Intro: IPhone Camera Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371 Step 3: Create a home for the 9V relay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .344 File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . and to the headphone jack. . . . . . . . . . . . . Step 29: RC potentiometers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .instructables. . . .370 Intro: Earthquake Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 Intro: Bicycle North Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350 Bicycle North Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359 Step 10: Attach to bike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363 Step 4: Prepare the headphone jack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . buzzer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375 Step 5: Connecting two batteries to the PCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . .com/id/RadioShack-presents-18-More-Awesome-Projects/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343 Step 32: Output switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374 Step 4: The Circuit . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .378 Step 12: Assemble the enclosure & Sink the magnet to the relay coil into the tube. . . . . . . . . . . . . . . . . .376 Step 9: Solder the relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .380 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .com/id/RadioShack-presents-18-More-Awesome-Projects/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376 Step 8: Pin 6 to Pin 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .378 Step 13: Implementation . . . .376 Step 10: Potentiometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .instructables. .377 Step 11: Wire Buzzer and LED . . . . . . . . . . . . . . . . . . . . . . . . .380 http://www. . . Step 6: Solder the 741 op Amps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . and Pin 3 to GND . . .375 Step 7: Pin 4 and 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.Author and Copyright Notices Instructable: Arduino Guitar Pedal Author: randofo License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Arduino Xylophone Author: audreyobscura License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Persistence of Vision Wand Author: amandaghassaei License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Twitter Controlled Pet Feeder Author: amandaghassaei License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Waterproof Solar Powered Boom Box Author: noahw License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: DIY Bicycle Turn Signals Author: audreyobscura License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Arduino Bike Speedometer Author: amandaghassaei License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Electronic Instrument Author: amandaghassaei License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Simple Walker Robot Author: randofo License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: The Arduino Synthesizer Author: audreyobscura License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Self-Watering Plant Author: randofo License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: RC Car to Robot Author: randofo License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Arduino Waveform Generator Author: amandaghassaei License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Arduino-Controlled Robotic Drum Author: randofo License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Arduino Vocal Effects Box Author: amandaghassaei License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Bicycle North Indicator Author: amandaghassaei License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: IPhone Camera Remote Author: audreyobscura License: Attribution-NonCommercial-ShareAlike (by-nc-sa) Instructable: Earthquake Detector Author: audreyobscura License: Attribution-NonCommercial-ShareAlike (by-nc-sa) http://www.

including proper use of equipment and safety gear. and determining whether you have adequate skill and experience. The projects are not intended for use by children. It is your responsibility to make sure that your activities comply with all applicable laws.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Instructables. Inc. http://www.Disclaimer All do-it-yourself activities involve risk. Use of the instructions and suggestions is at your own risk. Many projects on Instructables are user-submitted. Some illustrative photos do not depict safety precautions or equipment. disclaims all responsibility for any resulting damage. and your safety is your own responsibility.instructables. in order to show the project steps more clearly. injury. and appearance of a project in this format does not indicate it has been checked for safety or functionality. Some of the resources used for these projects are dangerous unless used properly and with adequate precautions. or expense. including safety gear.

and rotary switch to have 6 discreet steps between the different effects. 6-Position Rotary Switch (Radioshack #275-1386 ) (x4) Hexagonal Control Knob with Aluminum Insert (Radioshack #274-415 ) (x1) TL082/TL082CP Wide Dual JFET Input Op Amp (8-Pin DIP) (Radioshack #276-1715 ) (x2) 1/4" Stereo Panel-Mount Audio Jack (Radioshack #274-312 ) (x4) 1uF 63v capacitor (Radioshack #55047191 ) (x2) 47uF 16v capacitor (Radioshack #55047280 ) (x1) 100pF 50V 10% Hi-Q Ceramic Disc Capacitor (Radioshack #272-123 ) (x1) 0. The cool thing about this pedal is that it can be endlessly customized. Subscribing to me = fun and excitement! Intro: Arduino Guitar Pedal The Arduino Guitar Pedal is a digital multi-effect pedal based upon the Lo-Fi Arduino Guitar Pedal originally posted by Kyle McDonald . 2012 Author:randofo Randy Sarafan loves you! I am the Technology Editor here at Instructables. and the active mixer stage which lets you combine the clean signal with the effects signal. foot switch. I am also the author of the books 'Simple Bots. In this way. I made a few modifications to his original design.5K Ohm 1/4W 5% Carbon Film Resistor (Radioshack #271-1120 ) (x1) 510K Ohm 1/4W 5% Carbon Film Resistor (Radioshack #55049227 ) (x1) 330K Ohm 1/4W 5% Carbon Film Resistor (Radioshack #44049468 ) (x1) 4. simply program another one. this pedal's potential is largely dependent upon your skills and imagination as a programmer.2K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049409 ) (x1) 1K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1321 ) (x2) 100K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1347 ) (x1) 22K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1339 ) (x1) 33K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55048044 ) (x1) 47K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1342 ) (x1) 68K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049451 ) (x1) Heavy-Duty 9V Snap Connectors (Radioshack # 270-324 ) (x1) 90-Ft.' and '62 Projects to Make with a Dead Computer'. Step 1: Go get stuff You will need: (x1) Arduino Uno REV 3 (Radioshack #276-128 ) (x1) Make MakerShield Prototyping Kit (Radioshack #276-138 ) (x3) 100K-Ohm Linear-Taper Potentiometer (Radioshack #271-092 ) (x1) 2-Pole. UL-Recognized Hookup Wire (Radioshack # 278-1221 ) http://www. The most noticeable changes are the built-in preamp. I also added a sturdier case.Arduino Guitar Pedal by randofo on February 29. If you don't like one of the effects.7K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1330 ) (x1) 12K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049436 ) (x1) 1.082µf 100V Mylar Capacitor (Radioshack #55046837 ) (x1) 5pf 50V Ceramic Disc Capacitor (Radioshack #55047529 ) (x6) 10K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1335 ) (x2) 1M Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1356 ) (x1) 390K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049555 ) (x1) 1.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

You will end up with 4 strips of proper size. http://www.(x1) Enercell® Alkaline 9 Volt Battery (Radioshack #25-853 ) (x1) Box 'BB' Size Orange Powder Coat (Small Bear #0301G ) (x1) DPDT Stomp switch (Small Bear #0203 ) (x1) 1/8" x 6" x 6" rubber mat (x1) 1/8" x 12" x 12" cork mat Step 2: Header breakdown Break the male header strip down to fit properly in the Maker Shield kit.instructables. An easy way to do this is to insert the end of the strip into each of the Arduino sockets and then snap off the excess pins.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Step 3: Solder Insert the male header pins into the Maker Shield and solder them into place. http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

http://www. Starting from the left side. and in case you need an extra. (The file has the pattern repeated twice in case to optimize use of the paper. Next. Widen the last hole of the top row with a 5/16" dill bit. stick the next adhesive template to the back edge. stick it to the edge face most closely abutting the potentiometer holes. and the case should be ready. widen the first three holes with a 9/32" drill bit.) Step 5: Drill Peel off the backing of the adhesive template and stick it squarely on the front of the casing. Drill all of the crosses with a 1/8" drill bit. Cut out each of the two squares. Peel away this template as well. Peel off the adhesive template from the front of the case.instructables. In other words. And then widen the singular hole in the bottom right with a 1/2" spade bit to finish off the front of the case.Step 4: Template Print out the attached template on full-sheet adhesive paper.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Drill the crosses first with 1/8" holes and then widen them with larger 3/8" holes.

instructables.http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

and a red power wire to the pin on the right.instructables. For simplicity's sake.Step 6: Wire the pots Attach three 6" wires to each of the potentiometers. a green signal wire to the pin in the middle. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . you should attach a black ground wire to the pin on the left.

rotary switch. each pin has a discrete resistance associated with it. what you need to know is that there is both a 100k potentiometer connected to analog pin 3 and a 6-position rotary switch connected to analog pin 2. As you select different pins. but rather than sweeping through a resistance range. the Arduino is then converting this to a digital signal using its built in ADC. Arduino Input The input for the Arduino was copied from Kyle's input circuit . This is a processor intensive activity and where most of the Arduino's resources are being allocated. To be sure you did this right. check out this page on Arduino Real-Time Audio Processing . you may consider testing the connections with a multimeter. Step 8: Build the circuit Start to build the circuit as pictured in the schematic. It is basically taking the audio signal from the guitar and constraining it to roughly 1.2V. and input jacks. attach 6" red wires to the 3 outer pins both to the immediate left and right of the black inner pin. To learn more about that. To see the schematic larger. Since the analog reference voltage had to be remapped to handle the incoming audio signal. For now. I'll explain a bit more about the code later. do not worry about the potentiometers. The preamp is both boosting the guitar signal to line level and inverting the signal.instructables. To better understand what you are doing.Step 7: Wire the Rotary Switch Attach a 6" black wire to one of the inner pins. because the aref voltage within the Arduino has been configured to look for an audio signal in this range. click the little "i" in the upper right-hand corner of the image. in relation to the hardware. it is important to use aref as the voltage source. The signal is then being sent to analog pin 0 on the Arduino.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Arduino The Arduino is where all of the fancy-shmancy digital signal processing is happening. as opposed to the standard http://www. voltage dividers of different values are created. this circuit consists of a few different parts: Preamp The preamp uses one of the two op amps packaged in the TL082. Next. From here. The 6-position rotary switch is functioning in a similar way to a potentiometer. bypass switch. while building the circuit. For now. When it comes out of the op amp the signal is split between the Arduino input and the "clean" volume knob for the mixer. You can get a faster conversion rate and do more multiprocessing of the audio signal using timer interrupts.

it bypasses the effects (and hence. I have included the Fritzing file for this circuit if you want to look at it closer. File Downloads ArduinoPedal. From there I scrapped the rest. However. This file does not include the input and output jacks. I stuck with his suggested weighted resistor ratings of 1. The part I kept was the weighted pin approach to get the Arduino to output 10-bit audio using only 2 pins. Mixer Output The effects output from the Arduino goes to a 100K pot connected to the audio mixer op amp. is a bypass switch). rename it to 'ArduinoPedal.5K x 256). or skips all of this entirely and sends the input straight to the output jack without any altering.instructables. From here the signal goes through a 1uF DC blocking capacitor and finally to the output jack. it either routes the incoming audio to the TL082 and the Arduino.5V for both the rotary switch and the potentiometer. His output stage components were unnecessary because the audio was not going to an output. if you see .fz (905 KB) [NOTE: When saving. but rather to the new audio mixer stage.5K as the 8-bit value and 390K as the added 2-bit value (which is basically 1. This pot is then used in conjunction with the clean signal coming from the other 100K potentiometer to mix the volume of the two signals together in the op amp. The breadboard view and schematic view should be relatively accurate.com/id/RadioShack-presents-18-More-Awesome-Projects/ . In other words. In essence.tmp as the file ext. the PCB view has not been touched and probably will not work at all. and inverting the signal once again to get it back in phase with the original guitar signal. The second op amp on the TL082 is both mixing the audio signals together.fz'] http://www. Bypass Switch The bypass switch toggles between the effects circuit and the output jack. Arduino Output The Arduino output is only loosely based on Kyle's circuit.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. They both should be cut out of non-conductive material. Install the rotary switch in the same fashion in the larger 5/16" hole. I cut out the larger base bracket out of a thin cork mat and the smaller potentiometer bracket out of 1/8" rubber. Step 10: Insert knobs Place the rubber bracket on the inside of the case so that it aligns with the drilled holes. http://www. Insert the potentiometers up through the rubber bracket and the 9/32" holes in the case and lock them firmly in place with nuts.Step 9: Cut Brackets Cut out two brackets using the template file attached to this step.

Step 11: Trim If you use long shaft potentiometers or rotary switches.com/id/RadioShack-presents-18-More-Awesome-Projects/ . trim them down such that the shafts are 3/8" long. http://www.instructables. I used a Dremel with a metal cutting wheel. but a hacksaw will do the job too.

Lastly. connect the black wire from the battery snap to one of the stereo audio tabs. Step 13: Stereo jacks We will be using stereo jacks for what is fundamentally a mono circuit. The reason for this is that the stereo connection will actually serve as the power switch for the pedal.com/id/RadioShack-presents-18-More-Awesome-Projects/ . So. first connect together the ground tabs on each jack with a short piece of wire. Connect a 6" black wire to the other stereo tab on the other jack.instructables. To make this work. it connects the batteries ground connection (which is connected to the stereo tab) with the ground connection on the barrel. This is the large tab that touches the tip of the male mono plug. connect a 6" red wire to the mono tabs on each of the jacks. only when both jacks are inserted can ground flow from the battery to the Arduino and completed the circuit.Step 12: Switch Insert the foot switch into the larger 1/2" hole and lock it in place with its mounting nut. This is the smaller tab that touches the jack about halfway up the plug. Next. The way this works is that when mono plugs are inserted into each of the jacks. http://www.

http://www. Make adjustments as necessary.instructables. check that none of the metal tabs on the jack are touching the body of the potentiometers.Step 14: Insert jacks Insert the two audio jacks into the two holes in the side of the case and lock them in place with their mounting nuts. Once installed.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

http://www. Step 16: Finish the wiring Trim the wires attached to the components installed inside the case to remove any slack before you solder them to the Arduino shield.instructables. Wire them to the Arduino shield as specified in the schematic. Wire one of the jacks to one of the center pins on the switch. The wire that is in line with the jack on the right should be the input.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 17: Cork Affix the cork mat to the inside of the case's lid. The wire that is in line with the switch on the left should be the output.Step 15: Wire the switch Wire one of the outer pairs of the DPDT stomp switch together. Wire the other jack to the other center pin. This will keep the pins on the Arduino from getting shorted on the metal of the case. Connect a 6" wire to each of the remaining outer pins on the switch.

However.Step 18: Program The code that this pedal is largely built upon ArduinoDSP which was written by Kyle McDonald. That said. I was inspired to try creating a delay line after seeing this really simple code posted on Little Scale blog. if you see . rename it to 'Arduino_Guitar_Pedal. To learn more about how his code is working. you can replace any slot with any code that you wish. He did some fancy things like mess around with the registers to optimize the PWM pins and change the analog reference voltage.com/id/RadioShack-presents-18-More-Awesome-Projects/ . but I have only included 5. There are 6 spots for different effects in my code.instructables. I have left a blank spot in the code for you to design and enter your own effect. check out his Instructable .tmp as the file ext. The Arduino was not designed for real-time audio signal processing and this code is both memory and processor intensive. File Downloads Arduino_Guitar_Pedal. I suspect the addition of a stand-alone ADC chip and external RAM will greatly improve the ability for this pedal to do awesome things. The code that is based on the audio delay is especially memory intensive. Download the code attached to this step. keep in mind that trying to do anything too fancy will overwhelm the chip and keep anything from happening. One of my favorite effects on this pedal is a slight audio (distortion) delay.zip (3 KB) [NOTE: When saving.zip'] http://www.

Step 20: Power Plug in the 9V battery to the 9V battery connector.instructables. Carefully situate the battery snugly between the DPDT switch and the Arduino. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 19: Attach Attach the Arduino to the shield inside the case.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. Lock them in place by tightening the set screws. http://www. Step 22: Knobs Place knobs onto the potentiometer and rotary switch shafts.Step 21: Case closed Put the lid on and screw it shut.

Related Instructables Distortion Pedal Helicopter .instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . connect an amp to the output.Step 23: Plug and play Plug in your guitar to the input. With Stutter Plush Fuzz The Fuzz of Scanner Pedal Multi-Switch Auto Stutter Effect by Pedal by randofo 1000 Faces by Board by raxel Foot Pedal Stompbox randofo DIY Guitar Pedal (Photos) by nsnip FET Distortion Harrymatic Board (Effects Pedal by Cookie (Photos) by jakebaldwin Pedal Briefcase) Monster! by SyllogismRXS http://www. and rock out.

a drumkit. Intro: Arduino Xylophone I made a xylophone that uses an Arduino Mega to detect when a note is struck. To construct the xylophone I used the following parts from Radioshack: (x1) Arduino Mega 2560 (Radioshack #276-127) (x12) Piezo Element (Radioshack #273-073) (x12) 1M Ohm resistors (Radioshack #271-1356) (x1) Single Core wire (Radioshack #278-1221) (x1) Printed Circuit Board (Radioshack #276-170) (x1) USB 2. and play electric ukulele.. 2" masking tape Tools: laser cutter scissors cotton swabs small flat head screw driver http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Arduino Xylophone by audreyobscura on June 6. with one tool. The following steps will outline what I used to make this xylophone.0 Cord (Radioshack #26-714) (misc) Electrical Tape (Radioshack #64-2373) (misc) Heat shrink (Radioshack #55048444) The housing for the xylophone was easy to build.instructables.. and generate MIDI output. and any other MIDI controlled sound instrument. I used: 1/4" plywood 1/8" acrylic sheeting wood glue 1/4" vinyl tubing 1 1/2" long machine screws. This project is wondeful because I essentially made a xylophone. Step 1: You will need.com i work at instructables! i make things with technology. 2012 Author:audreyobscura audreyObscura. eat pho.

instructables. then solder longer leads. and popped the bottom of the case off. so I used 12 piezos.but for this project I needed to remove them from their plastic. to protect the disc from being bent or smashed . For this project. The piezo element could then be removed from the outside of the housing. Carefully.Step 2: Free the Piezos. http://www. 12 notes. you could hear the glue crack apart from the plastic. I decided to just include an octave & a half. When I was done soldering longer leads on to each piezo. I soldered longer wires to each piezo element. I used piezo elements to detect when each note is struck on the xylophone. I loosened the bottom of the casing.com/id/RadioShack-presents-18-More-Awesome-Projects/ . By gently pressing around the edges with my fingers. Often the elements come in a housing. I insterted a precision flat-head screw driver. After they were free from their case. or 16 Piezos. or a knock. I wrapped my solder points with heat shrink or electrical tape. to prepare them to be inserted into the xylophone. These piezos detect vibration. I could have up to 16 Analog inputs. Because I am using an Arduino Mega Board.

instructables. The acrylic bars were each 10x2 inches. The CorelDraw file for the base housing is attached to this step.Step 3: The Bars and Housing.com/id/RadioShack-presents-18-More-Awesome-Projects/ . It forms a shallow box that supports the electronics embedded within it. and mount to the top panel of the wooden housing. The wooden housing I designed is 10. I used CorelDraw to draft vector files that would guide the laser cutter for the housing and bars of the xylophone. I used woodglue and a cotton swab to secure all of the corners.5x30x3 inches. http://www. Each bar has two holes in them that will guide a machine screw through the bar. and allowed 24 hours to cure before I sanded down all of the edges.

instructables.http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

rename it to 'xylophone.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and used 2 inch blue masking tape to adhere the piezo to the bar.File Downloads xylophone.cdr'] Step 4: Attach the Piezos to the Bars I threaded the Piezo wires through the middle holes in the top panel of the housing. Then. http://www. I centered the piezo element on each acrylic bar.tmp as the file ext.instructables. if you see .cdr (16 KB) [NOTE: When saving.

and slip it into the paneling. I used 1 1/2" machine screws and nuts to secure the bars to the wooden paneling. I decided to use vinyl tubing as a shock absorber on each machine screw. then the vinyl. I was able to twist on the nut to fully secure it to the panel. Thread the machine screw through the bar. http://www.instructables. or on the bar. When the screw was through the panel. To prevent excessive shake or vibration on each bar.com/id/RadioShack-presents-18-More-Awesome-Projects/ . I used 24 machine screws and nuts. to avoid stress on the paneling. All of these should only be finger-tight.Step 5: Attach the Bars to the top Panel. With 12 bars. and 24 3/4" lengths of vinyl tubing.

and to protect the analog input ports on the Arduino. Next. After I soldered the resistors into place. in line wtih the same end of each grounded resistor. Before connecting the piezos to the Arduino. I connected a 1-megohm resistor in parallel to the Piezo element to limit the voltage and current produced by the piezo. I cut 12 lengths of green wire to be my "signal wire" to the Arduino. http://www.instructables. I soldered all of the piezos' ground wires into place. The positive lead from the piezos is soldered in to the same rail as the other end of each resistor. I marked with a permanent marker which piezo goes to each analog input port on the Arduino. The fritzing diagram file is attached to this step. I also made the same markings on the back of the top wooden panel.Step 6: Build the circuit.com/id/RadioShack-presents-18-More-Awesome-Projects/ . I ran a small jumper wire from one end of the resistor. Each signal wire is soldered into the same positive resisted rail of the piezo. to the longest rail on the PCB. and designated it my ground rail. On the PCB.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.http://www.

0. All remaining Analog ports must be grounded! Otherwise it will affect your serial output from the arduino. or sketch.0. you can load the xylophone program.begin(57600).0.90.64. // Cycles before a 2nd hit is allowed #define midichannel 1.0.0.400. writing which port each wire was designated to. A14.'A11'}.0}.'A3'.400.'A1'. and the ground wire running from the PCB and marked each one with blue masking tape.instructables.90.0.0.0. // Velocity ON (true) or OFF (false) //******************************************************************************************************************* // Internal Use Variables //******************************************************************************************************************* boolean activePad[16] = { 0.'A8'.'A5'. // connect to the serial port 115200 } //******************************************************************************************************************* // Main Program //******************************************************************************************************************* void loop() { for(int pin=0.400. //Xylophone //Adapted for an ArduinoMega //from Jenna deBoisblanc and Spiekenzie Labs initial code //******************************************************************************************************************* // User settable variables //******************************************************************************************************************* int pinRead.0.400. char pinAssignments[6] ={ 'A0'. //******************************************************************************************************************* // Setup //******************************************************************************************************************* void setup() { Serial.0.0. int hitavg = 0. (A12.90.63.400.65.400.59.90.0.400.'A6'. pin < 16.67.69.90.72}.0.Step 7: Connecting to the Arduino I took all of the signal wires.400.0.0.0.400.90.60.90.200.'A9'.90. // Minimum Analog value to cause a drum hit int MaxPlayTime[16] = { 90.90. I then fed all of the marked single core wire into the corresponding ports of the Arduino. pin++) // { http://www.0.0}. // Counter since pad started to play byte status1.'A2'.0.400. I used 4 black wires.0. // MIDI notes from 0 to 127 (Mid C = 60) int PadCutOff[16] = { 400. byte PadNote[16] = { 57.0. running from the ground rail of the PCB directly to the open analog ports of the Mega board.400. Here is the sketch I used.'A7'. and A15) When you have completed your circuit.0. onto the Arduino board from the Arduino Developing Environment .400}. // Array of flags of pad currently playing int PinPlayTime[16] = { 0.90.70.66.90.0.'A4'. A13.68.400.0.90}.800. int pin = 0.62.58.61.com/id/RadioShack-presents-18-More-Awesome-Projects/ .90.0.90.0.0.0. // MIDI channel from 0 to 15 (+1 in "real world") boolean VelocityFlag = true.0.71.90.'A10'.

} MIDI_TX(144. // read the input pin if((hitavg > PadCutOff[pin])) { if((activePad[pin] == false)) { if(VelocityFlag == true) { // hitavg = 127 / ((1023 .PadNote[pin].hitavg). // With full range (Too sensitive ?) hitavg = (hitavg / 8) -1 .PadNote[pin].write(VELOCITY).com/id/RadioShack-presents-18-More-Awesome-Projects/ . pin++){ hitavg = analogRead(pinAssignments[pin]). } } else if((activePad[pin] == true)) { PinPlayTime[pin] = PinPlayTime[pin] + 1. // for (pinRead=0. // Upper range } else { hitavg = 127. if(PinPlayTime[pin] > MaxPlayTime[pin]) { activePad[pin] = false.PadCutOff[pin])).instructables.write(PITCH). Serial. Serial. Serial.0). } } } } //******************************************************************************************************************* // Transmit MIDI Message //******************************************************************************************************************* void MIDI_TX(byte MESSAGE. //note on PinPlayTime[pin] = 0. //Serial. MIDI_TX(144. //int pin = 3. pinRead < 16.write(status1). byte PITCH.PadCutOff[pin]) / (hitavg . } else { PinPlayTime[pin] = PinPlayTime[pin] + 1. activePad[pin] = true. } http://www. byte VELOCITY) { status1 = MESSAGE + midichannel.println(hitavg).

I could hide most of the USB cord in the housing. that was big enough for the ends of the cable. I drilled a second hole to hold my mallots. http://www.instructables. The Arduino can be powered via USB.Step 8: Power and communication.com/id/RadioShack-presents-18-More-Awesome-Projects/ . I ran a USB cable through the housing of the xylophone. By drilling a small hole. which doubles as a communication port.

You cannot have the bridge running while trying to communicate to the board from the Arduino software. Finally turn it back into a xylophone and create a melody track for the best song ever.Step 9: Serial to Midi To get the xylophone coupled with my comptuer I used software called Hairless .webb sensors (Photos) by Bruno Ratnieks http://www.instructables. Note: Disable the bridge while trying to update the sketch on the Arduino board. This thing is a lot of fun! Related Instructables Arduino playing What is MIDI? Musical MIDI Acoustic Guitar "Puff the Magic Arduino/Ableton Controlling Diy Piezo SNF Drumming Converting a by Shoes by Color Organ. Then kick change the MIDI instrument to a bass synth. and Ableton can read and record. It converts the serial out signal from the Arduino into a MIDI signal that programs like GarageBand. Logic. Record your beat track.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Cubase with MIDI Glove Dragon" on a rescued toy into amandaghassaei thobson Pickups by piezo (video) by MIDI controlled Arduino based using Arduino a MIDI controller rbneville and light earthshine (video) by _Aias MIDI by pstretz by zen. and record a rhythm track. you can play the xylophone like drums. Be sure that the bridge is running before you try and import MIDI data from the xylophone. Step 10: Jam it! After you are up and running.

http://www. but if you move it quickly back and forth.com Currently working for instructables! Intro: Persistence of Vision Wand Persistence of Vision (POV) Wands are a fun way to create interesting long exposure photographs and light displays. write personalized messages. and schematics. you will see text or an image appear.instructables.025A = 80ohms I used 100 ohm resistors so that the LEDs wouldn't be operating at their maximum ratings. and maybe even add something new to the project! Parts list: (1x) Arduino Uno REV 3 Radioshack #276-128 (20x) Amber Super-bright LED Indicator Radioshack #55050630 (1x) Arduino Proto Shield Radioshack #276-140 (1x) 9V Alkaline Battery Radioshack #23-866 (1x) Heavy-Duty 9V Snap Connectors Radioshack #270-324 (20x) 1/4 watt resistors (sample calculation below) from the specs of the LEDs I used: "Continuous forward current: 25mA" "Forward voltage: 3V" using the following relationship: V(volts) = I(amps) * R(ohms) rearranged to: R=V/I we can calculate the resistance as follows: voltage across resistor = 5V . This wand project is incredibly customizable. The wand consists of a single row of LEDs controlled by an Arduino Uno. I've included all CAD files. build documentation. When the wand is turned on it appears to be flickering in a random pattern. I've attaching a fritzing document with a breadboard and schematic view of the circuit (and included them above) for reference.Persistence of Vision Wand by amandaghassaei on March 14. Feel free to choose your own color LEDs. 2012 Author:amandaghassaei amandaghassaei. Check the datasheet of the LEDs you use to calculate these values. firmware.com/id/RadioShack-presents-18-More-Awesome-Projects/ .3V = 2V 2V / 0.

Drill out the holes with a drill and a small drill bit.instructables. cardboard. The rectangular holes at the bottom of the wand will be used for mounting a 9 volt battery. but you could use a piece of plywood. or plastic. Image Notes 1.1" hole spacing for the LEDs and resistors. I laser cut a piece of acrylic into a wand shape. http://www.tmp as the file ext. if you see .com/id/RadioShack-presents-18-More-Awesome-Projects/ . top of wand 2. I've attached the adobe illustrator and eps files of the wand and correct hole 0. even if you don't have a laser cutter.fz (529 KB) [NOTE: When saving. rename it to 'pov wand. bottom of wand File Downloads pov wand.fz'] Step 1: Build a support for your wand The first thing you'll want to do is make a mount for your project. these files still might be useful to print out as a template.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.Step 2: Add resistors Thread the leads of all 20 resistors through their holes on the wand mount.instructables.

Step 3: Solder resistors Each resistor is connected to an LED on one side and ground on the other. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. Bend one of the leads of each resistor so that they are touching each other and solder them all together in a row. Clip the excess metal from the leads. Leave the last lead unclipped so that it can be attached to a wire later.

If they need to be adjusted it will be much easier with only two pins soldered down. Once everything is lined up. solder the middle pins (figure 5). Make sure you are soldering them on the correct side! For best results I recommend soldering the first and last pins first (as in figure 3).com/id/RadioShack-presents-18-More-Awesome-Projects/ . then check to see if the pins are straight and flat on the board (figure 4).Step 4: Add header pins to protoboard Solder header pins to the pins connections on the arduino protoboard. http://www.instructables.

only first and last pins soldered 1.instructables. http://www. check alignment Image Notes 1. Image Notes Image Notes 1. all pins soldered Step 5: Attach toggle switch Solder the toggle switch onto the middle of the arduino proto-shield as shown in the images above. Solder a jumper wire between the side lead of the switch and the Vin pin on the proto-shield.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

As you solder each connection.Step 6: Attach battery connections Solder the red lead of the battery connector to the middle pin of the switch.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Solder the black lead of the battery connector to the ground pin of the protoshield. Step 7: Wire up LEDs Attach wires to each of the LEDs on the wand.instructables. clip the excess lead off the end of the LED (figure 3). http://www.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . You can find the fritzing file below. the left-most LED is the top of the wand and the right is the bottom.instructables.Step 8: Connect LEDs to arduino shield Strip the ends of each of the LED wires and connect to the pins of the arduino proto-shield. Be sure to follow the pin connections below correctly. In the schematic (figure 4) the left most LED is the bottom and and right most is the top. I've also attached the breadboard diagram from fritzing (figure 3). Pin connections: Top of wand 1 Digital Pin 13 2 Digital Pin 12 3 Digital Pin 11 4 Digital Pin 10 5 Digital Pin 9 6 Digital Pin 8 7 Digital Pin 7 8 Digital Pin 6 9 Digital Pin 5 http://www.

10 Digital Pin 4 11 Digital Pin 3 12 Digital Pin 2 13 Digital Pin 1 14 Digital Pin 0 15 Analog Pin 5 16 Analog Pin 4 17 Analog Pin 3 18 Analog Pin 2 19 Analog Pin 1 20 Analog Pin 0 Bottom of wand Image Notes 1. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. bottom of wand Step 9: Connect to ground Strip both ends of a (preferably black) wire and connect the unclipped resistor lead to a ground (gnd) pin on the arduino shield. bottom of wand Image Notes 1. top of wand 2. top of wand 2.

1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1.must be in all caps. 1. 0. 0. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0.h>//need to store letter arrays in flash memory. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 0. 0. //letterArray to make sure firmare is loaded correctly. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 0. 0. If you have trouble uploading be sure that nothing is connected to digital pins 0 and 1 and that you have selected the correct board and serial port under the Arduino/Tools menu. 1. 0. 1. 1. 0. 0. 1. boolean letterC[] PROGMEM = { 0. 0. 1. 1. 0. 0. 0. 0. 1. }. 1. 0. no punctuation byte refreshrate = 1. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 1. 0. 0. 1. 1. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1.//for portD //variables byte n. 1. 0. 1. 0. 0. 1. 1. //variable for loops //The letters of the alphabet. 0. 1. 0. 1. 1. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 0. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. boolean letterI[] PROGMEM = { 1. 0. 0. 1. 0. 0. 1. 1. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 0. 0. 0. 1. 0. 0. 1. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1.//POV Wand Arduino code //by Amanda Ghassaei //instructables. 0. 1.length(). 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1.edit the look of these if you want. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. you can read more about how that works here: http://www. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 1.instructables. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. boolean letterG[] PROGMEM = { 0. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 0. 1. 0. or * (at your option) any later version. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. * but WITHOUT ANY WARRANTY. 1. 0. 1. 1. 1. 0. }. 0. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1.or else we run out of space. 0. 1. 1. 1. http://www. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. just make sure the letters m and w are 15 pixels wide and the rest are 12 pixels boolean letterA[] PROGMEM = { 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. }. 1. 1. 1. 0. boolean letterD[] PROGMEM = { 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 1. 0. 0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0.arduino. 0. 1. 1. 1. 1. 0.com/id/RadioShack-presents-18-More-Awesome-Projects/ . 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. }. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. When the arduino reads the message you would like to display it compares each letter to one of its stored letters and then outputs the stored array column by column. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1.cc/en/Reference/PortManipulation //I've also included (and commented) the standard arduino library commands that perform the same functions and the port commands in case you are interested #include <avr/pgmspace. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. boolean letterF[] PROGMEM = { 1. 0. 0. 0. 0. 1. You will insert your own message into the arduino firmware in a later step. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. boolean letterB[] PROGMEM = { 1. 1. 1. 1. 1. 0. 1.each led should light up in order upon turning on boolean load[]= { 1. 1. 0. 1. boolean letterH[] PROGMEM = { 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 0. //variable for loops byte t. 0. 1. 0. 0. }. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 1. 0. 1. 0. 0. 0. 0. 0. 1. 0. 1. 0. 0. 0. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. spaces are fine. 0. */ //in most of this code I have used the arduino portpin assignments to send data to pins. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 1. 0. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 0. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. more info here: http://arduino. 1. 0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. }. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 0. you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. 0. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 0. 0. 1. 1. 0. 0. 1. 0. 1. 0. 1. 0. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. }. 1. 0. * * This program is distributed in the hope that it will be useful. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1.cc/en/Reference/PROGMEM /******************************************************************************* THIS NEXT SECTION IS WHAT YOU'LL WANT TO EDIT TO CREATE YOUR OWN MESSAGES *******************************************************************************/ // setup String povtext = "POV". 0. 0. 1. 1.//for portB byte data2 = 0. 0. boolean letterJ[] PROGMEM = { 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 0. 0. 1. 0. 0. 0. 0. 1. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 0. 0. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 1. 0. 0. 1. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 0. 0. 1. 0. 0.//for portC byte data3 = 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1.com/amandaghassaei //April 2012 //for use with arduino uno or duemilanove with atmel328 /* * This program is free software. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 1. 0. 0. 1. 0. 1. 1.//PUT YOUR MESSAGE HERE!!. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 0. 0. 1. 1. 0. 1. 0.experiment with different values //get length of string povtext int dimtext = povtext. 0. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. This code stores a set of binary arrays onto the arduino that generate each letter in the alphabet. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. either version 3 of the License. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 0. 0. 1. 1. 1. //incoming data storage byte data1 = 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. }. 0. 1. 1. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 1. 1. 0. 0. 0. 1. 0. boolean letterE[] PROGMEM = { 1. 0. 1. 1. 0. 1. 1. 0. 0. 0. 0. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. See the * GNU General Public License for more details. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. 0. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. //variable for loops byte l. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 1. 0. 1. 1. 1. 0. 1. 0. 0. }. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 0.//delay time for pixels to refresh in milliseconds. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1.Step 10: Upload firmware Download the POV wand firmware below and upload it onto your arduino board. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 0. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 1. 0. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 0. 0. 1. 1. 0. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. }. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1.

1. 0. 1. 0. 1. 0. 0. 1. 0. 1. 0. 0. 1. 1. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. boolean letterM[] PROGMEM = { 1. 0. 1. 0. }. 0. 0. 1. 1. 0. 0. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. l++){ //for next eight rows of data data2 = data2 << 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 1. 1. }. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. boolean letterN[] PROGMEM = { 1. 0. 0. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. HIGH). 0. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 1. 0. LOW). 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 1. 0. 1. 1. 0. 1. 0.//bitwise shift left data1 |= pgm_read_byte_near(letterArray + (l*12+t)). 1. 1. 0. 1. 0. //// } //// else { //// digitalWrite(A0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. //// } //// if (letterArray[15*12+t]) { //// digitalWrite(A4. 0. 1. 0. 1. 1. 0. 0. 1. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. //// } //// else { //// digitalWrite(A2. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 0. }. 1. 0. 1. 1. 0. 0. 1. 1. 0. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. LOW). 1. PORTD = data2. 0. 1.more info http://www. 0. 1. 0. 1. 1. 1. 1. 1. 1. //// } //// //// //// delay(refreshrate). 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. data2=0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. pin>=0. 1. 0. 1. 1. 1. 1. 1. 1. }. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 1. 1. 0. 1. }.//add next value from dataset } for (l=14. 0. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1.//bitwise shift left data3 |= pgm_read_byte_near(letterArray + (l*15+t)). 1. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. }. 1. 1. 1. 1. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 0. 1. 0. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 0. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. //// } //// else { //// digitalWrite(A1. 1. 1. 1. 1. 0. l++){ //for first six rows of data data1 = data1 << 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 0. //clear data storage data1=0. 1. 0. 1. 1. 1. l++){ //for first six rows of data data1 = data1 << 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 0. 1. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 0.com/id/RadioShack-presents-18-More-Awesome-Projects/ . 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 0. 1. boolean letterL[] PROGMEM = { 1. 1. 0. 1. 1. 1. l<20. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 0. }. 1. 0. 0. 0. 0. 0. 0. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1.//bitwise shift left data1 |= pgm_read_byte_near(letterArray + (l*15+t)). 1. 0. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. HIGH). 1. 1. 1. //clear data storage data1=0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 1. }. 0. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. } } void sendToWandMW(boolean letterArray[]){//M and W are extra wide. 0. 1. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 0. 1. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. HIGH). 1. 1. 1. 1. 1. 1. t<12. 0. 0. 0. 0. boolean letterW[] PROGMEM = { 1. 1. 0. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. }. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 0. 0. boolean letterR[] PROGMEM = { 1. 1. 1. 1. 1. 1.instructables. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 0. //// } //// else { //// digitalWrite(A4. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. HIGH). 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 1. l<20. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0. //// } //// else {//if matrix element == 0 then turn led off //// digitalWrite(A5. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1.set all pins to output. 1. 1. 0. 0. 1. //// } //// else { //// digitalWrite(A3. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. }. 1. 1. 0. 1. 0. 1. 1. 0. LOW). 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 0. l<14. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 0. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 0. 0. 1. //// } //// if (letterArray[19*12+t]) { //// digitalWrite(A0. 0. 1. 1. 1. 0. 1. t++){ //for each time step of matrix //// //// for (int pin= 13. }. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. //// } //// if (letterArray[18*12+t]) { //// digitalWrite(A1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. boolean letterV[] PROGMEM = { 1. 0. 0. 1. 0. 1. 0. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 0. l++){ //for next six rows of data data3 = data3 << 1. 1. 1. 0. 0. 0. 1. 0. 0. 0. 1. 1. 1. 0. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 1. 1. 0. 1. }. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 0. 0. 1. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. } } // //SAME AS ABOVE BUT WRITTEN USING ARDUINO LIBRARY COMMANDS: // //// for (t=0. boolean letterO[] PROGMEM = { 0. 0. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 1. 0. 1. 1.//bitwise shift left data3 |= pgm_read_byte_near(letterArray + (l*12+t)). 1. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. LOW). 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. LOW). 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 0. pin--) {//this loop sets digital pins 0-13 either high or low depending on the value of the corresponding matrix element //// if (letterArray[(13-pin)*12+t]) {//if matrix element == 1 then turn led on //// digitalWrite(pin. 1. 1. }. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 0.//bitwise shift left data2 |= pgm_read_byte_near(letterArray + (l*12+t)). 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 1. boolean letterY[] PROGMEM = { 1. 1. 1. 0. 1. 0. 1. boolean letterT[] PROGMEM = { 1. 0. boolean letterQ[] PROGMEM = { 0. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 0. boolean letterU[] PROGMEM = { 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1.0. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1.//bitwise shift left data2 |= pgm_read_byte_near(letterArray + (l*15+t)). 1. 0. 1. 0. 1. delay(refreshrate). 1. 0. 0. }. 0. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 0. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. LOW). 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1.//add next value from dataset } //SET PINS: PORTB = data1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 0. 0. 0. boolean letterP[] PROGMEM = { 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 0. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. //// } //// if (letterArray[17*12+t]) { //// digitalWrite(A2. 0. 0. 1. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. l<6. 0. 1. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 0. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. }. 1. 0. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. boolean letterS[] PROGMEM = { 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 0. 1. 0. 1. 0. 1. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 0. 0. 0. 1. l<14. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 0. 1.//delay after each column of data is displayed //// }//go to next time step void setup() { //port/pin assignments. 0. 1. 0. 0. //// } //// } //// //// //the following lines address the analog pins indivially and set them either high or low depending on matrix element //// if (letterArray[14*12+t]) {//if matrix element == 1 then turn led on //// digitalWrite(A5. 0. 0. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. //// } //// else {//if matrix element == 0 then turn led off //// digitalWrite(pin. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. HIGH). 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 0. 0. 0. 1. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 0. 1. 0. 1. boolean letterK[] PROGMEM = { 1. 1. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. LOW). 1. 0. 1. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. boolean letterX[] PROGMEM = { 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 1. 0. 1. 0. 1. l<6. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. data2=0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 0. 1. PORTC = data3. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0.//add next value from dataset } for (l=6. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 1. 0. data3=0. 1. 1. 0. 0. 0. 0. PORTC = data3. 0. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 1. 0. 0. 1.they have a special function to get array data (with 15 time steps instead of 12) //send data to leds via port/pin manipulation for (t=0. 1. 1. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 0. 0. 1. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. HIGH). 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 1. 1. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 0. 1. 1. 1. 0. 1. HIGH). 1. 1. 1. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 1. 1. 0. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. t++){ //for each time step for (l=0. 0. 1. 1. 1. 0. 0. 1. 0. 0. 1. 0. 1. 0. 0. data3=0. 1. 0. 1. 1. 0. boolean letterZ[] PROGMEM = { 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 1. 0. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1.//add next value from dataset } //SET PINS: PORTB = data1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 0. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. l++){ //for next six rows of data data3 = data3 << 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 1. PORTD = data2. 1. 1. 1. 1. 1. 0. 1. 0. t<12. 1. 1. 0. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 0. 0. }. 1. 0. 1. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1.//add next value from dataset } for (l=14. 0. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 0. 0. 0. 0. 1. 1. 0. 0. 0. 1. t<15. 1. 0. 1. 0. 1. 1. 0. 1. 0. 1. 0. 1. 1. t++){ //for each time step for (l=0. 1. 0. 0. 0. 0. 0. 1. 1. 0. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. }. 0. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. l++){ //for next eight rows of data data2 = data2 << 1. 1. 0. 0. 1. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1.//add next value from dataset } for (l=6. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 0. 1. 0. 0. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 1. 0. 1. 1. 1. 1. 0. 1. 0. 1. 1. 1. 0. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 1. 1. void sendToWand(boolean letterArray[]){//function to get array data for (t=0. 1. 0. 0. delay(refreshrate). 1. 0. 1. //// } //// if (letterArray[16*12+t]) { //// digitalWrite(A3. 1. 1. 0. 0. 1. 1. 1. 1. 1.

OUTPUT).charAt(n)==' ') { PORTB = 0. PORTD = 0. PORTC = 0. } else if (povtext. PORTC = 0. delay(refreshrate). //clear ports. OUTPUT). PORTD = 0. } else if (povtext.digital pins 0-7 //the three lines above are the same as setting all pins as outputs using arduino library: // pinMode(A0. pin>=0. Flip switch to power on and off. } else if (povtext. OUTPUT). } else if (povtext.instructables. HIGH). delay(100). // digitalWrite(A3. } else if (povtext. // digitalWrite(A1.arduino.//bitwise shift left data2 |= load[(i*20+j)]. } else if (povtext. // delay(100).charAt(n)=='G') { sendToWand(letterG).charAt(n)=='Y') { sendToWand(letterY).charAt(n)=='F') { sendToWand(letterF). delay(refreshrate*3).LOW). } else if (povtext. // digitalWrite(A0. // digitalWrite(A1.charAt(n)=='U') { sendToWand(letterU).digital pins 8-13 DDRC = 0xFF. } else if (povtext. PORTD = data2. } else if (povtext. data3 = 0.here: http://www.pde'] Step 11: Attach battery and arduino board Use zip ties to secure battery and arduino to wand mount. HIGH).charAt(n)=='H') { sendToWand(letterH). } else if (povtext. // delay(100).charAt(n)=='J') { sendToWand(letterJ). PORTD = 0. // pinMode(A3. // delay(100). // pinMode(A4. delay(refreshrate*3). } else if (povtext. HIGH). i++){ //for next eight rows of data data2 = data2 << 1. } File Downloads POV_wand. i++){ //for first six rows of data data1 = data1 << 1. // pinMode(A5. // digitalWrite(A3. i<20. // delay(100).pde (31 KB) [NOTE: When saving.charAt(n)=='E') { sendToWand(letterE).charAt(n)=='Q') { sendToWand(letterQ).//bitwise shift left data3 |= load[(i*20+j)]. HIGH). // digitalWrite(A4. i<14.charAt(n)=='B') { sendToWand(letterB). data2 = 0. } else if (povtext. // digitalWrite(A2. // digitalWrite(pin.charAt(n)=='V') { sendToWand(letterV).//off for 3 pixels } //space between each character PORTB = 0. } else if (povtext. // delay(100). // digitalWrite(A2. pin--){//turn on each digital pin sequentially for 100ms // digitalWrite(pin. // // for (int pin=0.//add next value from dataset } PORTB = data1.charAt(n)=='C') { sendToWand(letterC).charAt(n)=='W') { sendToWandMW(letterW). //clear data storage data1 = 0.charAt(n)=='O') { sendToWand(letterO).charAt(n)=='T') { sendToWand(letterT). n++) {//go through each character of povtext and call function sendToWand to display letter if (povtext. HIGH). // digitalWrite(A5. PORTC = data3.cc/en/Reference/PortManipulation DDRB = 0xFF. } else if (povtext. OUTPUT).charAt(n)=='N') { sendToWand(letterN). // digitalWrite(A4. for (n=0. HIGH). } else if (povtext. pin++){ // pinMode(pin. PORTD = 0. } else if (povtext.LOW). i<6. PORTD = data2. PORTC = data3. } ////SAME AS ABOVE LOOP.charAt(n)=='P') { sendToWand(letterP).charAt(n)=='A') { sendToWand(letterA).charAt(n)=='I') { sendToWand(letterI). // pinMode(A1. } //space at end of text PORTB = 0.set all arduino pins to 0Volts PORTB = data1. j<20. } else if (povtext.charAt(n)=='L') { sendToWand(letterL). // digitalWrite(A0. } else if (povtext.charAt(n)=='S') { sendToWand(letterS).//bitwise shift left data1 |= load[(i*20+j)]. OUTPUT). j++){ //for each time step for (byte i=0. // delay(100). HIGH). OUTPUT). i++){ //for next six rows of data data3 = data3 << 1. } else if (povtext.charAt(n)=='M') { sendToWandMW(letterM).charAt(n)=='K') { sendToWand(letterK). n<dimtext. } else if (povtext. PORTC = 0. delay(refreshrate*3). rename it to 'POV_wand.LOW).LOW). pin<14.charAt(n)=='X') { sendToWand(letterX). BUT USING ARDUINO LIBRARY: // //turn on each LED one by one using arduino library commands // for (int pin= 13.//port b.charAt(n)=='R') { sendToWand(letterR). } else if (povtext. http://www.charAt(n)=='Z') { sendToWand(letterZ).charAt(n)=='D') { sendToWand(letterD). } else if (povtext.com/id/RadioShack-presents-18-More-Awesome-Projects/ .//port c.LOW). } else if (povtext.LOW). // } // //the following lines turn on each analog pin individually // digitalWrite(A5. // } //run intialization so we know device is working.//add next value from dataset } for (byte i=6.leds should light up in order from top of wand to bottom for (byte j=0. } else if (povtext. } else if (povtext. // delay(100). OUTPUT). // pinMode(A2.//add next value from dataset } for (byte i=14.//port d.LOW). PORTC = 0. if you see .anlog pins 0-5 DDRD = 0xFF.tmp as the file ext. } void loop() { //space at beginning of text PORTB = 0. You should read the words HELLO WORLD on startup. } else if (povtext.

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

What toy) by Persistence of Clock (Photos) quasiben Persistence of WyoJustin ben_k rleddington Vision by by davidhend Vision toy ! by duboisvb 5Volt http://www.instructables. follow the example given in figure 2. Related Instructables Arduino Persistence of Magic POV Vision Display Wand (yet LilyPad Wrist POV on Basic Simple POV Arduino Analog GUI Controlled (Photos) by another POV The magic wand w/Ardweeny . Replace the worlds HELLO WORLD with any message in all caps with no punctuation. the letter J.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Hard Drive POV Band POV by clock: a Stamp by LED Matrix by Mr. You can create your own characters and images by generating matrices of 1s and 0s.Step 12: Create your own messages Figure one shows the line of text you will need to edit to create your own messages.

6V = 14V 1.4V / 0. I hacked this automatic Pet Feeder from Amazon to build this project. This Twitter-Controlled pet feeder automatically dispenses food in response to activity on your Twitter account.com/id/RadioShack-presents-18-More-Awesome-Projects/ . The project is controlled by an Arduino and uses the Arduino Ethernet shield to receive data from Twitter. 2012 Author:amandaghassaei amandaghassaei.instructables.3.Twitter Controlled Pet Feeder by amandaghassaei on April 26.7K Ohm 1/4-Watt Carbon Film Resistor (1 package) (2x) current limiting resistors.6V" using the following relationship: V(volts) = I(amps) * R(ohms) rearranged to: R=V/I we can calculate the resistance as follows: voltage across resistor = 5V . Additional Materials: drill Solder Radioshack #64-013 22 Gauge Wire Radioshack #278-1224 http://www. see the sample calculation below from the specs of the LEDs I used: "Continuous forward current: 30mA" "Forward voltage: 3. Parts List: (1x) Automatic Pet Feeder Amazon (2x) 10K Ohm 1/4-Watt Carbon Film Resistor (1 package) Radioshack #271-1335 (1x) Arduino Ethernet Shield w/o PoE Module Radioshack #276-130 (4x) CdS Photoresistors 5 pack (1 package) Radioshack #276-1657 (1x) Grid-Style PC Board Radioshack #276-147 (2x) White Super-bright LED Indicator Radioshack #55050633 (1x) Male Header Pins 40 Position Jameco #160882 (4x) "D" Alkaline Batteries (1 package) Radioshack #23-865 (2x) 4. Check the datasheet of the LEDs you use to calculate these values.03A = 47ohms I used 100 ohm 1/4W 5% Carbon Film Resistors Radioshack #271-1311 so that the LEDs wouldn't be operating at their maximum ratings.com Currently working for instructables! Intro: Twitter Controlled Pet Feeder A great project for busy pet owners. but you could easily modify your own motorized feeder to work.

instructables.Step 1: Open pet feeder Unscrew 8 screws from the base of the pet feeder and carefully lift the bottom panel of the feeder open. http://www. be careful not to put too much strain on them.com/id/RadioShack-presents-18-More-Awesome-Projects/ . There are some wires which permanently attach the bottom panel to the body.

the pcbs should easily lift off the plastic enclosure. I've also attached two pushbuttons in the circuit so that I could manually turn the LEDs on for troubleshooting purposes. These buttons are not essential to the project (but useful). Once all the screws are removed.Step 2: Unscrew pcb Remove six small screws from control pcb. http://www. I also be diverted some power from the feeder's four D batteries to power the arduino.instructables. By wiring light sensitive resistors across these buttons we can simulate the mechanical pushbutton action as follows: When the photoresistors are not exposed to light their resistance will be very high and the processor in the feeder will think that the buttons aren't being pressed. I've also attached a fritzing document for your reference.com/id/RadioShack-presents-18-More-Awesome-Projects/ . One of the screws is hidden under a small pcb on top of the main pcb. By telling the arduino to light up some LEDs near the photoresistors. Step 3: Schematic The schematic is shown above. This feeder is programmed to manually dispense food when the "set" and "volume" buttons are depressed at the same time. the resistance will decrease low enough for the feeder's processor to think that the buttons are being depressed.

from button lead 6. Drill two additional holes in the pcb.instructables.fz (243 KB) [NOTE: When saving. photo resistors 4. rename it to 'twitter feeder. to button lead File Downloads twitter feeder. Remove the tape and small circular metal covering from these buttons (figure 2). Each outer trace has two holes drilled in it (see figure 1).fz'] Step 4: Drill holes in pcb Locate the "volume" and "set" buttons on the pcb (compare with the labels on the outside of the feeder enclosure). You will see two exposed traces on each button.tmp as the file ext. one in each of the inner circular button traces (figure 3). 4 D batteries from feeder 2. white led 3.com/id/RadioShack-presents-18-More-Awesome-Projects/ . pushbutton 5. Image Notes 1. http://www. if you see .

http://www.instructables.Step 5: Solder wires to pcb Solder four wires to the control pcb so each of the four exposed button traces has one wire electrically connected to it.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Solder header pins to the protoboard so that it can snap into the power.instructables. Step 7: Solder header pins on protoboard The protoboard will house the circuitry that allows the arduino to interface with the feeder's control pcb.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 6: Screw pcb back onto enclosure Screw the control pcb back onto the feeder enclosure. and digital 0-7 pins on the arduino ethernet shield. analog. This board will attach directly to the pins on the arduino ethernet shield. http://www.

digital pin 3 http://www. digital pin 2 2. Image Notes 1. Solder a (red) jumper wire between each of the 100ohm resistors and the anodes of each of the white LEDs (figures 5 and 6).com/id/RadioShack-presents-18-More-Awesome-Projects/ . Bend the leads of two white LEDs and solder to the copper side of the protoboard as shown in figures 3 and 4.instructables. Solder two (black) jumper wires between the cathodes of both LEDs and the to arduino ground (figure 7 and 8). One resistor should be electrically connected to the header pin for arduino digital pin 2 and the other resistor to digital pin 3 (figure 2).Step 8: Solder white LEDs and current limiting resistors Solder two 100ohm resistors to the protoboard.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.instructables.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. http://www.7kOhm and 10kOmh resistor in series with these two photoresistors (fig 4). Bend the leads of the photoressitros so that they are pointed directly at one of the LEDs. Repeat these steps for the second LED.Step 9: Solder resistors and photoresistors to protoboard Solder one large and one small photoresistor (from the set of five) in series on the protoboard (make sure they are on the same side as the LEDs). Solder a 4.

Image Notes 1.7k resistors in series with photoresistors. http://www.instructables. 10k and 4.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. http://www. Repeat this for the "volume" button leads.Step 10: Attach to feeder PCB Attach the leads from the "set" button to the protoshield so that the four resistors/photoresistors are in series between them (see notes on schematic if this is unclear).

white led 3.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . photo resistors 4. pushbutton 5. http://www. to button lead Step 11: Attach control buttons Attach two tact switches to the protoboard so that each delivers 5v to the LED and current limiting resistor circuit (bypassing the need for a 5V signal from arduino pins 2 and 3). Image Notes 1. from button lead 6. 4 D batteries from feeder 2.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 12: Wire power Locate the red and black leads on the underside of the feeder battery compartment. Solder a (red) jumper wire from the red lead to the arduino Vin and another (black) wire from the black lead to arduino ground. Image Notes 1.instructables. Vin and ground http://www.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . The holes should be large enough to fit an ethernet cable and a usb cable through. and protoboard on top of each other.instructables. Step 14: Drill holes in enclosure Drill two holes in the feeder enclosure. http://www.Step 13: Attach arduino and arduino ethernet shield Stack arduino. ethernet shield.

http://www. Thread cables through the holes you've just drilled in the project enclosure.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 15: Connect USB and ethernet Plug a usb cable and an ethernet cable to the ports on the arduino and the ethernet shield.

Step 16: Reassemble enclosure Reattach bottom of enclosure using six screws.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. Attach food compartment and lid. Step 17: Batteries Insert 4 D batteries into feeder battery holder. and flip switch on bottom of feeder to off position for now. http://www.

22.168. this won't be necessary for the project. It parses the XML returned. // twitter URL http://www. 0xDE. //<<< ENTER YOUR IP ADDRESS HERE!!! // initialize the library instance: EthernetClient client. // Enter a MAC address and IP address for your controller below. and looks for <text>this is a tweet</text> You can use the Arduino Ethernet shield. Press the rec button and record a personalized message for your pet. or the Adafruit Ethernet shield. I recommend downloading this version (or later) for this project. 0xAA. 0xBB.EthernetDHCP (for self-configuring the IP address is you use DHCP at home) Turn on the power switch on the bottom of the feeder. Refer to the manual if you would like to set the clock or set additional food timers. 11. If you do not want to use the new version.0): .twitter. 12. // delay between requests = 1min char serverName[] = "api.0 for this project. Here is the Firmware: /* Twitter Client with Strings This sketch connects to Twitter using an Ethernet shield.h> //variable to prevent overfeeding boolean justFed = 1. Circuit: * Ethernet shield attached to pins 10.112).instructables. // The IP address will be dependent on your local network: byte mac[] = { 0x00.Step 18: Firmware This firmware will read incoming twitter data so that if you tweet "feed me!" from the username omnomnom the arduino will light up the two LEDs attached to pins 2 and 3 for 1 second. IPAddress ip(192. const int requestInterval = 60000.instructables.com". either one will work. 13 created 21 May 2011 by Tom Igoe modified by Amanda Ghassaei June 2012 http://www. as long as it's got a Wiznet Ethernet module on board. 0x01 }.0 beta 1 This example uses the String library.h> #include <Ethernet. make sure you have the following Arduino libraries (they are bundled with v1.com/id/Twitter-Controlled-Pet-Feeder/ This code is in the public domain. This example uses the DHCP routines in the Ethernet library which is part of the Arduino core from version 1.Ethernet (for the Ethernet Shield) . I am using Arduino 1. this will play at the end of each food delivery sequence. which is part of the Arduino core from version 0019.com/id/RadioShack-presents-18-More-Awesome-Projects/ . causing the food delivery sequence to start. 0xCC. the LCD should flash 12:00 and the motors should run through the food delivery sequence once. */ #include <SPI.

reserve(256). then attempt to connect again: connectToServer(). // if you're currently reading the tweet void setup() { pinMode(2. LOW). pinMode(3. digitalWrite(3.read(). digitalWrite(3. // whether you've made a request since connecting long lastAttemptTime = 0.available()) { // read incoming bytes: char inChar = client. tweet. digitalWrite(3. OUTPUT). LOW). } } void testing(){ http://www.println(tweet).begin(mac)) { // if DHCP fails. } else { // if you got a "<" character.instructables.begin(9600). OUTPUT). } // if you're currently reading the bytes of a tweet. // string to hold the text from server String tweet = "". // attempt a DHCP connection: if (!Ethernet.begin(mac. // add them to the tweet String: if (readingTweet) { if (inChar != '<') { tweet += inChar. LOW). // initialize serial: Serial. HIGH). if(tweet == ">feed me!"){ digitalWrite(2. in milliseconds String currentLine = "". } // close the connection to the server: client. } } } } else if (millis() .endsWith("<text>")) { // tweet is beginning.println("LED OFF!"). } // connect to Twitter: connectToServer(). testing().println("LED ON!"). // reserve space for the strings: currentLine. delay(1000). clear the line: if (inChar == '\n') { currentLine = "". it will // be followed by the tweet: if ( currentLine. HIGH).com/id/RadioShack-presents-18-More-Awesome-Projects/ . // you've reached the end of the tweet: readingTweet = false. Serial. tweet = "". ip).reserve(150). // string to hold the tweet boolean readingTweet = false. LOW). } void loop() { if (justFed){ if (client.lastAttemptTime > requestInterval) { // if you're not connected. // add incoming byte to end of line: currentLine += inChar. // if you get a newline.boolean requested.lastAttemptTime > 14400000){//if four hours has passed since last feeding justFed = 1. Clear the tweet string: readingTweet = true. justFed = 0. Serial. } // if the current line ends with <text>. } } else if (millis() .//turn on for 1 sec digitalWrite(2. and two minutes have passed since // your last connection. start with a hard-coded address: Ethernet. } if(tweet != ">feed me!"){ digitalWrite(2.connected()) { if (client.stop(). Serial. // last time you connected to the server.

println("HOST: api. HIGH).. upload this code to your arduino with the ethernet shield plugged in (and ethernet cable connected).println("GET /1/statuses/user_timeline. } // note the time of this connect attempt: lastAttemptTime = millis().connect(serverName..xml?screen_name=nomnomnomfeeder &ount=1 HTTP/1.xml?screen_name=nomnomnomfeeder&ount=1 HTTP/1. if (client. digitalWrite(2.22.println("connecting to server."). } You will need to make a two edits before this firmware is ready to use.. // make HTTP GET request to twitter: client. client.println(). delay(1000). client. 80)) { Serial.. Insert your IP address in the following line at the top of the firmware: IPAddress ip(192. Turn on the feeder.instructables.168.com/id/RadioShack-presents-18-More-Awesome-Projects/ . 1. Upload firmware on your arduino board. digitalWrite(3. and open the serial monitor Tools>>SerialMonitor 2."). HIGH). digitalWrite(3. tweet another message to replace "feed me!" as your most recent message. during this time. and wait a millisecond: Serial. digitalWrite(2.println("GET /1/statuses/user_timeline.1"). plug in the ethernet modem/router.twitter. } void connectToServer() { // attempt to connect. LOW). The feeder will not receive any further tweets for four hours (to prevent over feeding).1"). //<<< ENTER YOUR IP ADDRESS HERE!!! if you don't know your IP address open File>>Examples>>Ethernet>>DhcpAddressPrinter. Tweet "feed me!" from your twitter account and you should see your pet feeder dispense food in a minute or less. Step 19: Try it out Connect the Ethernet shield to an Ethernet cable connected to the internet.println("making HTTP request. Within a minute you should see the pet feeder dispense food. Change the username of your twitter account in the following line (from the function connectToServer(): client.112 ). LOW). http://www.com"). Set up a Twitter account and tweet the password you set in the firmware.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .no PC .granelli randofo Door by tareker Revolt Lab (Without Arduino Ethernet Sheild) Outputs .instructables.LCD Display + (Photos) by Sensor data to vishalapr Twitter by XenonJohn http://www.Related Instructables Vacation Pet Terrarium Feeder from Make your pet Displaying Twitter Arduino Pet Curfew: An Do not Twitter feed Ethernet Shield Arduino Recycled Enter(Twitter- dishes tweet! by Monitoring by Twitter without a PC! by Tutorial by Controlled Pet Materials by updates) thoughtfix MarioBoehmer controlled fabrizio.

It's powered by an 18Ahr SLA battery that can be recharged from an on-board. as well as household AC current while you're back in civilization between adventures.com/id/RadioShack-presents-18-More-Awesome-Projects/ . kittenproof enclosure. power anything. that can withstand the elements is incredibly useful when it comes to recharging satellite phone batteries. 2012 Author:noahw Editor of the Workshop and Outside channels.Waterproof Solar Powered Boom Box by noahw on April 10. fold out solar panel for backcountry use. there's virtually no limit to the kinds of accessories that it can power or recharge. music blasting stereo that will keep the party rocking even in the pouring rain. cell phones. and water resistant marine component speakers. crushproof. and headlamps. http://www... not that there's anything wrong with that.. The inspiration for this project came from spending long periods of time in the wilderness without any connection to civilization. this stereo uses a water resistant marine head unit. camera batteries. being able to play few tunes can really help to remind you that you're a human and not some kind of Gore-Tex coated bigfoot wandering the rivers of the west. With easy access to 12V power through a cigarette lighter barrel plug and binding posts. Having a mobile power station.I'm back! Intro: Waterproof Solar Powered Boom Box This is a go anywhere..instructables. Housed inside a waterproof. Having it due double duty as a boom box is an added bonus since after many days in the quiet of the wilderness.

Step 1: Materials and Tools
You will need the following materials:

(x1) Pelican 1440 Top Loading Waterproof Case
(x1) Kenwood KMR-440U In-Dash Marine CD Receiver w/ iPod USB (Radioshack # 55039375 )
(x1) UPG UB12180 12V/18Ah SLA Battery (Radioshack # 23-1358 )
(x1) GOALZERO Nomad™ 13.5 Solar Panel R ( adioshack# 55043024 )
(x1) Kenwood KFC-P1603MRS 6.5" Marine Component Speakers (Pair) (Radioshack # 55039370 )
(x1) Sunforce® 60032 30-Amp Digital Charge Controller (Radioshack # 55038540 )
(x1) 12V 8A AC to DC power supply
(x1) UPG D1761 12V/1A Dual-Stage Sealed Lead Acid Charger (Radioshack # 55045644 )
(x1) DPDT NTE54-037 - 20A Sealed Automotive/Marine Nylon Rocker Switch (Radioshack # 55050504 )
(x1) SPST Rocker Switch (Black) (Radioshack # 275-693 )
(x1) Radioshack LED with Holder (Green) (Radioshack # 276-271 )

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

(x1) RadioShack LED with Holder (Orange) (Radioshack # 276-272 )
(x1) Binding Post to Banana Plug (2-Pack) (Radioshack # 274-716 )
(x1) Marine 12V Power Outlet
(x1) RV Waterproof 110V Power Inlet
(x1) 50-Ft. 24-Gauge Clear 2-Conductor Speaker Wire (Radioshack # 278-1301 )
(x1) Red and Black Hookup Wire (18AWG) (Radioshack # 278-1220 )
Cable Clips (Radioshack # 278-1640 )
3/4" Split Cable Tubing (Radioshack # 278-1654 )
Cable Ties (Radioshack # 278-1656 )
Insulated Spade Terminals (Radioshack # 64-3125 )
Insulated Crimp-On Butt Connector (Radioshack # 64-3108 )
Inline Blade-Type Fuse Holder (Radioshack # 270-1234 )
Blade Fuses (Radioshack # 270-1082 )
Maple Wood
Water Resistant Finish
MDF 3/4" panel
Bus Bars
Pipe Hanging Strap
Bicycle Inner Tube
Screws
Epoxy
Sand Paper
100% Silicone Sealant
Rubber Feet
3-Outlet Extension Cord
6ft Bungee Cord
Plastic Toggle

You will also need access to the following tools:

Table Saw
Belt Sander
Jig Saw
Drill Press
Hole Saws or Forstner Bits
Hand Sander
Hand Drill
Wiring Tools
Screwdrivers
Multi Meter
Drum Sander Attachment for Drill

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 2: Mark and Cut Speaker Holes
The first step is to start with the initial construction of the unit, and that means cutting apart the enclosure to fit the speakers.

The speakers come with a nifty template for the cut-out that they will need. Use it to mark out the correctly sized circle on the side of the case, and cut the hole out with a
jig saw outfitted with a fine tooth metal cutting blade. The fine tooth metal cutting blade slices through the plastic case easily.

I located the hole for the tweeter in the area protected by the handle, it fits there quite well.

Use a drum sander attached to a drill to smooth your cuts out.

It was a little painful cutting apart a perfectly good waterproof case, but with a waterproof speakers and a hearty dose of silicone to seal everything up I was able to
preserve a very high level of waterproofing.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 3: Mark and Drill Speaker Mounting Holes
Lay the speaker driver into place and mark the screw holes using a metal punch, a pen also works fine.

Then, drill holes for the screws using an appropriately sized bit for your mounting screws.

Step 4: Build Base Board
The inner workings of the boom box will need a base to get strapped down to. Trace and cut MDF into a "T" shape that will fit into the bottom of the case. Attach rubber
feet onto the bottom of the panel and set it inside the case to test fit.

The rubber feet help the panel sit inside the waterproof case and make it more stable.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 5: Cut Control Panel
Cut a piece of wood (I'm using maple due to it's density and strength) to fit inside the top of the waterproof case and form the control panel. Exact dimensions will vary.

The walls of the waterproof case are tapered at 5 degrees, so I cut the sides of the panel to match by tilting the blade on the table saw 5 degrees as well. This allows the
panel to wedge in place.

Cut the length of the control panel on the miter saw.

If anything, make the cuts to be a hair long. The panel should fit tightly in position and can always be sanded down later for a perfect fit.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 6: Round Corners
The top of the waterproof case has rounded corners, so the control panel will have to have them too.

I needed a quick way to transfer the shape of the corner of the case to the panel. The easiest way turned out to be using a set of forstner bits to transfer the curve since
they come in a wide variety of sizes. 1 1/4" turned out to be a perfect fit for the rounded corner. Trace that curve onto the corner of the panel.

Then, simply sand the corners down to the traced line on the belt sander.

Sand the rest of the edges as necessary until the panel fits in place perfectly.

The tapered walls of the waterproof case should hold the panel in place for test fitting. I decided to install supportive blocks (step 18) to better secure the panel in place.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 7: Lay Out Control Panel
The control panel houses several different components, switches and lights. Plan everything out ahead of time by measuring the items to be mounted, and then trace the
mounting hole dimensions onto the control panel directly to make sure everything fits.

Just to be safe, I fabricated a second control panel out of MDF and tested my layout on it first before drilling into the maple.

The control panel will hold the:

Stereo unit (plays music)
Solar charge controller (makes sure that the solar panel doesn't over-charge the battery)
DPDT power source switch (switches between AC and DC power modes)
Charge controller cut off switch (disconnects the solar charge controller from the battery when the unit is being stored - charge controller draws a small amount
from battery when attached even when not active)
12V marine cigarette lighter power plug (allows you to plug barrel cigarette lighter accessories into unit)
Banana jack power plugs (allows access to 12V power source for anything with a wire)
120V RV power input plug (water resistant plug that allows unit to be charged when at home)
AC charging indicator lights (shows charging status of home charging)
Solar panel charging jack (allows fold out solar panel to be plugged into unit)

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Rectangular holes were cut with a jig saw. Adapt the control panel by drilling and routing out material from the back so that the area where those components mount is significantly thinner. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 8: Cut Holes in Control Panel Round holes for components were made with drill bits and correctly sized forstner bits on the drill press. The control panel I created is a little less than 1/2" in thick. Use a 1/2" drill bit to create blade holes for the jig saw. Some of the switches and LED's are designed to mount in panels that are significantly thinner than that.instructables. See last photo for example of recesses on back of control panel (pictured on the MDF test panel).

grab an inline blade style fuse holder and a 10 or 15 amp fuse and get set to wire that in front of the whole system between the battery. http://www.instructables. I left around 3 feet of slack in any wire that was going to connect from the control panel to the main case so that the panel could be removed for maintenance. insulated spade connectors are a must.com/id/RadioShack-presents-18-More-Awesome-Projects/ . as well as crimp on quick connect terminals for easy connection to the switch and speaker terminals. and battery chargers with red and black hook-up wire. Extend the power wires on the stereo. Solder and heat shrink all of these connections so they are safe/permanent. Finally. The Goal Zero solar panel comes with an accessory cigarette lighter jack connected to a female DC power jack. Cut the DC jack off and solder it onto the leads that run into the solar charge controller. I installed my own panel mount cigarette barrel power supply so we won't be needing the one that came with the solar panel.Step 9: Prepare Wires There's a whole lot of wiring involved in this project so crimp on. Take a moment to take some quick measurements of how long your components are from each other and make sure to cut all leads to be too long. Extend the audio leads on the stereo with speaker wire that runs to the speakers. charge controller. they will be trimmed in a later step.

That way. The stereo head unit comes with a mounting sleeve and fold-out tabs which hold it in place. It's a right angle jack on a long wire. like the AC input receptacle and the solar power charge controller. The banana jacks for 12V power are simply pressure fit in place. I slipped it through a rubber grommet and then epoxied the grommet in place in the panel. when you plug the unit in. AC power can be delivered to the battery charger and DC power supply inside the unit (coming up in the step 13). and use the exposed wires to connect to the back of the RV power supply jack. Other components are screw in place. Others still get mounted with screws.Step 10: Mount Components Mount the components onto the control panel. The hardest jack to mount was the solar panel DC input jack. http://www. Take the extension cord.com/id/RadioShack-presents-18-More-Awesome-Projects/ . like the LED's. cut the plug off it.instructables. the solar charge controller cut off switch and the 12V cigarette lighter power barrel.

solar charge controller 2. but I thought it easiest to mount them to the back of the control panel so they'd be as close as possible to most of the connections in order to keep the leeds short. solar panel charging jack 5. There's one for the (+) connection and one for the (-) connection. DC cigarette lighter 4. binding posts 9. AC power input 3. AC charging indicator lights 6. solar charge controller cut off switch 8. These bus bars can get mounted anywhere. Image Notes 1. DPDT switch 7. stereo head unit Step 11: Prepare Bus Bars There are so many wires to connect I found it easiest to set up two bus bars to connect everything to. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

Step 12: Extend Charging LEDs The wall brick SLA battery charger will live inside the unit. This constitutes the AC charging bundle. In order to see it's status lights. Defeat the tamper-proof screws by using a small flat had screwdriver instead of the crazy safety screw head and open up the wall charger. and close the unit back up. Connect some hook-up wire to these positions on the circuit board. Now the status LED's can be extended to the control panel so you can see the charging status without having to open up the panel to peek in at the charging brick. http://www. carefully pull out the circuit board and desolder the red LED that indicates "charging" status and the green LED that indicates "charged" status. a little bit of hacking is necessary.com/id/RadioShack-presents-18-More-Awesome-Projects/ . cut away a small hole for the wire to exit the plastic case. Once inside. Step 13: Prepare AC Power Accesories Plug the now hacked battery charger into the extension cord on once side and the AC to DC 12V 8A power supply (I think I'm using one that once powered a monitor) and make a nice little package out of everything with zip ties.instructables.

Connect the speaker wires coming from the stereo to the speakers. I used some simple three way connectors to extend or branch off of wires in areas too far from the bus bar. There is no light for DC mode. Solder connections where appropriate. the battery is charged by the wall brick SLA 12V battery charger and the 12V AC to DC power supply powers the stereo directly. because. why waste the power? Using a DPDT switch and running the (+) supply wires through it keeps the two legs of the system . When the power components are in the correct position. Wire up the RV outlet to the extension cord if you haven't done this already in step 10. as well the additional light on the DPDT switch itself so that the user knows that the unit is in "AC mode". Step 15: Wiring (panel) Bundle all of the cables that run to the control panel from the base of the box and encase them in plastic cable housing and zip ties so they'll be strong and safe. Use electrical tape or heat-shrink tubing (better) on all exposed connections. While in DC mode. Connect the stereo to the bus bars running the positive wire through the DPDT switch. as well as the cigarette lighter. http://www. I call this stuff pipe strap. In AC mode. Connect the accessory power banana jack terminals to the bus bars. Use spade plugs on switches and speaker contacts. secure everything down with the perforated aluminum pipe strapping. Drop the SLA battery into position in the remaining space and test fit everything. hook up the yellow constant 12V wire to the positive battery terminal. and screw the strap tightly into position onto the base board that was made in step 4. or plumbers strap. insulate the pipe strap with an old inner tube from a bicycle so that it doesn't accidentally bridge any power terminals or short anything out. Connect the 12V battery charger to the battery terminals running the positive wire through the DPDT switch. running the positive charging wire through the DPDT switch. where I didn't want to run another wire all the way back (shown on the cigarette lighter barrel plugs in the photos below). With that in mind. This engages the charging lights on the control panel that were extended. separate. connect the charge controller to the bus bars. Connect the 12V power supply to the stereo running the positive wire through the DPDT switch. Connect the tweeter speaker to the connections on the mid range speaker. As a safety precaution.Step 14: Install Power Drop the AC power into the box and push it off to one side.the stereo and the chargers. Slip the inner tube on. Start plugging things in. Connect the leads that were extended from the hacked 12V brick style battery charger to an orange and green 12V LEDs thats are mounted on the panel to indicate charging status.com/id/RadioShack-presents-18-More-Awesome-Projects/ . The basic wiring design is as follows: The battery powers the stereo. The DPDT switch controls the unit between AC and DC modes.instructables. the stereo is powered by the battery and the solar charge controller is hooked up to the battery so it can charge everything up if the solar panel is attached. This keeps the station memory and clock going even when everything else is disconnected.

Step 16: Install Speakers Coat the back gasket of the waterproof marine speakers with silicone sealant and install them into the waterproof case with the provided screws and clips.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.instructables. Do the same for the tweeters.

the stereo head unit comes with it's own 10A fuse. this is just an extra precautionary measure. and zip tie adhesive mounts to manage all of the cables as best as possible so it wasn't a rats nest inside the case.Step 17: Wiring (box) Take the bundle of wires coming from the control panel and connect them to their respective places at the battery terminals. and wall charger. http://www. zip ties.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Note. power supply.instructables. A 15A blade fuse was wired in front of the positive terminal of the battery to protect all of the components. I used cable clips.

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 18: Epoxy Panel Supports I wanted to do one better than simply pressure fitting the control panel into place so I cut some small maple supports with that same 5 degree bevel on one side and epoxied them into position in the case so that the control panel was properly recessed. I found that roughing the surface of the case with sandpaper before epoxying the supports into position helped greatly with adhesion.instructables.

While at the fabric store getting the bungee cord I also picked up a simple toggle to adjust the tension on the cord and used that to join the two ends together. http://www.Step 19: Construct Solar Panel Bungee Cord Holder The lid of the case conveniently comes with some mounting points for screw eyes.instructables. The Goal Zero fold up solar panel is retained in place when not in use by simply slipping it behind the bungee cord and tightening the toggle. Insert 6 screw eyes into the pre-drilled holes and thread bungee cord between them in a criss cross pattern.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Step 21: AC/Wall Mode Testing AC wall mode is tested by plugging an extension cord into the wall and then connecting the unit through the RV outlet plug.5W solar panel to output at around .5A depending on stereo volume (moderate to very loud respectively). At best I was able to get the 13.com/id/RadioShack-presents-18-More-Awesome-Projects/ . you should see the battery voltage rise. you should see the battery voltage slowly drop. At a voltage that is determined by the circuit in the charge controller. the wall brick charger should continue to trickle charge the battery. You should see the battery voltage rise. With solar charging you can extend play time significantly. If you start playing the stereo. If the panel is in full sun. the quicker the battery voltage should fall. The AC power light on the DPDT switch should come on. I'll do more testing in real-world conditions soon and repost actual numbers of play and charge times as soon as I can. I connected a current meter in line with the stereo and tested its power consumption. you will see the voltage of the battery on the screen. The current meter read between . If the charge controller switch is set to on. At this point the battery is fully charged. The louder the stereo. That results in best case scenario play times without solar recharging of around 36 hours to 12 hours depending on stereo volume and accessories are being charged. and the green LED light should turn on.75A. This connects the solar charge controller to the battery. To dig in a bit further. Switch the SPST solar charger cut off switch to on. If you leave the unit plugged in. Switch the unit into AC mode. Switch the charge controller cutoff switch to on. the orange light should be illuminated which will indicate that high current charging of the battery is occurring.Step 20: Solar/DC Mode Testing To test the unit in DC solar mode.instructables. and under normal playing conditions I found the battery voltage to stay constant over several hours. The battery voltage should appear on charge controller screen. the orange LED light should turn off. switch the DPDT switch to the DC setting and plug in the solar panel. http://www. If the voltage of the battery is low. In full sun.5A and 1. the wall brick should switch to trickle charge mode. Find some sun.

Boom Box Ipod Shelf speakers Waterproof Speaker Box by W1LL7 Solar BOOMbox Dock / w/ipod dock Firestarting Instructable by AKA: Post Homemade Make MP3 BOOM "BOX" (Part I . Plug any cigarette lighter style power plug into the barrel plug and get power.the list is long and distinguished.. The binding posts tackel just about anything else that you'd like to run off the SLA battery . . christmas lights for parties. ) by rickick http://www. by a rigger joe . no problem.bare wires. charging for virtually any battery powered item. The stereo controls now run the audio source and charge it up at the same time. including CFL lights for night time activities..instructables. Many different accessories are available.Step 22: Accessories The binding posts and cigarette barrel plug make great connections points for accessories.com/id/RadioShack-presents-18-More-Awesome-Projects/ . just thread them onto the posts and tighten.speaker Case by Attmos Apocalyptic iHome by Player Portable (For Any Ipod or boxes) by mfryer mr2percent Power Supply GamingRobot Boom Tube by Mp3 Player etc. What can't this thing do? Related Instructables Indestructible Tool Box Boom Waterproof. The head unit for the stereo even has a USB jack that allows you to connect an iPhone or iPod.

Materials : The circuit (1X) 555 timer . eat pho.(Radioshack #270-324) (30X) LEDs . and how to mount LEDs in an acrylic panel. When I ride at night. Intro: DIY Bicycle Turn Signals Living in a city.(Radioshack #272-1024) (1X) 100K resistor . I decided to build a turn signal system for my bike! The following instructable will go over how to use a 555 timer to flash an array of LEDs. and play electric ukulele.(Radioshack #271-1347) (1X) 10K resistor . I am often concerned if other vehicles/people on the road can see my hand signals when I am about to turn. slightly larger than the diameter of your bike seat's stem. and cast it in resin.instructables. 2012 Author:audreyobscura audreyObscura. from the hardware store. Step 1: Materials You will need the following materials and tools to embark on this project. errands.(Radioshack #276-170) (1X) single core wire .com i work at instructables! i make things with technology. and still use the turn signals. riding from home to work.(Radioshack #271-1335) (1X) 220 Ohm Resistor .(Radioshack #275-002) (1X) proto board .(Radioshack #271-1313) (2X) tactile switches .(Radioshack #278-1221) (1X) 9v battery clip . This way I am able to ride in the all weather conditions. I use my bike as means of transit.(Radioshack #64-013) In this project I use a water-tight method of encapsulating circuits in polyester casting resin. http://www.7 uF capacitor . Turn signal and circuit housing acrylic panel silicone casting resin and catalyst quick set epoxy pipe clamp.(Radioshack #55050630) (1X) solder .(Radioshack #276-1718) (1X) 4.DIY Bicycle Turn Signals by audreyobscura on March 28.com/id/RadioShack-presents-18-More-Awesome-Projects/ .(Radioshack #276-1718) (1X) SPST switch . etc. work to studio. To make my night rides safer.

fzz'] http://www. rename it to 'bike lights. File Downloads bike lights.bike handlebar wrap zip ties Tools used: soldering iron glue gun utility knife angle grinder/palm sander laser cutter Step 2: Assembling your flash timing circuit. Solder into place.tmp as the file ext. if you see . After you have gathered your materials.fzz (10 KB) [NOTE: When saving. You want to mount the 555 Timer IC so it straddles the center of your proto board. assembly begins! Please reference the attached fritzing file for the construction of your circuit.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

(cont. Step 4: Assembling your flash timing circuit. The positive lead connects to the pin 6 rail. Lastly your 100K resistor is mounted in series with the 10K resistor. and pin 6 on the 555 timer.Step 3: Assembling your flash timing circuit. (cont. The 10K resistor is mounted between the positive rail and pin 7.7uF 50V capacitor. Next. and trim your leads.) Install the 4.) Add a jumper wire that will connect pin 2. and the negative lead is grounded. Solder that wire into place.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. set your resistors as show in the image into your proto board .solder into place. to pin 6. http://www. then directed down to a separate rail that is later connected to the anodes on your LED array. The 100ohm output is in-line with pin 3.

and that is how long your wires for your buttons will be. Add about eight inches to that measurement. Also.Step 5: Assembling your flash timing circuit.instructables. Measure the distance from the back of the bike. where the light will sit. all the way to where the buttons to activate the indicators will sit.) Trim your long wire leads from the back of your circuit. (cont. Cut four wires at this length.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Connect the negative lead on your capacitor to the ground rail. There are 3 jumper wires that need to be set into place. pin 8 to your positive rail. http://www. wire in the battery clip to the corresponding ground and positive rail. and pin 1 to the ground rail.

I knew I wanted to embed my circuit in resin to waterproof the entire thing.tmp as the file ext. I have learned the importance of multiples. http://www.Step 6: Making and Wiring your back plate I used a laser cutter and orange acrylic. so that I could keep track as to which was positive and negative when I was soldering all of this together.eps (140 KB) [NOTE: When saving. if you see .instructables. In my experience with DIY. The vector file for the laser cutter is attached to this instructable if you would like to replicate my design. so this template was the best method of seating my electronic components. and all of the anodes are on the other. and the anodes another. File Downloads BIKELIGHT_to laser cut.eps'] Step 7: Insert your LEDs Thread all of your LEDs into their holes on the acrylic plate so that all of the cathodes are on one side. rename it to 'BIKELIGHT_to laser cut.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and designed a plate for my LEDs to sit in. so I cut two of these acrylic plates. It's nice to have extra parts around. I bent all of the cathodes one way.

and positive.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.instructables. negative. that respectively connect to your circuit board. You will end up with two leads on each side. Go through each LED and connect all of your positive leads together. and all over your negative leads together. once they are all threaded to the plate. Trim your leads as you go. Go through and solder all of your positive leads together in a zig zag shape working from one end of the plate to the other. You are going to daisy chain your LEDs together.Step 8: Wire you LEDs to the plate.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.instructables.

then run two more 5 ft wires back to the positive leads on the LED arrays. and then I trimmed as necessary later. Connect two wires from the ground rail on your circuit to your negative LED arrays on the acrylic panel. http://www. to your handlebars. Extend two very long wires from your resisted output rail to two tactile switches.instructables.Step 9: Wire your circuit to the LEDs on the plate. running from the rear. Mine were a bit longer than 5 ft long. connect your switches. These wires should be the distance you need your wires to travel on your bike frame. Wire your tactile switches so that the wires are soldered caddy-corner to eachother.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

http://www. Cut your positive wire from your battery clip to the circuit board. Then go through the back of the acrylic panel.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 10: Securing.instructables. you can clean it up with a razor blade or utility knife. This switch is added so that power is not being run to the 555 timer at all times. If your glue goes anywhere you don't want it to be. This step insulates your wires. Add a dab of hot glue to the back of your circuit board. and coat all of your LED leads with hot glue as well. Add another dab of hot glue to the leads on your switch. and waterproofing your circuit. and adhere it to your acrylic panel. and solder in your SPST switch where you cut the wire.

and allow to cure for a day. After the mold had cured. and properly cure. Remove from the mold. I used an easy silicone mold making technique to create a basin for me to embed my electronics in resin. allowing it to sit for a day. I poured 4 oz of catalyzed resin into the mold.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and squished it into the mold. Utilizing the extra acrylic plate I laser cut from step 6. and then pressed my project down into the resin. and begin polishing.instructables. Set aside. Knowing that I wanted to trap all of my electronics and lights in resin to waterproof the circuit.Step 11: Encapsulate your circuit in resin. I used masking tape to cover up all of holes in the plate. http://www.

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

I went back over the the entire light again. Be careful that you don't sand down too much material. and hit your circuit. The best way to polish resin is with sand paper. clamped to a work bench. like belt sander . With a palm sander. giving it a smooth frosted finish.instructables.to remove the extra bits of resin and smooth the light.turned on its side.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and finer grit sand paper. I worked with an angle grinder . http://www.Step 12: Polishing the light.

http://www. attach the light your bike's frame. angle grinder clamped to a work bench = DIY belt sander. and don't touch it while the glue is hardening. After the glue is set. make sure it doesn't fall over.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . I used a dab of quick set two part epoxy adhesive to adhere a hose clamp to the light. Set it. Image Notes 1. Step 13: Attach the hoseclamp to your light.

then I used blue painters tape to hold the switches in place. begin enclosing them in handlebar wrap .instructables. other wise your switches will always be in the on position. Or use heat shrink . I was able to wrap the wires around the brake.not too tight though. Mount your switches for the right and left signal on the corresponding right and left brake handle. When you have mounted your switches.com/id/RadioShack-presents-18-More-Awesome-Projects/ . wrap the four wires running from the handle bars to the circuit. separate the wires so that you are wrapping the two wires that lead to the handle bar mounted switches. I used zip-ties to hold my wires in place along the frame of the bike. I used a smaller zip-tie to mount the battery and switch to the frame too.Step 14: Run switches from your handlebars. When you get to the end of your bike frame. There should be enough slack in your wire-lines so that you may still safely turn your bicycle. By splaying the leads flush with the surface of the hand brake. Using electrical tape. http://www.

separate which wires activate the right and left sides of the blinker.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. http://www. Image Notes 1.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.http://www.

and be the safest cyclist on the streets! Related Instructables Blinking Cruiser The Versatile Knight rider Blinking Courier 555 Timer LED Make an LED Bicycle Safety Bike Light by joe 555 Timer by bike flasher by Bag Light by joe Flasher (Photos) Blaster by Lighting and Tail Light and blinkyblinky Higgs Boson by finkbuilt Turn Signals Blinker Setup ThatCaliforniaGuy From (Mostly) for Motor Recycled Parts Bicycles by by Amberwolf Stills00 http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.Step 15: Go for a ride! Test out those signals.

instructables.http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Parts List: (1x) Arduino Uno REV 3 Radioshack 276-128 (1x) Switch-Magnetic Reed Radioshack 55050593 (1x) 10K Ohm 1/4-Watt Carbon Film Resistor Radioshack #271-1335 (1x) 9V Alkaline Battery Radioshack #23-866 (1x) Heavy-Duty 9V Snap Connectors Radioshack #270-324 (1x) PC Board with Copper Radioshack #276-147 (1x) Parallax 27977-RT Serial Backlit LCD Radioshack 276-120 (x2) SPST PC-Mountable Submini Toggle Switch Radioshack #275-645 (2x) Male Header Pins Jameco 103393 (1x) Female Pin Sockets Jameco 308567 Additional Materials: 22 Gauge Wire Radioshack #278-1224 Solder Radioshack #64-013 sand paper plywood wood glue hot glue screws zip ties sugru Download Arduino IDE http://www. It is compatible with any kind of bike/wheel.Arduino Bike Speedometer by amandaghassaei on June 18. and send this information out to the LCD screen on the handlebars as you ride. The Arduino calculates the mph.instructables. This project uses a magnetic switch (also called a reed switch) to measure the speed of one of the bike's wheels.com/id/RadioShack-presents-18-More-Awesome-Projects/ . simply enter the radius of the wheel in the firmware to calibrate the device for your setup.com Currently working for instructables! Intro: Arduino Bike Speedometer Monitor your road speed using the Arduino. 2012 Author:amandaghassaei amandaghassaei.

Solder a 10kOhm (current limiting) resistor between A0 and ground on the protoboard. when a magnet comes near the switch it causes a small mechanical piece to move and close the switch momentarily. Connect long pieces of stranded wire to A0 and 5V. The switch has two wires extending out from it. The Parallex LCD is designed to connect to the arduino using only three pins (ignore the labels and the other pins int his schematic). It consists of three switches: -one to connect to a 9V power supply -one to switch the backlight of the LCD on and off -a magnetic switch (called a reed switch) which closes each time the wheel completes one full rotation. Step 3: Reed Switch The reed switch is comprised of two pieces. a switch and a magnet. 10kOhm resistors are connected to the reed and backlight switches to prevent excess current between 5V and ground (you should never directly connect 5V and ground on the arduino!) Step 2: Protoboard Solder three rows of header pins on the protoboard so that the arduino will snap to it as shown in the images above. one to ground.instructables. http://www.Step 1: Schematic The schematic for this project is shown above.on the arduino. and a third to serial out (TX). One to 5V. serial out is digital pin 1.these wires will wrap around the bike and attach to the reed switch.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1. switch 2. i made a mistake here.the black wire should be connected to A0 http://www. magnet Image Notes Image Notes 1. i made a mistake here.the black wire should be connected to A0 1.

instructables.//get val of A0 Serial. each time the bike wheel turns the magnet moves past the switch. delay(10).com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1. try repositioning it or even adding a stronger magnet if you have one. If the magnet does not seem to be affecting the reed switch.instructables. I made a mistake here. This way. //arduino bike speedometer w serial. either version 3 of the License.the black wire should be connected to A0 Step 4: Mount Reed Switch on Wheel Secure both the magnet and reed switch to your bike wheel with electrical tape (either wheel is fine). Connect the leads form the reed switch to the long wires from your protoboard (orientation does not matter here. magnet attached to spoke http://www. otherwise it will print ~0.com/id/Arduino-Bike-Speedometer/ /* * This program is free software. When the magnet on the wheel moves past the switch. or * (at your option) any later version. } Image Notes 1.begin(9600).print() //by Amanda Ghassaei 2012 //http://www. switch attached to bike frame 2.it's just a switch) Use the code below to test your reed switch. Open the serial monitor (Tools>>Serial Monitor) in Arduino IDE to test for your own setup. As shown in the images above. * */ #define reed A0//pin connected to read switch //storage variable int reedVal. void setup(){ Serial.println(reedVal). the arduino should print ~1023. } void loop(){ reedVal = analogRead(reed). you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. the magnet connects to one of the tire spokes and the reed switch connects to the frame of the bike.

Image Notes 1. you should see a print of the current mph each second. either version 3 of the License. http://www.com/id/Arduino-Bike-Speedometer/ /* * This program is free software. magnet Step 5: Test Switch Load the code below onto the Arduino. float radius = 13. //arduino bike speedometer w serial.print() //by Amanda Ghassaei 2012 //http://www.25 #define reed A0//pin connected to read switch //storage variables int reedVal.00. It should output 0.instructables.// time between one full rotation (in ms) float mph. Turn on the serial monitor.com/id/RadioShack-presents-18-More-Awesome-Projects/ . switch 2.//min time (in ms) of one rotation (for debouncing) int reedCounter. Start turning the bike wheel.instructables. long timer. or * (at your option) any later version. void setup(){ reedCounter = maxReedCounter. int maxReedCounter = 100.5 inches //circumference = pi*2*r =~85 inches //max speed of 35mph =~ 616inches/second //max rps =~7. you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation.5. * */ //calculations //tire radius ~ 13.// tire radius (in inches) float circumference.

pinMode(reed.8*float(circumference))/float(timer). // enable timer compare interrupt TIMSK1 |= (1 << OCIE1A).//calculate miles per hour timer = 0.cc/playground/Code/Timer1 cli().// set entire TCCR1A register to 0 TCCR1B = 0. } http://www. // Set CS11 bit for 8 prescaler TCCR1B |= (1 << CS11).//reset timer reedCounter = maxReedCounter. delay(1000).// = (1/1000) / ((1/(16*10^6))*8) .//increment timer } } void displayMPH(){ Serial. circumference = 2*3.instructables.// same for TCCR1B TCNT1 = 0.14*radius. // TIMER SETUP. } void loop(){ //print mph once a second displayMPH().tire is still.com/id/RadioShack-presents-18-More-Awesome-Projects/ . INPUT). } ISR(TIMER1_COMPA_vect) {//Interrupt at freq of 1kHz to measure reed switch reedVal = digitalRead(reed).//stop interrupts //set timer1 interrupt at 1kHz TCCR1A = 0.//decrement reedCounter } } } else{//if reed switch is open if (reedCounter > 0){//don't let reedCounter go negative reedCounter -= 1.the timer interrupt allows precise timed measurements of the reed switch //for more info about configuration of arduino timers see http://arduino.begin(9600).//get val of A0 if (reedVal){//if reed switch is closed if (reedCounter == 0){//min time between pulses has passed mph = (56.//if no new pulses from reed switch.//decrement reedCounter } } if (timer > 2000){ mph = 0.//reset reedCounter } else{ if (reedCounter > 0){//don't let reedCounter go negative reedCounter -= 1.1 // turn on CTC mode TCCR1B |= (1 << WGM12). sei().//allow interrupts //END TIMER SETUP Serial. // set timer count for 1khz increments OCR1A = 1999. set mph to 0 } else{ timer += 1.println(mph).

The LCD should fit nicely on top of the protoboard.Step 6: LCD Solder a row of female header sockets on the copper side of the protoboard.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.three of these will be used to connect to the LCD screen.instructables.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . Adjust contrast 2. either version 3 of the License. I think this may have something to do will interference from the arduino communicating with the computer via digital pin 1 (TX) during the upload. The LCD should display "Hello World" when it is turned on.instructables. Step 8: Parallax LCD The underside of the Parallax LCD has two switches and a potentiometer. * */ //this code should print "Hello World" on the LCD and the backlight switch connected to digital pin 2 should work //Serial.OUTPUT).instructables.//clear Serial.begin(9600).com/id/Arduino-Bike-Speedometer/ /* * This program is free software. you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation.write(13). or * (at your option) any later version. } http://www.write("Hello World").//start a new line void setup() { Serial. Image Notes 1.//tx Serial.write(12). The pot controls the contrast of the display. Ground. but works fine once I unplug and reconnect the usb connection.Step 7: Install Parallax LCD Library Connect Arduino 5V. For some reason my LCD starts making noise and displaying random characters when I first upload. The switches must be set as they are shown in the image above for proper functioning. //test of parallax 2x16 lcd //by Amanda Ghassaei 2012 //http://www. Read the labels on the LCD pins to make sure you have everything oriented correctly. switches must be in this configuration to send messages to LCD Step 9: Test LCD Test the following code. and TX (Arduino digital Pin 1) to the LCD socket.you can adjust this to what you like. pinMode(1.

Connect the red wire to Arduino 5V. to ground 3. to switch http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. and the green wire to D2. Image Notes 1. Connect a 10kOhm resistor and a green wire to one lead.void loop() { } Step 10: Backlight Switch Wire a switch as shown in the image above. the other side of the resistor to ground. to 5V 2. to digital pin 2 Image Notes 1. and a red wire to the other.

Step 11: Final Speedometer Code Upload the following code onto the Arduino. long timer = 0.00.com/id/RadioShack-presents-18-More-Awesome-Projects/ . //bike speedometer //by Amanda Ghassaei 2012 //http://www.OUTPUT).//stop interrupts //set timer1 interrupt at 1kHz TCCR1A = 0. (Again.1 // turn on CTC mode TCCR1B |= (1 << WGM12). you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation.) Measure the radius of your tire wheel (in inches) and insert it in the line: float radius = '''''.write(12). } void checkBacklight(){ backlight = digitalRead(2).//reset reedCounter } else{ if (reedCounter > 0){//don't let reedCounter go negative reedCounter -= 1. you may have to unplug the board after loading the firmware and plug it back in again to get it to work properly.CHANGE THIS FOR YOUR OWN BIKE int reedVal.14*radius. if (backlight){ Serial.//clear // TIMER SETUP. boolean backlight.//turn backlight off } } ISR(TIMER1_COMPA_vect) {//Interrupt at freq of 1kHz to measure reed switch reedVal = digitalRead(reed). // enable timer compare interrupt TIMSK1 |= (1 << OCIE1A). * */ //outputs speed of bicycle to LCD //calculations //tire radius ~ 13.5.// set entire TCCR1A register to 0 TCCR1B = 0.//turn backlight on } else{ Serial.cc/playground/Code/Timer1 cli(). sei(). void setup(){ reedCounter = maxReedCounter. or * (at your option) any later version.com/id/Arduino-Bike-Speedometer/ /* * This program is free software. checkBacklight(). pinMode(1.// time between one full rotation (in ms) float mph = 0.the timer interrupt allows preceise timed measurements of the reed switch //for mor info about configuration of arduino timers see http://arduino.5 inches //circumference = pi*2*r =~85 inches //max speed of 35mph =~ 616inches/second //max rps =~7. int maxReedCounter = 100.instructables.//calculate miles per hour timer = 0.OUTPUT).//reset timer reedCounter = maxReedCounter.write(18).instructables.8*float(circumference))/float(timer). // set timer count for 1khz increments OCR1A = 1999. // Set CS11 bit for 8 prescaler TCCR1B |= (1 << CS11).//tx pinMode(2.//backlight switch pinMode(reed. Serial.//allow interrupts //END TIMER SETUP Serial.//get val of A0 if (reedVal){//if reed switch is closed if (reedCounter == 0){//min time between pulses has passed mph = (56.// same for TCCR1B TCNT1 = 0. float circumference. either version 3 of the License.//decrement reedCounter } http://www.// = (1/1000) / ((1/(16*10^6))*8) .//min time (in ms) of one rotation (for debouncing) int reedCounter. INPUT).25 #define reed A0//pin connected to read switch //storage variables float radius = 13. circumference = 2*3. Test to make sure the backlight switch works and the speed displays properly.begin(9600).write(17).// tire radius (in inches).

to arduino ground 2. } I used timer interrupts in this piece of code to keep the variable "timer" incrementing at 1kHz.write(" MPH ").//if no new pulses from reed switch. More info about interrupts and an explanation of how I set it up can be found here .tire is still.write(12).instructables. read lead from switch connects to arduino Vin http://www.//clear Serial. Image Notes Image Notes 1.00 MPH "). checkBacklight(). } void loop(){ //print mph once a second displayMPH().write("0. Serial.com/id/RadioShack-presents-18-More-Awesome-Projects/ . //Serial.write("Speed ="). set mph to 0 } else{ timer += 1.//decrement reedCounter } } if (timer > 2000){ mph = 0.print(mph). black lead of battery connect to arduino ground 2.//start a new line Serial. to arduino Vin 1. Connect the read lead from the switch to Arduino Vin and the black wire from the battery connector to Arduino ground.//increment timer } } void displayMPH(){ Serial. } } else{//if reed switch is open if (reedCounter > 0){//don't let reedCounter go negative reedCounter -= 1. Step 12: Battery Wire the battery connector and switch in series as shown in the first image above.write(13). delay(1000). Serial.

I glued the project enclosure together with wood glue and sanded the edges down.tmp as the file ext.tmp as the file ext.stl (1 KB) [NOTE: When saving. Then I added two holes for the switches and a rectangular opening for the LCD screen.cdr (14 KB) [NOTE: When saving.tmp as the file ext. rename it to 'enclosure. if you see .stl'] enclosure. rename it to 'enclosure.Step 13: Enclosure I cut my project enclosure from 1/4" ply on an epilog 120Watt laser cutter. The dimensions of the enclosure are 3.cdr'] http://www. I finished the enclosure with some clear polycrylic. if you see .5"x4"x2". I modeled the box in AutoCAD and generated the laser cut files (with finger joints) in Autodesk 123D Make. if you see .dwg (229 KB) [NOTE: When saving. File Downloads enclosure. rename it to 'enclosure. I also added some holes on the bottom of the enclosure to make attaching it to the bike easier.instructables.dwg'] enclosure.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

I used sugru and some zip ties to attach the speedometer to the handle bars. Screw or fasten the enclosure shut. Fit the Arduino and Protoboard as well as the battery into the enclosure and secure with velcro or glue. away from any moving bike parts.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.Step 14: Install Components in Enclosure Secure the switches onto the enclosure with nuts. Glue or screw the lcd to the underside of the front panel. Step 15: Attach to Bike Wrap the reed switch wires around the bike frame. http://www.

Step 16: Take it Out on the Road You should be ready to hit the road. Don't let the awesomeness of your new bike speedometer distract you from road hazards! Related Instructables Digital Tachometer Wireless Altoids Arduino Anemometer Amp up your Arduino Bicycle Add made from a Cycle Computer Skateboard (wind meter) by VW Bug Alarm and Cadence/Speed/Odometer bicycle by Alexdlp Speedometer by Arduino Timer Speedometer by Lights by to Your Spin speedometer dan leonardor Interrupts by kcrichar cheeyah Bike. by (cyclocomputer) amandaghassaei vatosupreme by josie http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

runs off a single 9 volt battery. The really great thing about this instrument is that it is very portable. this way you can communicate with other electronic instruments or software environments that understand MIDI.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Most of the time I use it to sequence drum samples so I can play around with different beats and rhythms. http://www. but make sure it is ATMEL328P) Radioshack #276-128 (x1) Arduino ProtoShield Radioshack #276-140 (x1) PC Board with Copper Radioshack #276-147 (x9) High Tact Switch Radioshack #275-002 (I really liked the feel of these buttons. 2012 Author:amandaghassaei amandaghassaei. Parts List: (x1) Arduino Uno (Duemilanove is fine. which makes them fairly difficult to solder because of the small leads.com Currently working for instructables! Intro: Electronic Instrument This electronic instrument allows you to sequence and loop audio and MIDI data. and has a headphone jack that you can plug into. Additionally.instructables. any of these momentary switches will work) (x1) 10KOhm Audio Control Potentiometer with SPST Switch Radioshack #271-215 (this will be used to control volume and turn the device on/off) (x1) 50K-Ohm Linear-Taper Potentiometer Radioshack #271-1716 (x2) 220µF 35V 20% Radial-lead Electrolytic Capacitor (or anything between 200 and 300 uF) Radioshack #272-1029 (x2) SPST PC-Mountable Submini Toggle Switch Radioshack #275-645 (x2) Silver Tone Knurled Knob (or any knob with 0. since these buttons are square it is harder to drill a hole for them in an enclosure.Electronic Instrument by amandaghassaei on March 16. you might want to use a different type of button. it fits in your hands easily. If you are a beginner.7K Ohm 1/4-Watt Carbon Film Resistor Radioshack #271-1330 (x1) 1K Ohm 1/4-Watt Carbon Film Resistor Radioshack #271-1321 (x1) 5K Ohm 1/4-Watt Carbon Film Resistor (x1) 9V Alkaline Battery Radioshack #23-853 (x1) Heavy-Duty 9V Snap Connectors Radioshack #270-324 (x1) Amber Super-bright LED Indicator Radioshack #55050630 (x1) White Super-bright LED Indicator Radioshack #55050633 (x1) 1/8" Stereo In-Line Audio Jack Radioshack #274-274 (x1) LM386 Low Voltage Audio Power Amplifier (8-Pin DIP) Radioshack 276-1731 (1x) 8 Pin Socket 276-1995 Radioshack 276-1995 Additional materials: 22 Gauge Wire Radioshack #278-1224 Solder Radioshack #64-013 drill plywood polyurethane finish sand paper hot glue super glue four wood screws Heat Shrink Wrap Radioshack #278-1610 Electrical Tape Radioshack #64-2375 I've included fritzing breadboard diagrams (divided into a few parts) and schematics for this project as well as all firmware. You can find these documents throughout the body of this instructable or download them all in one zip file below. If you connect it to your computer via usb you can also use it to send MIDI data.25" inner diameter) Radioshack # 274-424 (x9) 1N914/4148-Type Diode (two packages) Radioshack #276-1122 (x3) 2K ohm 1/2W 5% Carbon Film Resistor (1 package) (x10) 10K Ohm 1/4-Watt Carbon Film Resistor (2 packages) Radioshack #271-1335 (x8) 20K Ohm 1/4-Watt Carbon Film Resistor (2 packages) (x1) 4. but they only come in a surface mount version.

if you see .zip (2 MB) [NOTE: When saving.tmp as the file ext.zip'] http://www. rename it to 'all files.File Downloads all files.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

STL. so I also made a set of eps files with some extra length on the ends for sanding ("enclosure long"). and the EPS files for the enclosure I built below. I glued the pieces together with wood glue and cut a piece of acrylic for the front panel. be creative! I wanted to sand off the scorched ends of the laser cut pieces so that the outside of the box had a consistent finish.2" plywood.Step 1: Build enclosure I used AutoCAD. Autodesk 123D Make. I've attached the AutoCAD.instructables. you can buy a project enclosure or find a spare box and drill holes in it for all your components. I also cut a front panel out of 3mm acrylic. and CorelDRAW to design my project enclosure. If you do not have access to a laser cutter. Then I sent my EPS files to a laser cutter and cut them out of 0. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

and it shares the other lead with all the buttons in its column. Essentially. In order to prevent this. A1. Since the Arduino is very fast. mount each button in your project enclosure. Most buttons have two leads (figure 9). You can find the fritzing files for 2-lead button and 4-lead button multiplexing below. if you see . and A2.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . In order to reduce this number down to only six pins. we will not be able to tell a difference in the response time of the buttons when they are multiplexed vs if we had dedicated one input pin to each button. http://www. Solder a (preferably black) wire to the other end of the diode and a (preferably red) wire to the other side of the switch.tmp as the file ext. Do this for all nine switches.zip'] Step 2: Wire buttons We need to wire the buttons to the Arduino so that we can monitor whether or not they have been pressed. Buttons work in the same way as switches. ensuring current always flows through the buttons in one direction. but some (like the ones I used) have four leads because each side of the switch is split into two separate leads. if two buttons are depressed at the same time.File Downloads glitchbox enclosure. Solder a diode to one side of each switch. But if we use one input pin for each button we will need to use nine of the arduino's 20 pins. Once soldered. each button is attached to a diode. rename it to 'glitchbox enclosure. As shown in figures 11 and 12. You may find it necessary to use hot glue. I used a technique called multiplexing. be sure that the "-" end (usually indicated with a stripe) is facing away from the switch. Multiplexing buttons does bring some complications. be sure to check the specs to locate two leads that are not connected to each other. By comparing figures 9 and 10. electrical tape. or heat shrink to reinforce/protect these connections. multiplexed buttons are wired such that each button shares a common lead with all the buttons in its row.zip (345 KB) [NOTE: When saving. D10) and check to see if any of the columns are grounded by measuring the voltage of A0. This way we can use the arduino to ground one row of buttons at a time (Arduino D8. current can flow through the circuit in ways we did not intend and make us think that four buttons are depressed. but if you use the four lead buttons. they close an open circuit. Since current can flow in both directions through a button. you can see that both types of buttons are essentially the same. we will be measuring the states of the buttons row by row. D9.

instructables.http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

fz (399 KB) [NOTE: When saving. if you see . http://www. Start by trimming the pins down with a pair of wire cutters. cut off the six pin socket.fz'] button schematic 4lead tact. rename it to 'button schematic 4lead tact.com/id/RadioShack-presents-18-More-Awesome-Projects/ .File Downloads button schematic 2lead. if you see .tmp as the file ext. cut the sockets from the top of the board. Finally. but I like to trim them down a little bit first so they do not take up so much room in the project enclosure. Next.fz (366 KB) [NOTE: When saving.instructables.tmp as the file ext.fz'] Step 3: Prepare arduino shield The Arduino proto-shields are a convenient way to attach circuits to an Arduino. rename it to 'button schematic 2lead.

instructables. and 2 (see figure 1) and cut away the excess lead wire. 1. http://www. On the underside of the board.part 1 Solder three 2kOhm resistors on the proto-shield so that they are five pins from analog pins 0. solder the resistor leads farthest from analog pins 0. Use three small jumper wires (I used the scrap wire from the resistor leads). connect analog pins 0. 1. 1.Step 4: Wire buttons on arduino shield .com/id/RadioShack-presents-18-More-Awesome-Projects/ . and 2 to the three nearest soldering points. and 2 together and connect them to 5V using a jumper wire.

Solder the leads from buttons 0. and 6 in line with analog pin 2. and buttons 2. Again.part 2 Solder the red wires (the lead not connected to the diode) from the buttons to the protoboard. 5.Step 5: Wire buttons on arduino shield . buttons 1. and 7 with analog pin 1.instructables. Clip the excess wire from each of these connections and solder all the adjacent points togther on the underside of the board (see figure 2). 3. and 8 with analog pin 2.com/id/RadioShack-presents-18-More-Awesome-Projects/ . I've provided the circuit diagrams and fritzing documents for both 2-lead and 4-lead buttons. http://www. Each of the buttons should now be electrically connected to an analog pin and one of the 2k resistors. 4.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .File Downloads http://www.instructables.

fz (399 KB) [NOTE: When saving. 4. again.fz'] Step 6: Wire buttons on arduino shield . 1. Clip the excess wire from each of these connections and solder all the adjacent points togther on the underside of the proto-shield (see figure 2).tmp as the file ext. rename it to 'button schematic 2lead. 2-lead and 4-lead diagrams and fritzing are provided here. if you see . if you see .fz (366 KB) [NOTE: When saving.instructables. Each of the buttons should now be electrically connected to one of the digital pins. and 8 with digital pin 10.com/id/RadioShack-presents-18-More-Awesome-Projects/ .tmp as the file ext. Solder the leads from buttons 0. and buttons 6. http://www. rename it to 'button schematic 4lead tact. button schematic 4lead tact. and 5 with digital pin 9.fz'] button schematic 2lead. 7. and 2 in line with digital pin 8 buttons 3.part 3 Solder the black wires (the lead connected to the diode) from the buttons to the protoboard.

rename it to 'button schematic 2lead.com/id/RadioShack-presents-18-More-Awesome-Projects/ . rename it to 'button schematic 4lead tact.tmp as the file ext. http://www.tmp as the file ext. if you see .fz (366 KB) [NOTE: When saving. if you see .fz'] button schematic 2lead.fz'] Step 7: Sand enclosure This is a good time to sand down the enclosure if necessary.instructables.fz (399 KB) [NOTE: When saving.File Downloads button schematic 4lead tact.

I ended up using a 1k resistor for the amber LED and a 4. these values may be different depending on what type of LEDs you use and how bright you want them. http://www. Attach a current limiting resistor to each of the longer leads of both LEDs.Step 8: Mount and wire LEDs I mounted my indicator LEDs early so I could sand the tops down while finishing the wood in the rest of the enclosure.instructables. I used some super glue to fit the LEDs inside two 5mm holes. but 1k is a good place to start. I left the top parts sticking out so that it could be sanded flush with the enclosure surface. I chose to use resistors that were much higher than I needed. beacuse I didn't want the LEDs to be blindingly bright. I've attached the fritzing document which includes the LED wiring below. Attach the shorter leads of both LEDs to each other (grounds) and connect to the ground pin of the arduino protoshield.com/id/RadioShack-presents-18-More-Awesome-Projects/ . You can check the datasheet of the LEDs you bought to calculate the lowest possible resistor values for your LEDs.7k resistor for the white LED.5V and the current will be 15-25mA. The optimum resistor value can be calculated as follows: R>=V/I where: R is resistance across the resistor measures in ohms V is forward voltage in volts from LED specs I is continuous forward current measured in amps from LED specs For most through hole LEDs the forward voltage will be about 2-3. Sanding down the top of LEDs gives them a frosted surface which makes them nice and diffuse.

Step 9: Tempo pot Solder three leads onto a 50kOhm linear taper pot. the other to 5V(red wire) and the middle pin(green wire) to analog pin 5 on the Arduino shield. Connect one side to ground (black wire).instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.

You can find the fritzing file below. I added two 0. Arduino PORT D (digital pins 0-7) output 8 pieces of data (one from each pin) which are sent to each junction of the DAC. A simple way to do this is to use something called an R2R resistor ladder. and we must convert it to an analog waveform before sending it to speakers. As you can see in the schematic." We need a DAC because the audio data stored in the Arduino is digital.instructables. and sums them to produce a voltage level between ground and 5 volts. There are 10 connections to the DAC. You can think of it as a multi-leveled voltage divider .com/id/RadioShack-presents-18-More-Awesome-Projects/ . ground. http://www. weights them.1uF capacitors to the end of the resistor ladder to act as a low pass filter. The green wire in figure 6 is audio out.Step 10: DAC DAC stands for "digital to analog converter. this wire will connect to the amplifier in the next step. It takes incoming digital bits (+5v and ground from Arduino). The resistor ladder for this project is an 8-bit DAC. You may choose to change the values of these capacitors depending on what you like. 8 digital input pins from the arduino. and audio out. This type of filter will remove the higher frequencies caused by the low (8khz) sampling rate of the audio and smooth out the waveform. I soldered these resistors on a piece of copper plated protoboard I cut down to size.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . to digital pin 0 2. Image Notes 1. to digital pin 7 http://www.instructables.

fz'] http://www.tmp as the file ext. ground 3. input pins from arduino 2.instructables. Image Notes 1.com/id/RadioShack-presents-18-More-Awesome-Projects/ . rename it to 'audio circuit. audio out File Downloads audio circuit.fz (372 KB) [NOTE: When saving. if you see .

the simplest diagram is reproduced in figure 2.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. http://www. Find the fritzing file below. I sent a fixed voltage to pin 3 of the LM386 using two resistors in a voltage divider configuration. Also. Additionally. so I used it instead of the 250uf. instead of a 10k potentiometer.Step 11: Amplifier I cut another piece of protoboard to create the amplifier circuit.05uf cap and 10ohm resistor. our audio out will be sent to another pot for volume control before being sent to speakers. I used a variant of this circuit which does not include the 0. I only had a 220uf capacitor when I was putting my project together. Many suggested wiring diagrams of the LM386 can be found on the datasheet .

from amp 3. rename it to 'audio circuit.fz (372 KB) [NOTE: When saving.com/id/RadioShack-presents-18-More-Awesome-Projects/ . 220uF 7. 220uf 8. This is the switch that will be used to connect to power later. 10k 6.instructables.fz'] Step 12: Wire volume(gain) control pot Volume or gain of the audio signal will be controlled with the 10k audio taper pot with switch. Image Notes 1. 20k 3. The middle is audio out. 20k 5.tmp as the file ext. it will be hooked up directly to the audio jack. 100nF File Downloads audio circuit. Also connect a wire to the bottom and left leads on the back of the pot (figure 2). Connect the audio out from the amplifier and ground to either side of the potentiometer. audio out 2. 9v 9. to headphone jack http://www. ground 2. Image Notes 1. 5k 4. if you see .

fz'] Step 14: Battery Solder the red lead from the 9V battery connector to the top left swtich input on the volume control pot as shown in figure 2. Then solder the bottom lead from the switch to a wire and connect that wire to Vin on the arduino shield. Image Notes 1.instructables. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . rename it to 'pots and switches. to arduino input pin File Downloads pots and switches. This way.Step 13: Switches Solder a 2kOhm resistor and two wires to each switch as shown in figure 1. when the pot is turned clockwise it will click and connect these two leads. if you see .fz (209 KB) [NOTE: When saving. Connect the red wire to +5V and the rightmost black wire to ground on the arduino proto- shield. to 5V 2.tmp as the file ext. The middle wire of the record switch connects to pin A3 and the middle wire of the mute switch connects to pin A4. to ground 3.

Solder the audio out from the gain pot (middle lead) to both stereo channels of the headphone jack.instructables.Step 15: Headphone jack Remove the plastic casing from the headphone jack.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www. You may want to use some hot glue to reinforce these connections and make sure that they do not short out. Solder ground to the jack.

Remove side pin from the pots (figures 3 and 4) and secure with nuts on outside of enclosure (figure 5). Connect battery and fit inside enclosure.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1. http://www. Cover the exposed circuitry of the DAC and amplifier with electrical tape to prevent short circuits and fit inside enclosure. ground Step 16: Install components in enclosure Place all finished components in enclosure and secure with glue if necessary. from gain pot 2. I used super glue to secure the headphone jack and switches.instructables.

remove side pin http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1.

pde'] http://www. with the audio data stored in the arduino's flash memory -it can also be used to sequence MIDI through a usb connection to your computer These two functions require two separate pieces of firmware which are described in more detail in the next two steps (download them below).instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 18: Firmware This instrument can do two different things: -it can be used as a standalone audio device. then if you would like to switch over to audio you should load the audio firmware. rename it to 'glitchboxaudiofirmware.pde (144 KB) [NOTE: When saving. File Downloads glitchboxaudiofirmware. screw back panel on.Step 17: Screw on back If necessary. if you see . This means if you would like to use it as a MIDI instrument you need to load the MIDI firmware.tmp as the file ext.

you may need to quit Arduino and then briefly disconnect the usb connection to you computer and reconnect to establish a serial connection to MaxMSP. Once the firmware is loaded.tmp as the file ext. http://www. Once all of your audio is working correctly. you can select your MIDI out channel and change MIDI note and velocity values (see the comments).pde (11 KB) [NOTE: When saving." if you don't have MaxMSP. Read the instructions on the last step to find out how all the controls should work. If you have just loaded the arduino firmware. Flip the mute switch to mute what you've recorded. unplug the usb connection and turn off the device (turn the gain pot until it clicks off). Plug in your headphones and slowly turn up the gain pot while pressing one of the front panel buttons repeatedly until the volume is where you like (be careful not to turn up the volume too high!). File Downloads glitchboxaudiofirmware.tmp as the file ext. rename it to 'glitchboxaudiofirmware. flip the record switch. When you have the instrument connected to your comp via usb and the app MIDIroute is initialized properly. try out all the buttons and make sure you can hear all of them. glitchboxMIDIfirmware.pde'] Step 19: Audio firmware The audio firmware is the most simple to set up. Turn the device on. rename it to 'glitchboxMIDIfirmware. The white LED should start start blinking on the beat and you should hear your sequence looping.instructables. Flip the record switch to record additional audio on top of your recorded sequence. after a moment you should see the white LED turn on.pde'] Step 20: MIDI firmware To use this device as a usb MIDI instrument you will need to run a serial to MIDI app. if you see . if you see .pde (144 KB) [NOTE: When saving. I have written one in MaxMSP called "MIDIroute. Download the Arduino sketch provided below and load it onto your board. the white LED should turn off and the orange should turn on. this time you will see the orange LED blinking with the beat. flip it again to bring it back. download MaxMSP Runtime (it is free and located on the right side of the page). In the app.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Play a short sequence with the buttons and flip the white switch again when you want to start looping the audio you've just played. I've loaded 9 default sounds in the firmware. you should see the grid light up orange as you press a button.

tmp as the file ext.com/id/RadioShack-presents-18-More-Awesome-Projects/ .“Stereo Bit Rate” of 16 KHz.tmp as the file ext. a “Sample Rate” of 8 KHz. or linux. so high frequencies will be attenuated -remember to change your iTunes settings back after you are done.zip (5 KB) [NOTE: When saving.zip'] glitchboxMIDIfirmware. please read the comments I have provided.. -open Encode Audio -you will be prompted to select the file you wish to encode -a dialog box will appear letting you know that the data has been saved to your clipboard http://www. this will open another dialog box (figure 3) -copy the settings from figure 3 . This device uses 8 KHz. 8kHz is very compressed.. you'll need to compress it heavily to get it to fit. This program was provided by the people at high low tech . windows. rename it to 'glitchboxMIDIfirmware. The more important comments are written in the following format: /********************************************* IMPORTANT COMMENTS *********************************************/ these comments will let you know how to make some simple changes such as: -where to insert new stored audio data -how to change the resolution of the sequencer (16 step. and Mono “Channels” -right click on the files you want to convert and select "create mp3 version". You're only going to be able to store about 4 seconds of audio total. rename it to 'MIDIroute.instructables.pde (11 KB) [NOTE: When saving. so keep the nine samples very short! Down sample the audio in iTunes: -import your sample into iTunes -open Preferences and select "Import Settings" (figure 1) -select import using mp3 encoder and custom settings (figure 2).) Step 22: Prepare audio files Customize your instrument by loading your own audio files onto it! Since all audio is stored on the memory of the Arduino. 8-bit mono audio that has been converted into an array of bytes. listen to it to get an idea of what it will sound like. Convert to byte array: -Download the Encode Audio Processing sketch below for mac.File Downloads MIDIroute. 32 step. if you see . if you see .pde'] Step 21: Editing the firmware If you would like to make changes to the firmware.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . Enjoy! http://www.instructables. it should be in the following form: byte sample#[] PROGMEM = {PASTE HERE}.Insert in Arduino Firmware: -paste the data into one of the sample# storage spaces (figure 4). The position of the samples on the grid is given in figure 5.

zip (637 KB) [NOTE: When saving.File Downloads EncodeAudio-windows.instructables. if you see .zip'] Related Instructables Linux Recording Ripping Drum What is MIDI? Converting a Studio Software Portable MIDI Tracks from by Electronic rescued toy into Drum Beats in Components by Tone Generator MIDI files by amandaghassaei Drums Lingo by a MIDI controller Audacity by Arduino MIDI reteo On-the-Cheap jdlink doggyd69b by zen.com/id/RadioShack-presents-18-More-Awesome-Projects/ .zip'] EncodeAudio-linux.tmp as the file ext.zip (610 KB) [NOTE: When saving. rename it to 'EncodeAudio-windows. rename it to 'EncodeAudio-macosx. rename it to 'EncodeAudio-linux.webb Rockband instructables_user_4783 by lewisb42 Drumset (video) by roycetaft http://www.zip (616 KB) [NOTE: When saving. if you see .tmp as the file ext. if you see .tmp as the file ext.zip'] EncodeAudio-macosx.

For me. Even people with no programming experience can usually get up to speed pretty quickly and start coding their own robotic routines. Programming it and changing the code is extremely straight- forward. this robot is entirely zip tied together. The "brains" of this robot are also easily modifiable since it is based on an Arduino development board. This robot is basically made with a handful of household items and some simple electronics that you can easily pick up at Radioshack. cut the zip ties away and zip tie it together differently.' and '62 Projects to Make with a Dead Computer'. It was interesting to see how much more robust one of these creatures become when you give it some computer logic. I am also the author of the books 'Simple Bots. Subscribing to me = fun and excitement! Intro: Simple Walker Robot Building a simple walking robot is really easy. In fact.instructables.Simple Walker Robot by randofo on February 22. 2012 Author:randofo Randy Sarafan loves you! I am the Technology Editor here at Instructables. this robot was mainly an experiment to see what would happen if I built a full-on robot that was like one of the many Simple Bots that I have built. Don't let the number of steps fool you into believing otherwise. which makes building it and modding it extremely easy.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 1: Go get stuff You will need: (x4) Rubber spatulas (x2) 6" turnbuckles (x1) 2" x 48" aluminum ruler (x1) Ballpoint pen (x1) 4-40 x 1/4" nut and bolt (x1) Arduino Uno REV 3 (Radioshack #276-128 ) (x2) Parallax 4-6VDC Standard Servo (Radioshack #273-441 ) (x2) 3x1 male header pins (strips of 40 available in Radioshack #277-077 ) (x1) Parallax Ping Sensor (Radioshack #276-136 ) (x1) Heavy-Duty 9V Snap Connectors (Radioshack # 270-324 ) (x1) 9-Volt Battery Holder (Radioshack #270-326 ) (x1) Size M Coaxial DC Power Plug (Radioshack # 274-1569 ) (x1) Multipurpose PC Board with 417 Holes (Radioshack #276-150 ) (x1) 90-Ft. If at any point you are unhappy with how its built. UL-Recognized Hookup Wire (Radioshack # 278-1221 ) (x1) Enercell® Alkaline 9 Volt Battery (Radioshack #25-853 ) (x1) 5-1/2" Zip Ties (Radioshack # 278-1631 ) http://www.

Cut a 10" section off one end using a hacksaw.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.Step 2: Saw Get a 2" wide aluminum ruler. http://www.

place a block of wood atop the ruler and clamp it firmly in place. Set them aside for some other project.instructables. Bend the aluminum slightly (to about 30 degrees) using a rubber mallet or hammer. You have now made an impromptu bending rig. If you don't have a bench vise. hang the ruler halfway off the edge of your workbench.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 3: Bend Clamp the cut section of ruler in a bench vise such that 5" are sticking out. http://www. Simply hammer down on the ruler until it bends down over the edge of the workbench. Step 4: Take apart Take your turnbuckles and remove all of the eyelets.

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 5: Drill Widen the second hole from center with a 1/8" drill bit on each arm of the servo horn.instructables. Repeat this for the second servo.

Repeat on the second turnbuckle. Measure 3" across one of the turnbuckles. position two more "V" shapes pointing to each side of the turnbuckle.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Make a mark at this point.Step 6: Mark and drill Place the turnbuckle on edge. Position the horn such that it is making a "V" perpendicular to the length of the turnbuckle. Make marks in the valley of each of these "V" shapes. http://www. by default. This should. Place the servo horn at the 3" center point on the turnbuckle. Repeat on the second turnbuckle. drill these two marks with a 1/8" drill bit. Finally.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . make a centered mark.instructables.Step 7: Mark One inch from the edge of each of the far sides of the ruler. http://www.

http://www.instructables.Step 8: Drill Drill the two marks that were just made with 3/4" spade bits.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Rotate the servo 180 degrees and repeat on the opposite side. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 9: Remove Remove the servo horn from the servo by unscrewing the set screw. Step 10: Mark again Center the servo's shaft in one of the 3/4" holes. Use the servo's mounting holes to make 4 marks on the ruler.instructables.

Step 11: Drill again Drill each of the mounting marks that you have just made with an 1/8" drill bit.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. http://www.

Step 13: Reattach the horn Turn the servo's motor shaft entirely to the right or left.instructables. Repeat for the second servo motor.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Trim away the excess zip tie tails.Step 12: Zip tie Zip tie the servos to the ruler using the mounting holes you just drilled. Fasten it in place with the mounting screw. Put the first servo horn back on such that all of the "V" shapes are parallel to each of the edges. http://www.

Drill all of the marks that you have just made with a 1/8" drill bit.Step 14: Mark and drill a bit more Between one of the far edges of the ruler and the servo.com/id/RadioShack-presents-18-More-Awesome-Projects/ . On the other side of the same servo. place the Arduino board and make marks in each of its mounting hole. http://www. place the PCB and make marks on the ruler through each of its mounting holes.instructables. Try to fit the whole thing to one side of the ruler's bend. place the battery mount and make a mark. On the opposite side of the ruler's bend.

instructables.http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

http://www.instructables.Step 15: Insert Insert two zip ties into each of the holes drilled in the turnbuckles from the inside out.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

e. Align them so they are of matching height.Step 16: Attach Place a turnbuckle centered atop a servo horn. Next. This should end up as a mirror image of the first (i. Zip tie the turnbuckle firmly in place. rotate the spatula slightly outward (about 10 to 25 degrees). Step 17: Mounting holes Position the handle of the spatula about halfway up the turnbuckle such turnbuckle intersect perpendicularly.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Make multiple marks on the spatula's handle on all sides of the turnbuckle to indicate drill holes for zip tying it to the turnbuckle. Flip the spatula upside down. but otherwise identical). Use the first set of drill holes as guides to drill another set of holes in the other spatula. Repeat this process for the second turnbuckle. and perpendicular to the ruler. and then trim away any excess zip ties. http://www.instructables. Drill the marks that you have just made with a 1/8" drill bit. and place the other spatula on top of it right-side-up. inverted.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.instructables.

http://www. For the best results. These two spatulas will serve as the front legs.Step 18: Front legs Using the holes you have just drilled. zip tie the spatulas to the turnbuckle closest to the holes that were drilled to mount the PCB.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . make sure they roughly mirror each other in position and height.

Step 19: Hind legs Repeat the process for the front legs to make rear legs.instructables. Note that the rear legs of this bot were slightly shorter than the front legs. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . However. this is not a hard rule. Experiment and see what works for you.

instructables.Step 20: Spacers Take apart a ball point pen. Cut the pen's tube into 1/4" sections using a razor blade. These will be used as spacers for mounting components http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Solder the red wire to the central terminal and the black wire to the plug's outer terminal.Step 21: Trim Using a paper cutter or pair of scissors.instructables. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . such that you will be able to screw it back together later (after it is soldered). Step 22: 9V adapter Screw apart the M-type plug and slide the casing onto the 9V connector wires. trim the prototyping board down to about 1". Screw back on the plug's cover.

nstall two 3-pin male headers such that each one has a pin that is soldered to the ground rail. This should counter-balance the fact that the PCB will get mounted to the board at about a 45 degree angle. and place the power lead in the other. One the opposite side of the PCB that the Ping was soldered to. it would appear to be rotated about 45 degrees clockwise. and a pin the is soldered to the power rail. Solder the Ping sensor in place at a slight angle such that if you hold the board parallel to the ground.instructables. The signal lead should be in one of the smaller conductive rails that spans 3 holes.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 23: Sensor board Place the ground lead of the Ping sensor into one of the long conductive rails that travels the length of the board. http://www.

For more information visit the project page: http://www. // create a second servo object to control a servo http://www. Step 25: Program The code below includes the necessary bare bones minimum to make the robot walk forward and back away from something that gets too close. /* Simple Walker Robot by Randy Sarafan This code is for controlling a simple quadruped robot and having it respond to obstacles that approach.Step 24: Wires Solder a 6" red wire to the power rail. Solder a 6" black wire to the ground rail.instructables.com/id/Simple-Walker-Robot/ This code is based on both the Arduino Sweep example by BARRAGAN and the Arduino Ping example by Tome Igoe */ #include <Servo.h> Servo myservo. // create servo object to control a servo // a maximum of eight servo objects can be created Servo myservo1.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Solder a 6" green wire to the terminal that the Ping's signal pin is connected to.instructables. Solder a 6" green wire to each of the remaining header pins that are not connected to a power or ground connection. These two wires will correspond to the signal pins for each of the servos. but I will leave it up to you to expand upon it. This code could definitely be more robust.

outbound // and return. It's the pin number // of the sensor's output: const int pingPin = 7.write(pos + 20). // attaches the servo on pin 10 to the servo object myservo.746 microseconds per inch (i. go forwards if(inches > 12){ forward().parallax.write(pos1 . digitalWrite(pingPin. // The same pin is used to read the signal from the PING))): a HIGH // pulse whose duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. delayMicroseconds(5).instructables. // tell servo to go to position in variable 'pos' myservo1. digitalWrite(pingPin. } http://www. // tell servo to go to position in variable 'pos' .write(pos . // tell servo to go to position in variable 'pos' delay(rate). back away if(inches <= 12){ backward(). } //if nothing is closer than a foot. } //function for backing away void backward(){ myservo. there are // 73.30). digitalWrite(pingPin.write(pos). cm. // See: http://www. // tell servo to go to position in variable 'pos' myservo1. sound travels at 1130 feet per // second). // convert the time into a distance inches = microsecondsToInches(duration). } long microsecondsToInches(long microseconds) { // According to Parallax's datasheet for the PING))). myservo. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: pinMode(pingPin.com/dl/docs/prod/acc/28015-PING-v1. void setup() { myservo. // tell servo to go to position in variable 'pos' . HIGH). INPUT). // tell servo to go to position in variable 'pos' myservo1. duration = pulseIn(pingPin.write(pos1). // tell servo to go to position in variable 'pos' myservo1. } } //function for going forwards void forward(){ myservo.write(pos1 .pdf return microseconds / 74 / 2. LOW).20). //if something is closer than a foot.e.sets center axis delay(5000).20). // variable to store the servo position for front legs //changing this value changes the default position of the front legs //determines the rate at which the legs move int rate = 1000. // tell servo to go to position in variable 'pos' delay(rate).3.25). pinMode(pingPin.attach(10). // The PING))) is triggered by a HIGH pulse of 2 or more microseconds. } void loop() { long duration. // variable to store the servo position for rear legs //changing this value changes the default position of the rear legs int pos1 = 70. // attaches the servo on pin 9 to the servo object myservo1.attach(9).int pos = 80.com/id/RadioShack-presents-18-More-Awesome-Projects/ .sets center axis myservo1.write(pos1 + 50). myservo. HIGH).write(pos + 25).write(pos . OUTPUT). This gives the distance travelled by the ping. delayMicroseconds(2). // tell servo to go to position in variable 'pos' delay(rate). // tell servo to go to position in variable 'pos' delay(rate). so we divide by 2 to get the distance of the obstacle. inches. // this constant won't change.write(pos1 + 20). LOW).

gently bend its pins until it is. If the sensor is not level to the ground. rename it to 'Simple_Walker_Robot.File Downloads Simple_Walker_Robot. Zip tie it firmly in place.pde'] Step 26: Sensor Place a spacer between each of the PCB mounting holes and the PCB.tmp as the file ext.pde (3 KB) [NOTE: When saving. if you see .com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. http://www.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 27: Arduino Place a spacer between the Arduino and each of its mounting holes on the ruler. Zip tie it firmly in place.

instructables.Step 28: Attach Attach the 9V battery holder to its mounting hole using the a 4-40 nut and bolt.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.

Plug the green wire from the Ping sensor into the socket for digital pin 7. and it is good to go.Step 29: Plug Plug the servo female socket into the male header pins on the PCB. making certain that black is lined up with ground. Step 31: Power Connect the battery to Arduino.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Plug the black wire from the PCB into the Arduino Ground socket.instructables. red with power. and white with the green signal wire. Step 30: Wire it up Plug the red wire from the PCB into the Arduino 5V socket. Plug the green wire from the rear servo into the socket for digital pin 10. Plug the green wire from the front servo into the socket for digital pin 9. http://www. secure it in the battery holder.

Related Instructables Build a Mini- Walking Bot by How to freeform Mrdon219 How to modify a How to build the the bicore ( Simple Bots: How to Build a Large Dancing servo motor for one motor BEAM robotics ) Walker by Robot .com/id/RadioShack-presents-18-More-Awesome-Projects/ ...instructables.The Robot by continuous walker! by by robomaniac The BallBot1 randofo BeetleBot by leevonk rotation ( One Robot Project . robomaniac robomaniac motor walker by robot ) by SolidWorksMagi robomaniac http://www.

and play electric ukulele. and hobbyists. eat pho. the Arduino Synthesizer is a robust tool for making a rudimentary noise machine. tinkerers.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 1: How it works Sound is created by playing the same sound grain. 2012 Author:audreyobscura audreyObscura. Our ears and brains turn this into an audible hybrid of the repetition rate and the original grain. By creating an interface and a program that can call certain values to be output to an audio out. Intro: The Arduino Synthesizer The Arduino is able to output sound through a library that has been developed called the Tone Library . and it sounds like a constant tone. The grain consists of two triangular waves of adjustable frequency. or samples (small pieces of around 1 to 50ms) over and over again at very high speed. It uses granular synthesis techniques to generate a distinctive sound that can be a whole lot of fun for musicians. The repetition rate is set by another control.instructables. http://www. and adjustable decay rate. artists.The Arduino Synthesizer by audreyobscura on March 19.com i work at instructables! i make things with technology.

(Radioshack #271-1714) (5X) Potentiometer knobs .(Radioshack #274-416) (3X) LEDs .(Radioshack #276-307) (1X) SPDT switch .(Radioshack #270-1807) (1X) 1/8" Audio Jack.(Radioshack #275-002) (1X) Project enclosure .(Radioshack #278-1627) (1X) breadboard .(Radioshack #23-866) (1X) 9V battery clip .(Radioshack #276-1657) (1X) Arduino .instructables.(Radioshack #276-128) (1X) Arduino Protoboard . you will need the following things.(Radioshack #276-002) (1X) jumper wire .com/id/RadioShack-presents-18-More-Awesome-Projects/ .(Radioshack #2271-1335) (3X) 220 resistors .(Radioshack #274-1569) Tools: soldering iron solder flux glue multimeter drill http://www.(Radioshack #276-173) (3X) 10K ohm resistors .(Radioshack #274-251) (1X) a whole lot of solid core wire . Parts: (5X) 5K potentiometer.(Radioshack #278-1222) (1X) heat shrink .(Radioshack #271-1313) (1X) 9V battery .(Radioshack #270-324) (1X) size M coaxial DC power plug .(Radioshack #275-1549) (1X) Light Dependent Photo Resistor .(Radioshack #276-140) (1X) Tactile Switch .Step 2: Materials and Tools To make this project.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

Then. and decay of the synthesizer. By using a breadboard to build the circuit first.ino'] Step 4: Using a breadboard. go ahead and attach the Proto Shield to your Arduino. Analog in 0: Grain 1 pitch Analog in 1: Grain 2 decay Analog in 2: Grain 1 decay Analog in 3: Grain 2 pitch Analog in 4: Grain repetition frequency http://www. if you see . I have attached the code for the Arduino to this Instructable. Connecting the potentiometers will control the grain.com/id/RadioShack-presents-18-More-Awesome-Projects/ . The circuit diagram was made with Fritzing .0 to upload it to your board. and Power.tmp as the file ext.fzz (50 KB) [NOTE: When saving. rename it to 'ArduinoSynth. it has also been attached to this step. connect the signal wires from the potentiometers to Analog Input 0-4 on the Arduino. The Arduino is capable of running on a 9v wall wart power supply. or you may use a 9V battery with a battery clip to a size M coaxial DC power plug .tmp as the file ext. rename it to 'Arduino_Synthesizer.ino (16 KB) [NOTE: When saving.and + rails of your breadboard.Step 3: Code.instructables. You may also power via your USB cable. and positive rail of the breadboard. File Downloads ArduinoSynth. Circuit Diagram. it is much easier to transfer the circuit to your Protoboard later. You will need a USB 2.fzz'] Arduino_Synthesizer. You have many options when it comes to power. Run wires from the GND and 5V to the . The right and left side leads will get connected to the ground rail. After you have uploaded the code from your computer. frequency. if you see .

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.http://www.

Connect your positive lead to PWM~ 3 on the Arduino. Solder wires to the your 1/8" mono audio jack. http://www. make your leads fairly long.instructables. Connect the negative lead of your jack to ground rail of the breadboard. You will need a 10K ohm resistor between the arduino board and the positive lead of your audio jack.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 5: Wire your Audio Jack.

Step 6: Connect your photoresistor.com/id/RadioShack-presents-18-More-Awesome-Projects/ . The remaining leads are connected to ground. Connect the signal. as well as Analog Input 5 on the Arduino. The other lead of the photoresistor is connected to a 10K ohm resisted ground rail. lead of your SPDT switch to Digital pin 02 on the Arduino. http://www.instructables. One lead of your photoresistor is wired directly to your 5V positive rail on the breadboard. and the 5V positive rail that is resisted by a 10K ohm resistor. Step 7: Connect a SPDT switch. middle.

The last connection of your tactile switch connects a signal wire between the switch and Digital Pin 6 on the Arduino. and the other to a 10K ohm resisted ground pin.Step 8: Wire the tactile switch. Connect one of the two parallel pins to your 5V positive rail on the bread board. Allow the switch to straddle the bridge of the breadboard. Step 9: Connect the LEDs.instructables. http://www. The tactile switch has four leads.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Drill five holes for the potentiometers. Step 11: Drill the enclosure. Frequency 2 4. One additional hole for the SPDT switch. this is a mono output.instructables. Frequency One 2. Sync Frequency http://www. Drill out holes in the project enclosure for each of the components that were placed in the breadboard.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1. Five small holes in a square for the tactile switch. One hole for your audio jack. Three pairs of small holes for each of the LEDs Two holes close together for the photoresistor. Delay One 3. Do not put your headphones directly near your ear when firing up this synth. If you are using headphones. and it will be loud. Delay 2 5. or connect to a small speaker. Test with a pair of headphones. I used a gold paint pen to mark where I wanted my holes.Step 10: Test it! This is the completed breadboarded circuit.

SPDT switch. and photoresistor into place. 2. then secure them into place. Image Notes Image Notes 1.instructables. A dab of hot glue worked great to quickly mount all of these components. Thread the five potentiometers through the holes that have been drilled. Secure the LEDs. photoresistor 4. LEDs 3. audio jack. Step 13: Add the rest of the components. SPDT switch Step 12: Start adding components to the enclosure. tactile switch 1. tactile switch. http://www. audio jack.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

The next few steps outline how to move the circuit from the breadboard to the Protoboard. bridge made between two holes on the board with solder. connect one wire to digital pin 3. http://www. and solder into place. Because all of your components are secured to the enclosure. When you solder these into place. using red and black wires respectively to denote which leads are positive and negative. run a jumper wire to the center of the board so that you may break the line with the same 10K ohm resistor from the breadboard. Image Notes 1. make sure you drop enough solder on to the board to connect the wire to the resistor. it will be simple to run wires from your components to the board.instructables.Step 14: Wire the audio jack to the Protoboard. On the Protoboard. Solder lead wires to all of the components within the the enclosure.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

then run a single grounding wire back to the ground rail on the Protoboard. and then solder those wires to you LEDs. out to the middle of the board. SPDT switch 2. Image Notes 1. http://www. Step 16: Solder your LEDs into place Connect 3 220 Ohm resisotrs to pins 9-11 on the Protoboard. tactile switch.instructables. Connect a small jumper wire from Analog 5 that will run to the lead of the photo resistor. and a jumper wire from the positive rail. sink the other ends of the resistors into the open holes of the protoboard.com/id/RadioShack-presents-18-More-Awesome-Projects/ . audio jack Step 15: Solder in the resistors for photo resistor. Form connections to your remaining 10K ohm resistors. and SPDT switch Extend two jumper wires from the ground rail. Daisy chain the ground wires for the LEDs.

undefined 2. Daisy chain the positive and ground leads from the potentiometers together. I kept the grain and frequency knobs on the first row of knobs. Again. and the sync knobs below them. the signal wires sync accordingly: Analog in 0: Grain 1 pitch Analog in 1: Grain 2 decay Analog in 2: Grain 1 decay Analog in 3: Grain 2 pitch Analog in 4: Grain repetition frequency http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . 220 Ohm resistors run to the positive leads of the LEDs from PWM 9-11 on the Protoboard Step 17: Wire the potentiometers to the Protoboard. then insert them into their respective rails on the Protoboard. Wire the signal wires of the potentiometers to Analog 0-4. Image Notes 1.

Connect the short jumper wires on the Protoboard to the long leads in the enclosure. Step 19: Connect the protoboard to the Arduino.instructables. and you're ready to jam! http://www.Step 18: Attach your knobs to your potentiometers. attach your potentiometer knobs. seal it up. and 5V rail on the Protoboard. Zero all of your potentiometers out. Snap the Protoboard into place on top of the Arduiono. Plug it in. then align the line on the knob with the zero position on the potentiometer shaft. Using a small flathead screwdriver. respectively. Solder the remaining wires to the ground rail.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

or combinations of the two. by blinkyblinky Controller! by Processing by madshobye Robot Lover Interface by supercapacitor http://www.com/p/rogue-code/wiki/ToneLibraryDocumentation http://arduino.com/p/tinkerit/wiki/Auduino Related Instructables Turn your SuperScope: Arduino into a 4 Electronic Auduino (Lo-fi Arduino Guitar Loud Objects 3 Channel Circuit RC Car to Robot Synth for voice wavetable Noise Toy (AKA arduino Instrument by Pedal by randofo Simulation by randofo arduino) by synth with only The Arduino Powered amandaghassaei through TobaTobias a few Noise Machine) Christmas Light Arduino- components.cc/en/Tutorial/Tone http://itp.google.info/daves-auduino/ http://code.edu/physcomp/Labs/ToneOutput http://code..lewissykes.nyu.instructables.Step 20: Play with it! All of the switches and potentiometers are completely interchangeable! instead of using all those potentiometers try replacing each of them with photo resistors.google..com/id/RadioShack-presents-18-More-Awesome-Projects/ . References: http://blog.

I am very bad at remembering to water plants. Instead of remembering to water my plants when the soil goes dry. That is why I built this self-watering plant to do it for me.Self-Watering Plant by randofo on June 22. Step 1: Go get stuff You will need: (x1) 8" x 6" x 3" project enclosure (Radioshack #270-1809 ) (x1) Multipurpose PC Board (Radioshack #276-150 ) (x1) 5VDC SPDT micro relay (Radioshack #275-240 ) (x1) 9V battery connector (Radioshack #270-324 ) (x1) 9V battery holder (Radioshack #270-326 ) (x1) 9V battery (Radioshack #23-853 ) (x1) SPST micromini toggle switch (Radioshack #275-624 ) (x1) 10K resistor (Radioshack #271-1126 ) (x1) Size M coaxial DC power plug (Radioshack #274-1569 ) (x1) Red and black 22AWG wire (Radioshack #278-1221 ) (x1) 12AWG black wire (Radioshack #278-556 ) (x1) Non-submersible electric water pump (via Amazon ) (x1) Water storage container with lid (x2) 8-32 x 2.of course .when you don't forget to water them. I have created a system that will never forget to do it. and they shrivel up and die. That is . Perhaps further iterations of this device can be connected to a rain barrel so that I won't even have to worry about refilling my reservoir.instructables. I am also the author of the books 'Simple Bots.5" nuts and bolts (x8) 4-40 x 1" nuts and bolts (x1) 4-40 x 3/8" nut and bolt (x4) 1/4" spacers (x1) Wire nut (x2) 3' .5' plastic tubing (x1) #8 Terminal Ring (x1) House plant to water http://www. and the entire system can be fully automated.com/id/RadioShack-presents-18-More-Awesome-Projects/ .' and '62 Projects to Make with a Dead Computer'. I have decreased my obligation to these plants and put it off to a much later date. In this way. Subscribing to me = fun and excitement! Intro: Self-Watering Plant Plants liven up any space by adding a sense of airiness and life. Using a soil sensor. and an Arduino-controlled water pump. 2012 Author:randofo Randy Sarafan loves you! I am the Technology Editor here at Instructables. I only have to remember to once and a while refill the water reservoir.

Drill or cut a hole large enough to fit the nozzles through. Step 3: Drill or cut Line up the water pump with the base of one of the 6" x 3" sides of the case.Step 2: Trim the pump Trim away any unnecessary plastic mounting brackets from the front of the pump that may prevent it from being flush with the case (nozzles and corresponding hardware not included). http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

Arduino.Step 4: Mark Position the water pump. 9V battery holder. Make marks in each of their mounting holes. and circuit board in the bottom of the case. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. so just make a mark on each side such that it can easily be zip tied down. The pump will probably not have a mounting hole.

Step 5: Drill Drill all of the holes that you have just marked with a 1/8" drill bit.instructables. You may need to widen the zip tie holes to 3/16". drill two centered 1/4" holes about 1-1/2" apart. Step 6: Drill more holes On the 6" x 3" side of the case that has yet to be drilled.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.

Step 7: Fasten Zip tie the water pump securely into the case.instructables. Step 8: Cut the cord Cut the pump's power cord about 6" from the pump's body.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.

Solder a 6" section of black 22 AWG wire to this joint. Attach an 18" section of 12 AWG wire to an unused part of the PCB. http://www. Solder a 10K resistor to one of the relay's coil pins.Step 9: Start the PCB Solder the 5V relay to the board. Solder a 6" section of red 22 AWG wire to this joint.instructables. Step 10: Attach wires Attach an 18" section of 12 AWG wire to the free pin of the 10K resistor.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

instructables. They need to be separated because each cable is being wired to a different spot. Step 13: Attach Attach the circuit board to the project box using 1/4" spacers. In this way. AC power will be connected. Split the power cord such that each conductor is its own separate insulated strand for about 6". Step 12: Wire the power Connect one of the strands from the water pump to the normally-open pin on the relay.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Repeat this process for the cord going into the water pump. when the relay is powered up. nuts and bolts.Step 11: Split the wires Pass the cut power cord into the box through the 1/4" hole closest to the water pump. http://www. Connect one of the strands from the power cord to the common pin on the relay.

http://www.Step 14: Wire nut Attach the two free power cables from the pump and power cord together using a wire nut.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

instructables. Tie a knot in the two 12 AWG wires such that when they are passed through the remaining 1/4" hole there would only be tension on the knot (and not the circuit board) when you tug on them. Step 16: Prepare the probes Strip the end of each 12 AWG wire and clamp a terminal ring to the end.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www. Pass a bolt through each and fasten them in place firmly with the corresponding nuts.Step 15: Prep the cords Kink the power cable on the inside of the box and cinch it in place with a zip tie to prevent it from being pulled back through.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 17: Wire the power Solder the red wire from the 9V battery connector to one terminal of the SPST switch. Screw the cover back on. Solder the red wire to the inner power connection. Unscrew the cover from the M-type plug and slide the cover onto the end of the remaining red and black wires. Solder a 5" red wire to the other terminal of the SPST switch.instructables. http://www. Solder the black wire to the outer ground connection on the plug.

Step 18: Install the switch Drill a 1/4" hole in the 8" x 6" hole opposite the water pump. Mount the switch into the hole using the mounting hardware.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.instructables.

begin(9600). //slow your roll . and a probe connected to pin A1 and another connected to +5V.Step 19: Program Plug in your Arduino and upload the following code: /* Self-Watering Plant by Randy Sarafan Reads a soil moisture sensor and turns on a relay that controls a water pump. The soil moisture sensor involves a 10K resistor between pins A1 and ground. For more information. } Keep in mind that you may need to adjust the trigger threshold for your particular plant setup.. // value read from the soil moisture sensor int sensorValue = 0. http://www. then turn on the pump int dryValue = 700 void setup() { pinMode(12. Serial. HIGH).print("sensor = " ).instructables. These probes are embedded and inch apart in the plant's soil. delay(10000). //Turns on the water pump if the soil is too dry //Increasing the delay will increase the amount of water pumped if(sensorValue < dryValue){ digitalWrite(12.I mean. LOW). OUTPUT).com/id/RadioShack-presents-18-More-Awesome-Projects/ . } void loop() { // read the analog in value: sensorValue = analogRead(analogInPin). } // print the sensor to the serial monitor: Serial.instructables. // if the readings from the soil sensor drop below this number. digitalWrite(12. // initialize serial communications at 9600 bps: Serial. slow down the code a little delay(100).com/id/Self-Watering-Plant/ */ // Analog input pin that the soil moisture sensor is attached to const int analogInPin = A1.println(sensorValue). check out: http://www..

If the Arduino lights up when you plugged in the battery.instructables. toggle the switch on the outside of the case to turn it off. Step 21: 9V clip Attach the 9V battery holder securely to the bottom of the project enclosure with a 4-40 x 3/8" nut and bolt.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.Step 20: Install Fasten the Arduino to the base of the project enclosure with nuts and bolts. Step 22: Plug it in Plug in the battery. and secure the battery in the battery holder.

Step 23: Wire it up Now is time to plug everything into the Arduino.instructables. Plug the red wire connected to the soil probe into the +5V socket. Plug the black wire from the circuit board to the ground socket on the Arduino. Plug the red wire from the relay coil into digital pin 12 socket on the Arduino.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www. Plug the red wire connected to the 10K resistor to analog pin 1 socket.

Step 25: Drill Drill a 3/8" hole in the top of the water container's lid. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 24: Case closed Put the lid on top of the project enclosure and use the hardware that came with it to fasten it shut.instructables.

Step 27: Probes Insert the probes into your plant's soil about an inch apart. Plug a tube into each of the pump's connector valves.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 28: Place tube Place the tube from the output of the water pump onto the top of the plant's soil bed. http://www.Step 26: Tubing Cut the tubing in half.

Step 30: Turn it on Flick the switch to turn it on.instructables.Step 29: Insert tube Fill your water container and insert the tube into the hole that you have previously drilled in the top.com/id/RadioShack-presents-18-More-Awesome-Projects/ . You should never have to water your plant again. Now you just need to remember to refill the water reservoir. http://www.

Related Instructables Garduino: Self Watering Garduino. Complete recycled plant Gardening filled box GOURMET Create a Holistic How To Turn Arduino by by GARDEN.instructables. Another ez Hints for a Gardening + Self watering Window Boxes Automated cheap Earth. on pot for growing Katiemariesmith System by (without PVC!) Garden Plus 16 Your Old Grill liseman the cheap! by herbs and dls02010 by Cool-fool Gardening Tips Into A Planter by flowers by lucianoabcd by klmogle iPodGuy AngryRedhead http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

when you get bored of playing with your remote control car after three days.instructables. http://www. code. and additional hardware to do some really amazing things. Well. You can now impress your family. In this Instructable I will go over the bare minimum you need to get started. make new friends. maybe not all of it. but at least a sizable amount. Subscribing to me = fun and excitement! Intro: RC Car to Robot Converting an RC car into a robot is a quick and easy way to get started with robotics. At the very least. and scare your pets with the power of robot magic. I am also the author of the books 'Simple Bots. 2012 Author:randofo Randy Sarafan loves you! I am the Technology Editor here at Instructables.RC Car to Robot by randofo on February 9.' and '62 Projects to Make with a Dead Computer'.com/id/RadioShack-presents-18-More-Awesome-Projects/ . you can turn it into a robot that will do all of your evil bidding. Think of it as a template for making a basic robot that can be expanded with sensors.

Step 1: Go Get Stuff You will need: (x1) R/C Monster Truck (Radioshack #60-646 ) (x1) Arduino Uno REV 3 (Radioshack #276-128 ) (x1) Arduino Motor Shield (Radioshack #276-131 ) (x1) Parallax Ping Sensor (Radioshack #276-136 ) (x1) Heavy-Duty 9V Snap Connectors (Radioshack # 270-324 ) (x1) Size M Coaxial DC Power Plug (Radioshack # 274-1569 ) (x1) Multipurpose PC Board with 417 Holes (Radioshack #276-150 ) (x1) 90-Ft.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. UL-Recognized Hookup Wire (Radioshack # 278-1221 ) (x1) Enercell® Alkaline 9 Volt Battery (Radioshack #25-853 ) (x1) 6" Heat-Shrink Tubing (Radioshack #278-1627 ) (x1) 5-1/2" Zip Ties (Radioshack # 278-1631 ) Step 2: Remove the Cover Flip the RC car over and remove the two screws holding the cover in place. http://www. Put these screws aside somewhere safe for later reassembly.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. http://www.Step 3: Unplug Unplug the motors from the connectors on the main board. cut the motor wires loose. If your remote control car is hard wired to the motherboard.

Step 4: Remove the Controller Remove the screws holding the controller board to the RC car and pull it free.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.

http://www.Step 5: Power Remove the cover from the M-type power plug and slide it onto the wires for the 9V connector (such that you can twist it back on after you solder the wires). Twist the cover back onto the plug. Solder the red wire to the middle connection tab.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Solder the black wire to the outer connection tab.

Step 6: Mark and Drill Place the Arduino atop the bed of the cargo RC car.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. Drill through each of these marks with a 1/8" drill bit. http://www. Make marks where the mounting holes are in such a way that it will later be easy to zip tie the Arduino down.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www. Make two marks on each side of the battery and drill them with a 1/8" drill bit.Step 7: More Marking and Drilling Place the 9V battery on the underside of the cargo bed.

Step 9: Shield Plug the Arduino Motor Shield into the sockets of the Arduino Uno.Step 8: Attach Plug the 9V clip to the 9V battery and zip tie it to the underside of the RC car.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.instructables. Trim away the excess bits of zip tie.

http://www.instructables.Step 10: Attach Now that the Motor Shield is attached zip tie the Arduino to the back side of the RC Car.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

http://www. Once made skinnier.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . shorten it such that it is just long enough to stick out the front.Step 11: Trim Using scissors or a paper cutter. trim the PC Board until is skinny enough that it slides neatly between the RC car's front grill.

instructables. and 8" of black wire to the Ground pin. 8" of red wire to the 5V pin. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Connect 8" of green wire to the Signal pin.Step 12: Solder Solder the PING sensor centered on the front of the trimmed PC Board.

adjust it until it is. Step 14: Drill and Fasten Drill an 1/8" hole on each side of the circuit board and firmly secure it to the body of the RC car with zip ties. If it is not level.instructables. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 13: Insert Slide the circuit board into the front grill of the car and make sure the sensor is sitting level.

slide heat shrink tubing over each of the four exposed solder connections and shrink them into place with a heat gun. Repeat this process with the second motor. Finally.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.Step 15: Extend Trim away the connector for one of the motors. Connect an 8" red wire to one and an 8" black wire to the other.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Step 17: Put it together Put the body back onto the frame of the RC car and screw it back into place with the screws you set aside earlier. You may even want to consider zip tying the sets together into a single bundle for the length of wire that passes over the body of the RC car.instructables.Step 16: Clean Up Zip tie each set of wires together to keep everything tidy.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.

//Turns brake on for turn motor digitalWrite(8. OUTPUT). LOW). //drive motor -. digitalWrite(pingPin. and an Arduino motor shield for motor control. //brake (disable) the drive motor pinMode(8. LOW). //brake (disable) the turn motor //Turns brake off for drive motor digitalWrite(9.com/id/RadioShack-presents-18-More-Awesome-Projects/ . 200). digitalWrite(pingPin. } void loop() { // establish variables for duration of the ping. OUTPUT).Step 18: Program Program the car with the following Arduino code: /* RC Car to Robot Conversion by Randy Sarafan Used to convert an RC car into a robot that uses a PING sensor to avoid obstacles. inches. HIGH). // //if objects are less than 12 inches away http://www. HIGH). digitalWrite(pingPin. HIGH). // convert the time into a distance inches = microsecondsToInches(duration). HIGH). It's the pin number // of the sensor's output: const int pingPin = 7. // The same pin is used to read the signal from the PING))): a HIGH // pulse whose duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. INPUT). For more information see: http://www. OUTPUT). // The PING))) is triggered by a HIGH pulse of 2 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: pinMode(pingPin. //Sets initial direction of drive motor digitalWrite(12. //Sets initial speed of drive motor analogWrite(3. LOW). duration = pulseIn(pingPin.HIGH = left and LOW = right //establish motor brake pins pinMode(9.instructables. void setup() { //establish motor direction toggle pins pinMode(12. pinMode(pingPin. cm.instructables. // and the distance result in inches and centimeters: long duration. //turn motor -. OUTPUT). delayMicroseconds(5). OUTPUT).HIGH = forwards and LOW = backwards pinMode(13.com/id/RC-Car-to-Robot/ Built atop Ping example code by Tom Igoe */ // this constant won't change. delayMicroseconds(2).

LOW). HIGH). } long microsecondsToInches(long microseconds) { // According to Parallax's datasheet for the PING))). //activate the drive motor analogWrite(3.pdf return microseconds / 74 / 2. // See: http://www. //set drive motor backwards direction digitalWrite(12. This gives the distance travelled by the ping. // //stopping // //brake both motors digitalWrite(8. so we divide by 2 to get the distance of the obstacle. //activate drive motor analogWrite(3. sound travels at 1130 feet per // second). //turn off brake of drive motor digitalWrite(9. } // //when nothing is within 12" //the robot simply drives forwards // else{ // //Setting drive motor // //set drive motor forward direction digitalWrite(12. HIGH). HIGH). 200). 200). http://www. outbound // and return. //set turn motor direction digitalWrite(13.com/dl/docs/prod/acc/28015-PING-v1. } For help getting started with the Arduino. check out the Intro to Arduino Instructable. } delay(100). // //setting drive motor // //turn off brake of drive motor digitalWrite(9. //backup for 2 seconds delay(2000). there are // 73. 255).parallax. HIGH). LOW).instructables. // //setting turn motor // //turn off brake for turn motor digitalWrite(8. LOW).3.com/id/RadioShack-presents-18-More-Awesome-Projects/ .746 microseconds per inch (i. HIGH). LOW).e. //the robot reverses and turns to the right //for 2 seconds // if (inches < 12){ //brake drive motor and pause 1/10 second digitalWrite(9. delay(100). digitalWrite(9. //activate turn motor analogWrite(11.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . The rear drive motor: Connect the red wire from the rear motor to the + port on channel A of the motor shield.pde (3 KB) [NOTE: When saving.File Downloads RC_Car_Robot_Conversion.tmp as the file ext.port on channel A of the motor shield.pde'] Step 19: Wire it up The ping sensor: Connect the green wire from the Ping sensor to digital pin 7.instructables. if you see . Connect the black wire from the Ping sensor to ground. Connect the black wire from the rear motor to . http://www. Connect the red wire to the power input screw socket on the motor shield. rename it to 'RC_Car_Robot_Conversion. The motor shield: Connect the 5V socket to the power input power screw socket on the motor shield (in addition to the Ping power wire already connected). Connect the ground socket on the shield to the input ground screw socket on the motor shield. The front turn motor: Connect the red wire from the front motor to+ port on channel B of the motor shield. Connect the black wire from the front motor to .port on channel B of the motor shield.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. before you plug in the USB cable. http://www. Note: If you decide that you want to reprogram your Arduino. disconnect both the 9V battery and the power connection between the Arduino power socket and the motor shield.Step 20: Go! Insert the 9V plug into the power socket on the Arduino to power up your robot.

Related Instructables myRobot .DIY Robot (video) by RC truck robot Ard-e: The robot How to convert robot movement DIY Mod an Make a scary aneophyte conversion by with an Arduino Robot 3: (almost) any 27 distance control Omnibot 80's scarab robot by OracsRevenge as a brain by Autonomous or 49 MHz RC by buenos Robot with djsures imadami Sensor Platform Car into a Voice. 'Jimbo' by Robotic car by Servos.instructables. Camera. jamesthequack dflam Bluetooth by djsures http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Arduino Waveform Generator by amandaghassaei on April 16. Parts List: (4x) Mini SPST 1. I've also included (optional) indicator LEDs that let you know which type of wave is currently being sent to the output.01µf 50V Ceramic Disc Capacitor Radioshack # 55047551 (1x) 4. I often use them to test the frequency response of electronics components like op amp and sensors.com Currently working for instructables! Intro: Arduino Waveform Generator Waveform generators (also called function generators) are useful for testing and debugging circuits.instructables. It outputs four waveshapes: sine.7K Ohm 1/4-Watt Carbon Film Resistor Radioshack #271-1330 (1x) 8 Pin Socket Radioshack #276-1995 (1x) LM386 Low Voltage Audio Power Amplifier Radioshack #276-1731 (2x) 220µF 35V 20% Radial-lead Electrolytic Capacitor (or anything between 200 and 300 uF) Radioshack #272-1029 (1x) Arduino Uno REV 3 Radioshack #276-128 (1x) Arduino Proto Shield Radioshack #276-140 (4x) White Super-bright LED Indicator Radioshack #55050633 (4x) 740 ohm 1/4W 5% Carbon Film Resistor (1 package) Radioshack 271-1317 (1x) 300Ohm resistor Additional Materials: Heat Shrink Radioshack #278-1611 22 Gauge Wire Radioshack #278-1224 Solder Radioshack #64-013 Drill Hot Glue Glue Black diffusor material (tissue paper. pulse. plastic. triangle. etc) http://www. This waveform generator is powered by an Arduino.5-Amp Momentary Pushbutton Switch (2 packages) Radioshack #275-1556 (8x) 10K Ohm 1/4-Watt Carbon Film Resistor (2 packages) Radioshack #271-1335 (9x) 20K Ohm 1/4-Watt Carbon Film Resistor (2 packages) (1x) 50K-Ohm Linear-Taper Potentiometer Radioshack #271-1716 (1x) 10K-Omh Audio-Taper Potentiometer Radioshack #271-1721 (1x) 10K-Ohm Audio Control Potentiometer with SPST Switch Radioshack #271-215 (1x) 1/8" Stereo In-Line Audio Jack Radioshack #274-274 (1x) 10. 2012 Author:amandaghassaei amandaghassaei.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and saw. The frequency. each waveshape ranges in frequency from 1Hz-50kHz. and overall amplitude (gain) of the waveforms is controlled by three potentiometers. pulse width.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . Finally.instructables. cut off the six pin socket. http://www. Next. Start by trimming the pins down with a pair of wire cutters. but I like to trim them down a little bit first so they do not take up so much room in the project enclosure. cut the sockets from the top of the board.Step 1: Prepare Arduino Proto Shield The Arduino Proto Shields are a convenient way to attach circuits to an Arduino.

you may choose to just drill four 5mm holes for these LEDs in the front panel of the enclosure. Also include a rectangular (11mm tall.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and I've included corel draw and adobe illustrator 2D files as well as the STL. place one LED under each momentary switch. and PWM pots (3x) 7mm holes for four push buttons. and DWG files from this process below. http://www. Figure 4 shows the holes that should be drilled on the front panel: (3x) 7mm holes for gain. Autodesk 123D Make. tri. you can use my 2D files a guide and drill the necessary holes in a project enclosure of some kind.instructables. saw. If you do not have access to a laser cutter. 12mm wide) cutout somewhere on the side of the enclosure for the arduino's usb port. so I had to glue all the pieces (except the bottom) together with wood glue. freq. I will attach the bottom panel on later in this instructable.sin. I made my project enclosure out of wood. and Corel Draw. I designed the enclosure using AutoCAD. and pulse (1x) 10mm hole for audio out I cut out shapes of all four waveforms in the front of the enclosure so that I could backlight them with indicator LEDs.Step 2: Enclosure I decided to laser cut a custom enclosure for my project.

tmp as the file ext.dwg'] http://www.stl'] function generator enclosure.ai (32 KB) [NOTE: When saving. rename it to 'function generator enclosure.tmp as the file ext. if you see . if you see . rename it to 'function generator enclosure. if you see .cdr (23 KB) [NOTE: When saving.ai'] function generator enclosure.instructables. if you see .File Downloads enclosure.tmp as the file ext. rename it to 'enclosure.com/id/RadioShack-presents-18-More-Awesome-Projects/ .cdr'] enclosure.tmp as the file ext.dwg (228 KB) [NOTE: When saving. rename it to 'enclosure.stl (1 KB) [NOTE: When saving.

It's a good idea to cover these connections with a bit of heat shrink to prevent short circuits (fig 2). Solder a black wire the the second lead of the push button.instructables. As shown in the second image. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 3: Solder Button Leads Solder a 10kOhm resistor to one lead of each of the four push buttons. solder a green wire to the junction between the button and the resistor and a red wire to the other end of the resistor.

http://www.Step 4: Install Audio Jack Unscrew the plastic casing from the audio jack. I used hot glue to prevent short circuiting the jack and to give the soldering joints some extra support. Solder a red wire to the two stereo out pins and solder a black wire to the ground pin (fig 3). mount the audio jack in the enclosure with super glue.instructables. Finally.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . snap the black button tops back on. Once dried. Step 6: R2R DAC on Arduino Shield: Part 1 Solder eight 20kOhm resistors to the arduino protoshield. Secure with hot glue.instructables.Step 5: Install Buttons Snap the top of the button off and fit them into the wooden enclosure. One end of each resistor should connect to digital pins 0-7.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 8: R2R DAC on Arduino Shield: Part 3 Solder a 10kOhm resistor to the protoshield so that one end is connected to the 10kOhm resistor attached to digital pin 0 and the other end is connected to a jumper wire to ground. http://www.Step 7: R2R DAC on Arduino Shield: Part 1 Solder 7 10kOhm resistors to the protoboard so that they bridge the leads of the 8 20kPhm resistors you have just soldered.instructables.

Solder an 8 pin socket to the protoboard as shown in the image.28*300*C) C = 1. then the highest frequency I can produce is 50kHz.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 10: Low Pass Filter Use a resistor and capacitor in series to create a low pass filter. Here's how I calculated the value of the components in my low pass filter: corner frequency = 1/(2*pi*R*C) According to Nyquist's Theorum. this way you won't risk burning the IC with your soldering iron and you can easily replace the IC if it breaks. Connecting a low pass filter to the output from the dac will smooth out the steps in the wave.Step 9: IC socket It's a good idea to use sockets for your ICs. if I use a 300Ohm resistor and I want a corner frequency of 50kHz: 50000 = 1/(6. Low pass filters let low frequencies pass through and silence (attenuate) high frequencies. signals cannot contain frequencies higher than half their sampling rate.instructables.06*10^-8 F http://www. If I used a sampling rate of 100kHz.

not 10kOhm (ignore the coloring) Step 11: Amplifier: Part 1 Connect the positive lead of the 220uF capacitor to the junction between the resistor and capacitor of the low pass filter.01uF Connect one end of the the 300Ohm resistor to the 10kOhm resistor connected to digital pin 7. made a mistake here.7kOhm resistor bridges pins 3 and 4 of the IC socket. Connect the capacitor to the other end of the 300Ohm resistor.this should be a 300ohm resistor.round this to: C = 0. http://www. The other side of the cap should connect to ground.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1. A 4.instructables. The other end of the 220uF capacitor connects to a 20kOhm resistor that is connected to pin 3 of the IC socket.

Step 13: Amplifier: Part 3 Connect the positive lead of a second 200uF capacitor to pin 5 of the IC socket. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 12: Amplifier: Part 2 Connect ground to pin 4 of the IC socket.instructables. The other end of the cap will be connected to the gain pot in a later step.

Step 14: Amplifier: Part 4 Connect pin 6 of the IC socket to Vin.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and snap the IC into the socket. http://www. pin 2 to ground.

The middle is audio out.Step 15: Wire Gain Pot Volume or gain of the audio signal will be controlled with the 10k audio taper pot with switch.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Also connect a wire to the bottom and left leads on the back of the pot (figure 2). Connect the audio out from the amplifier and ground to either side of the potentiometer as indicated in the picture. This is the switch that will be used to connect to power in the next step. it will be hooked up directly to the audio jack.instructables. http://www.

Connect one lead from the gain pot switch to the red wire from the battery clip and connect the other gain pot lead to Vin on the Arduino Shield.instructables.Step 16: Connect to Battery Connect the black wire from the battery clip to ground on the Arduino Shield. Leave the battery disconnected for now. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

instructables. Step 18: Wire Buttons Connect all read leads from the button to 5V and all the black wires to ground on the arduino shield (fig 1).Step 17: Connect Output to Headphone Jack Connect the output from the amplifier (the negative lead of the cap connected to the IC at pin 5) to the red wire we attached to the audio jack in an earlier step. Connect the black wire from the audio jack to ground on the Arduino Shield. Connect the green wires to analog in 0-3 in the following order: analog 0 = pulse analog 1 = triangle analog 2 = saw analog 3 = sine http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

and green wire to the 10kOhm and 50kOhm potentiometers as shown in the images.Step 19: Wire Frequency and PWM Pots Connect a red.instructables. Connect the center green wires to analog pins 4 (PWM) and 5 (frequency). http://www. black. Connect the red lead to 5V and the black leads to ground on the arduino shield.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

com/id/RadioShack-presents-18-More-Awesome-Projects/ . and secure with nut. this will allow them to sit flush against the wood. Image Notes 1.instructables. place pot through hole in enclosure. Remove washer and nut from each of the pots. remove side pin http://www. Install all three pots in the enclosure.Step 20: Install Pots Remove the side tab on all of the pots before installing in the enclosure.

Step 22: Wire LEDs: Part 2 Solder the black leads from all four LEDs to ground on the arduino shield. Solder the red leads to digital pins 8-11. http://www. Cover these connections with shrink wrap to prevent short circuiting. Solder a black wire to the other end of the resisotr and a red wire to the anode of the LED.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 21: Wire LEDs: Part 1 Attach a 470Ohm resistor to the cathode of each of the four LEDs.instructables.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . I used a piece of a black plastic garbage bag. Here is a table for reference: digital 8 = pulse digital 9 = triangle digital 10 = saw digital 11 = sine http://www. Step 24: Glue LEDs Glue the LEDs in the enclosure so that they are each pointed towards one of the cutout symbols on the front panel.Step 23: Black Diffuser Glue a light diffusing material behind the wave cutouts in the front panel.instructables.

} wave = sawByte. } sawInc = 255/period.com/id/RadioShack-presents-18-More-Awesome-Projects/ . the piece of code encapsulated in the ISR(TIMER1_COMPA_vect){} as short as possible. } else{ triByte += triInc. I used several work around to get by this: For triangle and saw I created the variables sawByte. } wave = triByte. I had to keep the interrupt routine. break. The code uses a timer interrupt at a frequency of 100kHz to send new data out to the DAC. if (triInc==0){ triInc = 1. } then all the needed to be done in the interrupt routine was some simple math: case 1://triangle if((period-t) > t). case 2://saw if (t=0){ sawByte=0. } if (triByte>255){ triByte = 255. I wrote a simple python script which outputs 20000 values of 127+127sin(x) for one complete cycle: http://www. } else if (triByte<0){ triByte = 0. The rest of the code monitors the state of the buttons and knobs and adjusts variables accordingly. triByte. if (t == 0){ triByte = 0. and triInc. } else{ sawByte+=sawInc.instructables. Every time the frequency changed I calculated the amount that the triangle and saw function would have to increment at a sampling rate of 100kHz: triInc = 511/period. sawInc. if (sawInc==0){ sawInc = 1. break. Time intensive operations like mathematical operations with floats and using the sin() function take too much time to complete. } } else{ triByte -= triInc. Since the interrupts occur at such a high frequency. For the sine function.Step 25: Firmware Upload the code at the bottom of this step onto the Arduino.

ino.pi*x*0.zip'] Step 26: Last Few Connections Plug the Arduino into your shield. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Make sure that the Arduino's usb port is accessible from the outside of the enclosure.zip (3 KB) [NOTE: When saving.00005)).sin(2*math.ino. rename it to 'function_generator. Secure these items inside the enclosure. I stored this array in the Arduino's memory called sine20000[] and recalled the values I needed to send to the DAC. File Downloads function_generator.import math for x in range(0. Upon startup you should see the sine wave LED light up.").)+str(". This is much faster than calculating the values individually. Connect a 9V battery to the battery clip. if you see .instructables. 20000): print str(int(127+127*math.tmp as the file ext.

http://www.Step 27: Screw Back Panel Drill four holes in the back panel and secure with screws.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 28: Add Knobs Screw knobs on the three potentiometers.instructables.

instructables. triangle. The saw and triangle waves only go down to about 100Hz.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and saw waves start to become somewhat unrecognizable at about 25kHz (they are only comprised of 4 samples per cycle.100kHz/25kHz). http://www. Test out each of the waveforms and adjust the frequency and gain to make sure they are working properly. since the Arduino only has enough memory to store about 20 thousand samples. the sine. Since the sampling rate is 100kHz. Plug an eighth inch jack into the output and hook up the function generator to an oscilloscope . You will notice that the pulse wave is the only wave which truly ranges from 1Hz to 50kHz. The sine wave reaches all the way to 1 HZ but the resolution stays the same for anything under 5Hz. this is because the values of triInc and sawInc get so low that they are rounded to zero below this frequency. Switch the output to pulse and check if the pulse width modulation knob works (figs 4-6).Step 29: Test Turn up the gain knob to turn on the function generator.

for Josehf Murchison Arduino Timer INTERFACE How To by Waveform Waveform ~20$ by Interrupts by FACILITATES amandaghassaei Generator by DC Generator by legionlabs amandaghassaei wandererwolf RESTORATION wandererwolf by ajoyraman http://www. by CARD SCOPE Oscilloscope Wave / Arbitrary generator.instructables. tnaqvi Xmega Sine USB/Serial waveform Generator.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Related Instructables Modified Sine MiniLab 1008 Easy Atmel Wave Signal and LabVIEW by Atmel Xmega Arbitrary PC SOUND.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .5A power adapters (M-type plugs) (Radioshack #273-356 ) (x1) Power strip (Radioshack #61-056 ) (x1) 7 socket USB hub (Radioshack #55053562 ) (x6) 6' USB A to B cable (Radioshack #55010623 ) (x1) 4' x 8' x 1/4" plywood sheet (x4) 1/2" pipe mounting flange (x1) 24" x 1/2" threaded pipe (x1) 18" x 1/2" threaded pipe (x8) 1/2" pipe L-bracket http://www.Arduino-Controlled Robotic Drum by randofo on July 30. The reason to build a robotic drum is because it is plain super-awesome. I am sure there are other more elegant ways to interface with the motors. It can even play things a real human drummer could never do. I intend to use mine for rocking out. The current plan is to program it with different drum beats and play guitar along with it. Step 1: Go get stuff You will need: (x1) Drum set (Amazon ) (x12) Drum sticks (Amazon ) (x12) Car door lock actuator motor (Amazon ) (x6) Arduino Uno (Radioshack #276-128 ) (x6) Arduino Motor Shield (Radioshack #276-131 ) (x1) 7" x 5" x 3" project enclosure (Radioshack #270-1807 ) (x1) European-style terminal strip (Radioshack #274-680 ) (x2) 24' spool 18 AWG speaker wire (Radioshack #42-2456 ) (x3) Panel mount M-type power socket (Radioshack #274-1563 ) (x1) 1/4" mono jack (Radioshack #274-252 ) (x1) 1/4" mono plug (Radioshack #274-1536 ) (x1) 4" zip tie (Radioshack #278-1632 ) (x1) Stranded 22 AWG red and black wire spools (Radioshack #278-1224 ) (x1) Assorted shrink tube (Radioshack #278-1611 ) (x3) 9V 1. Even as I built it. I received a lot of snarky comments about how I was making a strange annoying noise maker. I am also the author of the books 'Simple Bots. Subscribing to me = fun and excitement! Intro: Arduino-Controlled Robotic Drum For years I have been telling anyone who listens that I was going to build a robotic drum. I quickly silenced the naysayers. I was finally able to convey my vision and explain why someone would ever want to build a robotic drum. Most people kind of shrugged indifferently.instructables.' and '62 Projects to Make with a Dead Computer'. most people kind of glanced over at it and conveyed doubtfulness. 2012 Author:randofo Randy Sarafan loves you! I am the Technology Editor here at Instructables. This robotic drum blew everyone away. It seemed like no one but myself was convinced of just how awesome it was going to be. You can slow down and speed up any drum beat with precision and ease. but this is by far the easiest. It keeps a beat like clockwork. I decided to use linear actuators (car door lock motors to be exact). and Arduinos with motor controller shields simply for ease of use and duplication. When I finally go it set up for the trial run.

rename it to 'DrumBracket2. http://www.eps (342 KB) [NOTE: When saving. rename it to 'DrumBracketKick2.tmp as the file ext.2" nuts and bolts (x18) 1/4" (1/8" i.) spacers You will also need to download the attached files and laser cut (or cut the old fashioned way) the following: (x16) Drum brackets (x6) Cymbal brackets (x4) Cymbal bracket circle spacers (x2) Kick drum brackets File Downloads DrumBracket2. rename it to 'DrumBracketCymbal1.eps'] DrumBracketCymbal1. if you see . if you see .d.1/2" wood screws (x20) 1/4 x 5" bolts (x4) 1/4 x 2" bolts (x1) Box of 1/4 nuts (x22) 6-32 x 2" nuts and bolts (x4) 6-32 x 1" nuts and bolts (x11) 1-1/2" binding posts (x20) 1-1/2" (1/4" i.d. Fasten it through the center mounting holes using 6-32 nuts and bolts.eps (1 MB) [NOTE: When saving.) spacers (x18) 4-40 x 1-1.eps (1 MB) [NOTE: When saving.com/id/RadioShack-presents-18-More-Awesome-Projects/ .eps'] Step 2: Attach the motor Take two of the pieces of the standard drum bracket (without Arduino mounting holes) and sandwich a motor in-between.eps'] DrumBracketKick2.(x2) 1/2" pipe T-bracket (x2) 1" threaded pipe (x4) 2" threaded pipe (x4) 2-1/2" threaded pipe (x2) 3" threaded pipe (x2) Cymbal stands (x3) 3/4" x 10' 22 gauge steel hanger strap (x16) 8 .tmp as the file ext.tmp as the file ext.instructables. if you see .

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . Step 4: Motor pair Pass a 5" x 1/4 bolt through on of the corner mounting holes in the motor bracket "sandwich" that is prepped for the Arduino.Step 3: Make another Pass 4-40 bolts through the Arduino mounting holes on one of the drum brackets and loosely hold them in place with bolts.instructables. http://www. Fasten everything securely in place with another nut. Slide the other motor bracket "sandwich" onto the bolt. Thread a nut all the way down one of the bolts to hold it in place. and then repeat for all of the other bolts Slide a spacer over each of the bolts and then thread more nuts on to hold them all in place. Once the bolts are passed through. Repeat for all of the other holes. make another motor bracket "sandwich" like you did in the last step.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

to leave an identical pair of holes in each stick Repeat this process 5 more times. Make a mark at 5-1/8" and 7-1/4".instructables. to make 6 sets of drilled drum sticks. http://www.Step 5: Drill a hole Tape two drumsticks together and then fasten them securely into a vise in preparation for drilling.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Drill down through all of these marks with a 3/16" drill bit.

http://www. Repeat this process for the other motor. Pass a binding post from the outside of the assembly through the corner pivot hole. Zip tie the drum sticks to the motor assembly using the other drilled hole. and then through the inner pivot hole.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 6: Attach drum sticks Grab the complete drum stick assembly. Fasten the binding post shut.instructables. through the hole in the drumstick closer to the tip.

instructables.http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Step 7: Build more
After you build your first complete drum stick assembly, build three more.

Step 8: Glue and clamp
The motor bracket "sandwich" assembly for the hi hat cymbals requires and extra piece of wood attached on each side of the outside of the assembly.

To attach this wood piece, simply lay down a little bit of wood glue, align the pre-drilled 1/8" pilot holes, and then once aligned, clamp them in place.

Don't forget to make certain that one of the pieces you are gluing the wood piece to has holes for mounting the Arduino.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 9: Motor brackets
Take your brackets and make two more motor "sandwiches," such that when they are ultimately assembled, the pieces with the extra wood piece glued on will be facing
outwards.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 10: Assemble
Put together the motor assembly like previous motor assemblies, will paying special attention that the pieces with the extra wood piece glued on are facing outwards.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 11: Build the mount
Start with a T-bracket and thread a 3" section of threaded pipe on each end.

Connect L-brackets to each end of the respective threaded pipes.

Thread a 2" section of threaded pipe onto the end of each L-bracket.

Again, put L-brackets on the end of each respective threaded pipe.

Thread a 1" section of threaded pipe onto the end of each L-bracket.

Finally, attach flanges to the end of each threaded pipe.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 12: Attach
Slide the flange over the extra bit of wood on the drumstick assembly until they are aligned.

Rotate the flanges as necessary so that the pilot holes are aligned with the flange's mounting holes.

Fasten the drumstick assembly to the mounting bracket place with wood screws.

Step 13: 18" pipe
Attach the 18" threaded pipe to the base of the T-bracket.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Again. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 14: Connect drum sticks Using the binding posts. zip tie the drum sticks to the linear motor assembly. mount the drum sticks like you did for the previous drum stick assemblies.instructables.

" Simply lay down a little bit of wood glue.Step 15: Clamp and glue again Again you will need to attach an extra wood piece to the wooden bracket sfor the cymbal assembly mount. align the pre-drilled 1/8" pilot holes.com/id/RadioShack-presents-18-More-Awesome-Projects/ . the extra piece of wood will be on the outside when you make your motor "sandwich. you only have two brackets and will need to glue the wood to each. and then once aligned. because the cymbal only uses one stick. clamp them in place.instructables. Make sure that when you do this. http://www. However.

" Assemble it accordingly. Don't forget to install the Arduino mounting screws as well. with the extra bits of wood facing out.Step 16: Assemble The cymbal drumstick assembly only has one motor "sandwich.instructables. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

com/id/RadioShack-presents-18-More-Awesome-Projects/ . Finally. put L-brackets on the end of each respective threaded pipe. Thread a 2" section of threaded pipe onto the end of each L-bracket. Connect L-brackets to each end of the respective threaded pipes. attach flanges to the end of each threaded pipe.instructables. http://www. Thread a 2-1/2" section of threaded pipe onto the end of each L-bracket. Again.Step 17: Build another mount Start with a T-bracket and thread a 2-1/2" section of threaded pipe on each end.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

Step 18: Fasten Connect the drum stick assembly to the pipe mount exactly like you did for the hi hat assembly. http://www. Step 19: 24" pipe Attach the 24" threaded pipe to the base of the T-bracket.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

This should result in 2 holes on each side of the pedal. drill 1/4" holes on both sides of the pedal.instructables. and then zip tie the drum sticks to the linear motor assembly.com/id/RadioShack-presents-18-More-Awesome-Projects/ . mount the drum sticks like you did for the previous drum stick assemblies. Remove the spring that is keeping tension on the pedal's rotational assembly. http://www. Step 21: Prepare the kick drum pedal Detach the foot pedal and chain from the kick drum pedal.Step 20: Connect the drum stick Once more. Using the mounting holes in the wooden bracket as a guide.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.http://www.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.http://www.

Step 22: Attach Attach the wooden brackets with 1/4 nuts and bolts to the kick drum pedal assembly using the holes that you have just drilled.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . using the pens as spacers in-between the two. Fasten each bolt firmly in place with a nut. Insert 5" x 1/4 bolts through the bracket's structural mounting holes.instructables.Step 23: Spacers Dissemble two pens so you are left only with the pen tube.

If the motor does not have red or black wires. and the other wire is connected to the barrel of the jack. Step 25: Socket Wire the 1/4" socket to the motor on the kick drum assembly such that the ground wire from the motor is connected to the tip. the green wire will be ground. Zip tie the motor shaft to the rotational pivot of the kick drum pedal.Step 24: Attach motor Line up the shaft of the linear motor assembly with the rotational pivot of the kick drum pedal assembly that the spring used to be attached to. http://www. In this case.instructables. Attach the motor to the wooden bracket using 6-32 nuts and bolts.com/id/RadioShack-presents-18-More-Awesome-Projects/ . designate one of the colors to be ground and the other to be power.

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

Step 26: Jack Take apart the 1/4" plug. http://www. Solder the marked edge of the speaker wire to the ground terminal.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Solder the unmarked edge to the tip terminal. Reassemble the plug when you are done.instructables. and go grab about 5' of speaker wire.

com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 27: Snare Attach one of the drumstick brackets to the snare drum by passing the steel hanger strap through the thin vertical mounting slots in the brackets and wrapping it around the drum.instructables. Fasten it tightly in place with 6-32 nuts. http://www. and bolts.

Step 30: Cymbal strikers Insert the rods from the cymbal striker assemblies into the extra cymbal stands. Step 29: Floor tom Attach a drum stick assembly to the floor tom like you did the other toms and the snare drum.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.instructables.Step 28: Toms Attach a drum stick assembly to the toms like you did the snare drum.

However. Alternately. Step 32: Plug in the Shields The motor shields need to be plugged into each of the respective Arduinos. cut the pin away entirely. which is rather high and runs the risk of spiking. This is done to prevent the Arduino from getting directly connected to the voltage input on the motor controller. before you go and do this.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 31: Kick drum Attach the motor-controlled kick drum pedal to the drum. http://www. if you don't want to preserve this functionality on the shield. bend the shields Vin pin so that it will not plug in to the Arduino.instructables.

OUTPUT). //ENABLE CH A digitalWrite(8.//stop interrupts //set timer2 interrupt every 128us TCCR2A = 0.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.HIGH = forwards and LOW = backwards??? //establish motor brake pins pinMode(9. For more information. int incomingByte = 0.instructables. //CH B -. //ENABLE CH B Serial. OUTPUT). Hi Hat Arduino: /* This is code for a robotic drum created by Randy Sarafan. OUTPUT).// set entire TCCR2A register to 0 http://www. OUTPUT). void setup() { //establish motor direction toggle pins pinMode(12. //CH A -. //brake (disable) CH B digitalWrite(9. LOW).Step 33: Program the Arduinos Upload each respective Arduino with the code below.HIGH = forwards and LOW = backwards??? pinMode(13. visit: http://www.com/id/Arduino-Controlled-Robotic-Drum/ This example code is in the public domain. int strikelegnth = 80. //brake (disable) CH A pinMode(8. */ int event = 0. cli().begin(57600). LOW).

// same for TCCR2B TCNT2 = 0. // Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11). 255). 255).com/id/RadioShack-presents-18-More-Awesome-Projects/ . HIGH). //Disengage the Brake for Channel A digitalWrite(13.5*8) . //Engage the Brake for Channel A digitalWrite(9. //Moves CH A //recoil time delay(40). } if (incomingByte == 130) { //start down digitalWrite(8. 255). HIGH). //stop digitalWrite(8. //Sets direction of CH A analogWrite(11. LOW). //Moves CH A //recoil time delay(40). LOW). LOW). HIGH). //Moves CH A //recoil time http://www. LOW). LOW). LOW). //Moves CH A //strike time delay(strikelegnth). //Engage the Brake for Channel A delay(10). HIGH). //Disengage the Brake for Channel A digitalWrite(13. HIGH). //go back digitalWrite(8. sei().8khz increments OCR2A = 255. 255). 255).//allow interrupts } void loop() { if(event == 1){ if (incomingByte == 129) { //start down digitalWrite(9. //Disengage the Brake for Channel A digitalWrite(13. //Moves CH A //strike time delay(strikelegnth). //Disengage the Brake for Channel A digitalWrite(12. //Moves CH A //strike time delay(strikelegnth). //Engage the Brake for Channel A delay(10). LOW). //Disengage the Brake for Channel A digitalWrite(12. } if (incomingByte == 144) { //start down digitalWrite(9. HIGH). //Disengage the Brake for Channel A digitalWrite(12. //Disengage the Brake for Channel A digitalWrite(12. //Engage the Brake for Channel A event = 0. //Sets direction of CH A analogWrite(3. //stop digitalWrite(9. LOW). //Sets direction of CH A analogWrite(11. //Sets direction of CH A analogWrite(3.// = (16*10^6) / (7812. //Moves CH A digitalWrite(8. 255).1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21). //Sets direction of CH A analogWrite(3. //stop digitalWrite(8. //Moves CH A digitalWrite(8. HIGH). HIGH). //Engage the Brake for Channel A event = 0. //go back digitalWrite(9. LOW). //go back digitalWrite(9. //Sets direction of CH A analogWrite(11. HIGH). //Sets direction of CH A analogWrite(11.instructables. //Engage the Brake for Channel A delay(10). TCCR2B = 0. //stop digitalWrite(9. // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A). HIGH). 255). 255). //Sets direction of CH A analogWrite(3. //Disengage the Brake for Channel A digitalWrite(13.//initialize counter value to 0 // set compare match register for 7. LOW). LOW). //stop digitalWrite(8. LOW).

//Disengage the Brake for Channel A digitalWrite(12.instructables. //brake (disable) CH A pinMode(8. OUTPUT). OUTPUT). HIGH). HIGH).available() > 8).begin(57600). //Engage the Brake for Channel A digitalWrite(9. } } } ISR(TIMER2_COMPA_vect) { do{ if (Serial. cli(). //go back digitalWrite(9. HIGH). int strikelegnth = 80.com/id/Arduino-Controlled-Robotic-Drum/ This example code is in the public domain. // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A). sei(). HIGH).// same for TCCR2B TCNT2 = 0. LOW). //stop digitalWrite(8. 255). LOW). //Moves CH A //strike time delay(strikelegnth). void setup() { //establish motor direction toggle pins pinMode(12. LOW).//initialize counter value to 0 // set compare match register for 7. LOW). //CH A -. //ENABLE CH B Serial. //brake (disable) CH B digitalWrite(9.available()){ incomingByte = Serial. //stop digitalWrite(9. // Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11). visit: http://www.HIGH = forwards and LOW = backwards??? //establish motor brake pins pinMode(9.HIGH = forwards and LOW = backwards??? pinMode(13. */ int event = 0.8khz increments OCR2A = 255. } Snare Arduino: /* This is code for a robotic drum created by Randy Sarafan.//allow interrupts } void loop() { if(event == 1){ if (incomingByte == 131) { //start down digitalWrite(9. //Moves CH A //recoil time http://www. For more information. //Sets direction of CH A analogWrite(3.1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21). //CH B -. LOW). //ENABLE CH A digitalWrite(8. //Engage the Brake for Channel A delay(10).// set entire TCCR2A register to 0 TCCR2B = 0.5*8) . //Sets direction of CH A analogWrite(3. OUTPUT).read(). //Disengage the Brake for Channel A digitalWrite(12. }//end if serial available }//end do while (Serial.// = (16*10^6) / (7812.com/id/RadioShack-presents-18-More-Awesome-Projects/ .//stop interrupts //set timer2 interrupt every 128us TCCR2A = 0.instructables. delay(40). event = 1. int incomingByte = 0. 255). OUTPUT). //Engage the Brake for Channel A event = 0.

LOW). //Moves CH A digitalWrite(8. HIGH). } if (incomingByte == 160) { //start down digitalWrite(9. //stop digitalWrite(8. //Sets direction of CH A analogWrite(11. //stop digitalWrite(9. //Engage the Brake for Channel A event = 0. 255). LOW). */ http://www. } Cymbal. HIGH). HIGH). LOW). For more information. LOW). //Moves CH A //recoil time delay(40). //Disengage the Brake for Channel A digitalWrite(12. HIGH). //Moves CH A //recoil time delay(40). //Engage the Brake for Channel A event = 0. //Engage the Brake for Channel A event = 0. //Moves CH A //strike time delay(strikelegnth).available() > 8). 255). LOW).instructables. LOW). LOW). } } } ISR(TIMER2_COMPA_vect) { do{ if (Serial. //Sets direction of CH A analogWrite(11. HIGH). event = 1. //Disengage the Brake for Channel A digitalWrite(12. 255). 255). } if (incomingByte == 132) { //start down digitalWrite(8.read(). HIGH). //Disengage the Brake for Channel A digitalWrite(13. HIGH). //Sets direction of CH A analogWrite(3. //stop digitalWrite(8. //Engage the Brake for Channel A digitalWrite(9. delay(40). visit: http://www.instructables. LOW). //stop digitalWrite(8.com/id/RadioShack-presents-18-More-Awesome-Projects/ . 255). //Engage the Brake for Channel A delay(10). HIGH). //stop digitalWrite(8. }//end if serial available }//end do while (Serial.com/id/Arduino-Controlled-Robotic-Drum/ This example code is in the public domain. //Moves CH A digitalWrite(8. //Disengage the Brake for Channel A digitalWrite(13. //Moves CH A //strike time delay(strikelegnth). //Sets direction of CH A analogWrite(3. HIGH). //Engage the Brake for Channel A digitalWrite(9. //Sets direction of CH A analogWrite(11. //go back digitalWrite(8. and Kick Drum Arduino: /* This is code for a robotic drum created by Randy Sarafan. //Engage the Brake for Channel A delay(10). //go back digitalWrite(9. //Disengage the Brake for Channel A digitalWrite(13. //Sets direction of CH A analogWrite(11. HIGH). //Disengage the Brake for Channel A digitalWrite(13.available()){ incomingByte = Serial. 255). LOW).

LOW). //Disengage the Brake for Channel A digitalWrite(12. 255). LOW). int strikelegnth = 80.//allow interrupts } void loop() { if(event == 1){ if (incomingByte == 133) { //start down digitalWrite(9. //Disengage the Brake for Channel A digitalWrite(13.//initialize counter value to 0 // set compare match register for 7. } if (incomingByte == 134) { //start down digitalWrite(8. //CH A -. //Moves CH A //recoil time delay(40). //stop digitalWrite(9. HIGH). //Sets direction of CH A analogWrite(3. LOW). void setup() { //establish motor direction toggle pins pinMode(12. //Disengage the Brake for Channel A digitalWrite(12. //Engage the Brake for Channel A delay(10).//stop interrupts //set timer2 interrupt every 128us TCCR2A = 0.5*8) .1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21). //Engage the Brake for Channel A event = 0. HIGH).// same for TCCR2B TCNT2 = 0.begin(57600). OUTPUT). //stop digitalWrite(8. } if (incomingByte == 176) { http://www. //ENABLE CH A digitalWrite(8.// = (16*10^6) / (7812.HIGH = forwards and LOW = backwards??? pinMode(13. //Sets direction of CH A analogWrite(3.// set entire TCCR2A register to 0 TCCR2B = 0.HIGH = forwards and LOW = backwards??? //establish motor brake pins pinMode(9. OUTPUT). //Sets direction of CH A analogWrite(11. LOW). int incomingByte = 0. //stop digitalWrite(9. //Moves CH A //recoil time delay(40). LOW). HIGH). // Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11). OUTPUT). //go back digitalWrite(8. cli(). //CH B -. // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A).instructables. //Engage the Brake for Channel A event = 0.com/id/RadioShack-presents-18-More-Awesome-Projects/ . LOW). LOW). LOW). //Disengage the Brake for Channel A digitalWrite(13. 255). //stop digitalWrite(8.8khz increments OCR2A = 255. HIGH). HIGH). 255). //Engage the Brake for Channel A delay(10). //Sets direction of CH A analogWrite(11. 255). //go back digitalWrite(9. //Moves CH A //strike time delay(strikelegnth). //brake (disable) CH B digitalWrite(9. sei(). //Moves CH A //strike time delay(strikelegnth). //ENABLE CH B Serial. //brake (disable) CH A pinMode(8. HIGH). OUTPUT).int event = 0.

//Disengage the Brake for Channel A digitalWrite(12. HIGH). int strikelegnth = 80.// same for TCCR2B TCNT2 = 0. //stop digitalWrite(8. //brake (disable) CH B digitalWrite(9. event = 1.instructables. LOW). visit: http://www. 255). //CH A -. LOW). //Sets direction of CH A analogWrite(3. LOW).5*8) . //Engage the Brake for Channel A digitalWrite(9.//stop interrupts //set timer2 interrupt every 128us TCCR2A = 0.//initialize counter value to 0 // set compare match register for 7.available() > 8). }//end if serial available }//end do while (Serial. HIGH).1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21). //Moves CH A digitalWrite(8. LOW). int incomingByte = 0. http://www. } } } ISR(TIMER2_COMPA_vect) { do{ if (Serial. //ENABLE CH B Serial.available()){ incomingByte = Serial.com/id/Arduino-Controlled-Robotic-Drum/ This example code is in the public domain. //Engage the Brake for Channel A digitalWrite(9. LOW). OUTPUT). //CH B -.HIGH = forwards and LOW = backwards??? pinMode(13. void setup() { //establish motor direction toggle pins pinMode(12.// = (16*10^6) / (7812. //ENABLE CH A digitalWrite(8. OUTPUT).begin(57600). //Disengage the Brake for Channel A digitalWrite(12. HIGH). HIGH). // Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11). 255).read(). 255). //Moves CH A //recoil time delay(40). 255). //Moves CH A //strike time delay(strikelegnth).8khz increments OCR2A = 255. LOW).// set entire TCCR2A register to 0 TCCR2B = 0. //Moves CH A digitalWrite(8. HIGH). OUTPUT). cli(). For more information. //start down digitalWrite(9. } Small Tom Arduino: /* This is code for a robotic drum created by Randy Sarafan. // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A). HIGH).HIGH = forwards and LOW = backwards??? //establish motor brake pins pinMode(9. //brake (disable) CH A pinMode(8. //Engage the Brake for Channel A event = 0. //Sets direction of CH A analogWrite(11. //Disengage the Brake for Channel A digitalWrite(13.instructables. //go back digitalWrite(9. OUTPUT). //Sets direction of CH A analogWrite(11. //stop digitalWrite(8. LOW). */ int event = 0. //Engage the Brake for Channel A delay(10).com/id/RadioShack-presents-18-More-Awesome-Projects/ . LOW). //Disengage the Brake for Channel A digitalWrite(13. //Sets direction of CH A analogWrite(3.

//Moves CH A digitalWrite(8. 255). //Sets direction of CH A analogWrite(3. //Sets direction of CH A analogWrite(11.//allow interrupts } void loop() { if(event == 1){ if (incomingByte == 135) { //start down digitalWrite(9. //Disengage the Brake for Channel A digitalWrite(13. HIGH). HIGH). //go back digitalWrite(9. LOW). //Disengage the Brake for Channel A digitalWrite(12. //Engage the Brake for Channel A digitalWrite(9.com/id/RadioShack-presents-18-More-Awesome-Projects/ . } if (incomingByte == 192) { //start down digitalWrite(9. 255). //go back digitalWrite(8. //Disengage the Brake for Channel A digitalWrite(13. //stop digitalWrite(9. //Moves CH A digitalWrite(8. LOW). //Engage the Brake for Channel A delay(10). //Disengage the Brake for Channel A digitalWrite(13. 255). //Moves CH A //recoil time delay(40). sei(). LOW). 255). 255). HIGH). } if (incomingByte == 136) { //start down digitalWrite(8. //Disengage the Brake for Channel A digitalWrite(13. HIGH). //Moves CH A //strike time delay(strikelegnth). HIGH). //Disengage the Brake for Channel A digitalWrite(12. //Sets direction of CH A analogWrite(3. //stop digitalWrite(8. //Moves CH A //recoil time delay(40). //stop digitalWrite(9. LOW). //Sets direction of CH A analogWrite(11. LOW). //go back digitalWrite(9. 255). LOW). //Disengage the Brake for Channel A digitalWrite(12. //Engage the Brake for Channel A delay(10). //Moves CH A //strike time delay(strikelegnth). //Engage the Brake for Channel A event = 0. LOW). HIGH). LOW). //Moves CH A //strike time delay(strikelegnth). LOW). LOW). //stop digitalWrite(8. //Sets direction of CH A analogWrite(3. //Sets direction of CH A analogWrite(11. HIGH). 255). //Engage the Brake for Channel A delay(10). //Sets direction of CH A analogWrite(11. //stop digitalWrite(8. HIGH). //Engage the Brake for Channel A event = 0. //Engage the Brake for Channel A digitalWrite(9.instructables. //Sets direction of CH A analogWrite(3. //Moves CH A //recoil time delay(40). HIGH). } } } http://www. HIGH). HIGH). HIGH). //Disengage the Brake for Channel A digitalWrite(12. LOW). 255). //Engage the Brake for Channel A event = 0. LOW). //stop digitalWrite(8.

// Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11). //CH A -. //brake (disable) CH B digitalWrite(9. visit: http://www. OUTPUT).8khz increments OCR2A = 255.available() > 8). LOW). sei().available()){ incomingByte = Serial. //Disengage the Brake for Channel A digitalWrite(12. } Large Tom Arduino: /* This is code for a robotic drum created by Randy Sarafan. }//end if serial available }//end do while (Serial. //ENABLE CH A digitalWrite(8. int strikelegnth = 80.HIGH = forwards and LOW = backwards??? pinMode(13. HIGH).//stop interrupts //set timer2 interrupt every 128us TCCR2A = 0.// = (16*10^6) / (7812.HIGH = forwards and LOW = backwards??? //establish motor brake pins pinMode(9. LOW). HIGH). LOW). 255). OUTPUT). //go back digitalWrite(9. */ int event = 0. //ENABLE CH B Serial. } if (incomingByte == 138) { //start down http://www.read().//allow interrupts } void loop() { if(event == 1){ if (incomingByte == 137) { //start down digitalWrite(9. HIGH).com/id/Arduino-Controlled-Robotic-Drum/ This example code is in the public domain. //CH B -.// set entire TCCR2A register to 0 TCCR2B = 0. cli().//initialize counter value to 0 // set compare match register for 7. //Engage the Brake for Channel A event = 0. //brake (disable) CH A pinMode(8.// same for TCCR2B TCNT2 = 0. // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A). event = 1. OUTPUT). OUTPUT). void setup() { //establish motor direction toggle pins pinMode(12.instructables. //Sets direction of CH A analogWrite(3. //Engage the Brake for Channel A delay(10). //Sets direction of CH A analogWrite(3.ISR(TIMER2_COMPA_vect) { do{ if (Serial. //stop digitalWrite(9. LOW).com/id/RadioShack-presents-18-More-Awesome-Projects/ . //Moves CH A //strike time delay(strikelegnth). int incomingByte = 0. //Moves CH A //recoil time delay(40).instructables. //Disengage the Brake for Channel A digitalWrite(12.begin(57600). For more information.5*8) . LOW).1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21). 255). //stop digitalWrite(9.

255). //Moves CH A //recoil time delay(40). } } } ISR(TIMER2_COMPA_vect) { do{ if (Serial. HIGH). //Engage the Brake for Channel A digitalWrite(9. //stop digitalWrite(8. //Moves CH A //strike time delay(strikelegnth). HIGH).instructables. //Engage the Brake for Channel A event = 0. int incomingByte = 0. //Disengage the Brake for Channel A digitalWrite(12.HIGH = forwards and LOW = backwards??? http://www. //stop digitalWrite(8. int strikelegnth = 80. } if (incomingByte == 208) { //start down digitalWrite(9. //Moves CH A //strike time delay(strikelegnth). 255). LOW). //Disengage the Brake for Channel A digitalWrite(13. //go back digitalWrite(8. //Sets direction of CH A analogWrite(3. //go back digitalWrite(9. //Moves CH A digitalWrite(8. //Disengage the Brake for Channel A digitalWrite(13. LOW). //Engage the Brake for Channel A delay(10). //Sets direction of CH A analogWrite(11. HIGH). void setup() { //establish motor direction toggle pins pinMode(12.read(). //Engage the Brake for Channel A event = 0. OUTPUT). //CH B -. LOW). 255).HIGH = forwards and LOW = backwards??? pinMode(13. 255). //Disengage the Brake for Channel A digitalWrite(13. LOW). //Sets direction of CH A analogWrite(11. event = 1. //stop digitalWrite(8. 255). //Disengage the Brake for Channel A digitalWrite(13. //Engage the Brake for Channel A delay(10). visit: http://www.com/id/Arduino-Controlled-Robotic-Drum/ This example code is in the public domain. LOW). }//end if serial available }//end do while (Serial. //Sets direction of CH A analogWrite(11. 255). HIGH). //Moves CH A //recoil time delay(40). HIGH). For more information.instructables. //Engage the Brake for Channel A digitalWrite(9. //Moves CH A digitalWrite(8. HIGH). OUTPUT). //CH A -. //stop digitalWrite(8.available()){ incomingByte = Serial. //Sets direction of CH A analogWrite(3. LOW). LOW). HIGH). */ int event = 0.available() > 8). digitalWrite(8. //Disengage the Brake for Channel A digitalWrite(12. HIGH). LOW). } Floor Tom Arduino: /* This is code for a robotic drum created by Randy Sarafan. //Sets direction of CH A analogWrite(11. HIGH). LOW).com/id/RadioShack-presents-18-More-Awesome-Projects/ .

//Moves CH A //strike time delay(strikelegnth). cli(). HIGH). //Sets direction of CH A analogWrite(3. 255). LOW). //go back digitalWrite(9. //Engage the Brake for Channel A event = 0. //stop digitalWrite(8. //Disengage the Brake for Channel A digitalWrite(12. LOW). } if (incomingByte == 224) { //start down digitalWrite(9.// = (16*10^6) / (7812. LOW).// set entire TCCR2A register to 0 TCCR2B = 0.// same for TCCR2B TCNT2 = 0. //Disengage the Brake for Channel A digitalWrite(12. HIGH). LOW). 255). 255). //Disengage the Brake for Channel A digitalWrite(13.//initialize counter value to 0 // set compare match register for 7. //ENABLE CH B Serial. //Disengage the Brake for Channel A digitalWrite(13. LOW). LOW). LOW). //Moves CH A //recoil time delay(40).//stop interrupts //set timer2 interrupt every 128us TCCR2A = 0. //stop digitalWrite(9. } if (incomingByte == 140) { //start down digitalWrite(8. LOW).begin(57600).com/id/RadioShack-presents-18-More-Awesome-Projects/ . // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A). LOW).//allow interrupts } void loop() { if(event == 1){ if (incomingByte == 139) { //start down digitalWrite(9. //Moves CH A //strike time delay(strikelegnth). http://www. //stop digitalWrite(8. //brake (disable) CH A pinMode(8. //Disengage the Brake for Channel A digitalWrite(12. 255).5*8) . OUTPUT). LOW). //Sets direction of CH A analogWrite(11. //Engage the Brake for Channel A event = 0. //ENABLE CH A digitalWrite(8. //go back digitalWrite(8. //establish motor brake pins pinMode(9. //Moves CH A digitalWrite(8. LOW). //Sets direction of CH A analogWrite(3. //Engage the Brake for Channel A delay(10). //Moves CH A //recoil time delay(40). sei(). //Moves CH A //strike time delay(strikelegnth). HIGH). 255). //brake (disable) CH B digitalWrite(9.8khz increments OCR2A = 255.1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21). // Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11). HIGH). HIGH). HIGH). //stop digitalWrite(9. 255). LOW). //Sets direction of CH A analogWrite(11. //Sets direction of CH A analogWrite(3. //Engage the Brake for Channel A delay(10). OUTPUT). //Sets direction of CH A analogWrite(11. //Disengage the Brake for Channel A digitalWrite(13.instructables.

//Sets direction of CH A analogWrite(3.instructables.available()){ incomingByte = Serial. LOW). HIGH).com/id/RadioShack-presents-18-More-Awesome-Projects/ . //Engage the Brake for Channel A digitalWrite(9. LOW). Next. //Engage the Brake for Channel A digitalWrite(9. } } } ISR(TIMER2_COMPA_vect) { do{ if (Serial. //go back digitalWrite(9. //Engage the Brake for Channel A delay(10).available() > 8). 255). Finally. //Moves CH A digitalWrite(8. //Sets direction of CH A analogWrite(11. event = 1. you will want to affix them to the drum stick assemblies. //Disengage the Brake for Channel A digitalWrite(13. HIGH). 255). http://www. }//end if serial available }//end do while (Serial. HIGH). //stop digitalWrite(8. //Disengage the Brake for Channel A digitalWrite(12. //stop digitalWrite(8. HIGH). HIGH). mount the Arduino using these bolts and fasten them firmly in place with nuts. //Engage the Brake for Channel A event = 0. //Moves CH A //recoil time delay(40). Remove the nuts from the Arduino mounting bolts that were inserted earlier. slide 1/4" spacers onto the bolts.read(). HIGH). } Step 34: Attach Once all of the Arduinos are programmed.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

instructables. extend all of the motor wires so that they are long enough to plug into the motor shield.Step 35: Extend If necessary. Cover any exposed wires with heat shrink tubing. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

For the most part. Drill each of this marks with a 5/16" drill bit. centered on each 7" x 3" side of the case.Step 36: Plug Plug the wires from each motor into either Channel A or Channel B on the motor shield. http://www. The one exception to this rule is the Arduino that controls the kick drum and the cymbal. but we will touch more on this in a moment. about an inch apart. it is not really important which is which. so long as it is a single motor to a single channel.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. Step 37: Drill Make 3 side-by-side marks.

Mount the jacks into three of the holes side-by-side on one side of the case.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 38: Jacks Wire each of the jacks such that the positive red wire is connected to the center terminal and the black wire is connected to the outer terminal. http://www.

and each jack is supplying power to two pairs on the strip.instructables. Connect the speaker wire to the first pair so that the marked edge of the wire is going to ground and the unmarked edge is going to power. Wire them up such that it is alternating power and ground. each jack should be supplying power and ground twice. Repeat this for all subsequent pairs.Step 39: Wire it up Connect the wires from each of the jacks into the European terminal strip. In other words. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Make sure the terminals strip is nicely situated inside the box.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Put the lid onto the power box and fasten it shut. http://www.Step 40: Case closed Pass the wires in pairs of two through each of the three respective holes in the case.instructables.

This may take some fussing about. The snare and floor tom (not pictured) can just stand on the floor in their typical places. These cymbals and strikers can then be positioned in their normal drum kit location.instructables. http://www.Step 41: Set up Install the toms above the kick drum as you normally would for any other drum kit. Step 42: Cymbals Adjust the height of the drumstick assemblies such that they strike the cymbal and hi-hat reliably.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

Next. and insert their barrel plugs into the M-type jacks on the power supply box. Repeat this process five times. and plug the marked edge of the speaker wire into the ground input socket on one of the motor shields. plug the unmarked edge into the power socket on the shield. Plug the three 9V power adapters into the power strip. http://www. for all of the motor shields. Plug a USB wire into each of the Arduinos and then plug them all into the USB hub.instructables. Plug the unmarked edge into the plus terminal of the cymbal assembly's motor shield. Insert the 1/4" plug into the 1/4" jack on the kick drum.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Plug the marked edge of the 1/4" plug cable into the "Motor A" minus terminal on the cymbal assembly's motor shield.Step 43: Plug some stuff in Take a speaker wire from the power supply box.

Next.Step 44: Sequence To use the drum kit.zip (12 KB) [NOTE: When saving. rename it to 'DrumSequencer. Reinventing Cleaning a 1st Plexi Bot: RoboBrrd by Robo hand! your free or 2nd Wireless How to use RobotGrrl How To Enter (Photos) by Innoventions Generation Robotic Arm by Strawberry Automator by Instructables randomdude2 'Fantastic Roomba by Mangokid Picking Robots benthekahn and Plastics Works' trebuchet03 Leasing Agency RoboGames robot to glow by (video) by Robot Contest remainseated strawber by Contest Robot http://www. first connect the USB hub to your computer and make sure the power strip is powered on. visit the Max MSP site and download Max5 Runtime (Mac / Windows ). Run "robo drums sequencer57600.tmp as the file ext.zip'] Related Instructables mindstorms.maxpat" using Max5 Runtime. without her world class Max MSP skills. This project would have taken much longer. and probably have not been quite as awesome. if you see .com/id/RadioShack-presents-18-More-Awesome-Projects/ . Download the attached zip file with the "robo drums sequencer57600" Max patch.instructables.Max MSP Ninja and loosely certified Instructables Genius. This Max patch was created by the amazing Amanda Ghassaei . File Downloads DrumSequencer.

I used a technique called granular synthesis to manipulate the incoming audio signal. or mixed with other grains. You can hear a (somewhat creepy) audio sample from the effects box below: PARTS LIST (1x) Arduino Uno REV 3 Radioshack 276-128 (7x) 10K Ohm 1/4-Watt Carbon Film Resistor (2 packages) Radioshack #271-1335 (9x) 20K Ohm 1/4-Watt Carbon Film Resistor (2 packages) (1x) 1K Ohm 1/4-Watt Carbon Film Resistor Radioshack 271-1321 (1x) 50K-Ohm Linear-Taper Potentiometer Radioshack #271-1716 (1x) 10KOhm Audio Control Potentiometer with SPST Switch Radioshack #271-215 (this will be used to control volume and turn the device on/off) (5x) 0. To minimize the amount of computation required by the Arduino.instructables. copied several times.1uf capacitor Radioshack 55047557 (2x) 1M-Ohm Linear Taper Potentiometer Radioshack 271-211 (1x) 1MOhm logarithmic potentiometer (1x) male header pins Jameco 103393 (1x) 10K-Ohm Linear-Taper Potentiometer Radioshack 271-1715 (1x) DPDT Flatted Metal Lever Toggle Switch Radioshack 275-636 (2x) 1/4" stereo jack Radioshack 274-141 or Radioshack 274-312 (2x) 5mm High-Brightness White LED (1 package) Radioshack 276-017 (2x) 100 ohm 1/4W 5% Carbon Film Resistor Radioshack 271-1311 (2x) TS922IN Dual Op Amp Digikey 497-3049-5-ND (one TS924 would also work. 2012 Author:amandaghassaei amandaghassaei. they may be lengthened or shortened. and then outputs 8 bit audio at 40kHz. It samples an incoming microphone signal at a rate of about 40kHz. played back in reverse. This project is my first experiment with real-time digital signal processing using Arduino. Essentially. manipulates the audio digitally. stretched or compressed." These grains are then individually manipulated and played back. but they are not available on digikey at the moment) Additional Materials: 22 Gauge Wire Radioshack #278-1224 Solder Radioshack #64-013 sand paper plywood wood glue hot glue screws Download Arduino IDE http://www.com Currently working for instructables! Intro: Arduino Vocal Effects Box This Arduino-powered vocal effects box pitch shifts and distorts incoming audio signals to produce a wide variety of vocal effects.Arduino Vocal Effects Box by amandaghassaei on July 10.com/id/RadioShack-presents-18-More-Awesome-Projects/ .25" Knurled Knob Radioshack 274-424 (2x) 9V Alkaline Battery Radioshack #23-866 (2x) Heavy-Duty 9V Snap Connectors Radioshack #270-324 (1x) PC Board with Copper Radioshack #276-147 (1x) SPST PC-Mountable Submini Toggle Switch Radioshack #275-645 (2x) Male Header Pins Jameco 103393 (3x) 8 pin socket Radioshack 276-1995 (1x) TL082 Wide Dual JFET Input Op Amp Radioshack 276-1715 (3x) 100K Ohm 1/4-Watt Carbon Film Resistor (1 package) Radioshack 271-1347 (1x) 10uF electrolytic capacitor (1x) 47nF capacitor (3x) 0. as audio comes into the Arduino it gets cut up and stored as small (millisecond or microsecond sized) samples called "grains.

This project outputs audio through an 8 bit R2R digital to analog converter through Arduino digital pins 0-7. I've omitted a voltage divider in this schematic. Three pots on the device control grain size. Image Notes Image Notes 1. a low pass filter.instructables. This signal is sent through an amplifier. There are two LED indicators in this project: one clipping indicator and one output indicator. 8 bit R2R DAC http://www. and a volume control pot before being sent out to speakers. The third schematic shows how all the controls of the effects box are connected to the Arduino. 3. if you want to drive headphones 2. microphone mono input directly you should add a voltage divider here. The first schematic shows the audio out circuit. and wet/dry mix and a switch controls the direction of sample playback (forward or reverse). The second schematic shows the mic input circuit. signal out 1. see step 10 for more info. The line in the from the mic is sent through an amplifier and a DC offset circuit before being sent into the Arduino via analog input pin A0. unused op amp in dual op amp package 2.Step 1: Schematic I've broken the schematic into three parts so it is easier to understand.com/id/RadioShack-presents-18-More-Awesome-Projects/ . pitch.

reverse switch 3.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1.instructables. clipping indicator 4.54mm.from another project). output indicator Step 2: Header Pins Solder header pins to your protoboard so that you can snap the arduino directly to the board. so I've found that it's best to try to avoid using these pins if possible (anolog pins can also be used as digital I/O). Unfortunately the spacing between digital pins 7 and 8 on the arduino is not the standard 2. If you have to use them. Image Notes 1. pots 2. pins to digital pins 8-13 were bent for better fit http://www. try finding long header pins which you can bend into shape (fig 4.

Step 3: DAC: Part 1 Solder eight 20kOhm resistors to arduino pins D0-D7 as shown in the images above.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www.instructables. Add an additional 20kOhm resistor to the 20kOhm connected to arduino D0 (the bottom of the ladder). Step 4: DAC: Part 2 Solder seven 10kOhm resistors in between each of the 20kOhm's you just soldered.

or * (at your option) any later version. If you need help understanding how to use/read the oscilloscope check out this tutorial . } Some info about the code. * */ //sends 63Hz sine wave to arduino PORTD DAC float t = 0.// = (16*10^6) / (8*40000)-1 // turn on CTC mode TCCR2A |= (1 << WGM21).arduino.Step 5: DAC: Part 3 Connect the other end of the 20kOhm reisistor to arduino ground Step 6: Test DAC Connect the output from the DAC up to an oscilloscope.instructables.//initialize counter value to 0 // set compare match register for 40khz increments OCR2A = 49. //63Hz sine wave //by Amanda Ghassaei 2012 //http://www. // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A). Once t reaches 627 it resets back to zero (this happens with a frequency of 40. see http://www.// same for TCCR2B TCNT2 = 0. Meanwhile. // Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11).instructables. either version 3 of the License.cc/en/Reference/PortManipulation for more info DDRD = 0xFF.basically what I've done here is set up a timer interrupt that increments the variable t at a frequency of 40kHz. if (t==628){//40kHz/628 =~ 63Hz t=0.com/id/Arduino-Vocal-Effects-Box/ /* * This program is free software.com/id/RadioShack-presents-18-More-Awesome-Projects/ . It calculates this value with the following equation: PORTD=byte(127+127*sin(2*t/100)). } } void loop(){ //sine wave of frequency ~63Hz //send sine values to PORTD between 0 and 255 PORTD=byte(127+127*sin(t/100)).//port d (digital pins 0-7) all outputs cli(). Load the firmware below onto the Arduino. you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation.//stop interrupts //set timer2 interrupt at 40kHz TCCR2A = 0. The DAC should output a sine wave oscillating between 0 and 5V with a frequency of ~63Hz (see image above). void setup() { //set port/pin mode. in the main loop the Arduino sends a value between 0 (00000000 in binary) and 255 (11111111 in binary) to digital pins 0 through 7 (PORTD ).000/628 = 63Hz). http://www. be sure to connect ground as well.//allow interrupts } ISR(TIMER2_COMPA_vect) { //increment t t+=1. sei().// set entire TCCR2A register to 0 TCCR2B = 0.

5V to pin 8 and the signal from the DAC to pin3. where a 0 sent to PORTD equals 0V and a 255 sent to PORTD equals 5V.5V Step 8: Wire up pot Connect three leads to a 10k exponential pot (labelled with an "A") as shown in fig 3. Image Notes Image Notes 1. signal out time/div = 5ms 2. 3. oscillating around 127. if you want to drive headphones directly you should add a voltage divider here. Solder pins 6 and 7 together (fig 2).from DAC 1.it is a volume control knob. pin 4. Solder pins 1 and 2 together (fig 2). see step 10 for more info. Image Notes Image Notes 1. I've omitted a voltage divider in this schematic.com/id/RadioShack-presents-18-More-Awesome-Projects/ . volts/div = 2 1. The value sent to PORTD is a sine wave with frequency 63Hz and amplitude 127. The voltage follower acts as a buffer. the green lead to pin 5.So as t increments from 0 to 627 the sine function moves through one complete cycle. It does this by acting as a variable voltage divider . Solder the red lead to pin 1. and the black lead to ground/pin 4. 8 bit R2R DAC Step 7: 8 pin socket and buffer Solder an 8 pin socket to the breadboard. This pot will adjust the amplitude of the signal. This puts the signal through a voltage follower .ground 3.instructables. Connect ground to pin 4. connect pins 1 and 2 2. protecting the output from the DAC from any loads that are put on it later in the circuit. http://www. pin 3. The DAC translates this to a voltage between 0 and 5V. pin8.

connection to pot Step 9: Second 8 pin socket Solder a second 8 pin socket and connect ground to pin 4 and 5V to pin 8. connect red lead from pot to pin 1 3. connect ground from pot to ground/pin4 Image Notes 1. connect middle pin from pot to pin 5 1.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ . connects pins 6 and 7 2. Image Notes Image Notes 1. http://www.

instructables. Unlike the voltage divider I set up in the last step with the pot. it scales the amplitude of the signal permanently. this voltage divider does not change. Image Notes 1. Connect a 2kOhm resistor to 10kOhm 3. The scaled signal comes out from the junction between the two resistors.com/id/RadioShack-presents-18-More-Awesome-Projects/ . then do not add this voltage divider. 10kOhm resistor connects to pin 7 of first TS922IN 2.the purpose of this portion of the circuit is to scale the signal to 2000/(10000+2000) =1/6th its amplitude. Connect a 2kOhm resistor in series with the 10kOhm resistor and connect the other end of the 2kOhm to ground. connect 5V to pin 8 Step 10: Voltage divider Solder a 10kOhm resistor to pin 7 of the first TS922IN. Image Notes 1. If you are planning to send the output out as line level into another effects module or amplifier. connect 2kOhm resistor to ground Image Notes http://www. I did this so that the max volume would not completely destroy my hearing. This is another voltage divider . connect ground to pin 4 2.

Solder a wire from the junction between the capacitor and resistor to pin 5 of the second socket. http://www. So if you have a sampling rate of 40kHz (standard for most audio). protecting the incoming waveform from the load of the headphones which will eventually be attached to the output of the buffer. the highest frequency that can be produced is x/2 Hz. 1. then the maximum frequency you can reproduce is 20kHz (the upper limit of the audible spectrum ). You can mess around with different values and see what you like best. Solder a 1kOhm resistor to the junction from the voltage divider from the last step (if you did not include the voltage divider. You can calculate the values of the capacitor and resistor you need for a low pass filter according to the following equation: cutoff frequency = 1/ (2*pi*R*C) so for a cutoff frequency of 20. filtered signal out Step 12: More buffering In this step I wired the two op amps on the second chip as voltage followers and wired them in parallel so they could source twice the current. I've omitted a voltage divider in this schematic. By using a low pass filter on the signal with a cutoff frequency of 20kHz. As in step 7. 3. 0. I tend to like heavier filtering bc it removes more unwanted noise.000Hz and 1kOhm resistor: 20000=1/(2*3. Image Notes 1. Nyquist's Theroum states that for a sampling rate of x Hz. Solder a 0. this voltage follower acts as a buffer. you can smooth out the "steps" in your waveform while keeping the overall shape of the waveform intact.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Connect the resistor to the incoming signal and the capacitor to ground.01uF. Solder a wire between the two non-inveting inputs of the op amps (pins 5 and 3 of the second socket). On the underside of the board solder the inverting inputs to their outputs (fig 2). Solder another wire between the two outputs (pins 1 and 7 of the second socket). see step 10 for more info. This gives a cutoff frequency of about 16kHz.01uF capacitor connected to ground 3. 1kOhm resistor connected to voltage divider junction 2. the signal from the junction between these two components will be low pass filtered.14*1000*C) C =~ 8nF Since 8nF capacitors are hard to come by I rounded up to 0. I used a simple RC flow pass filter to achieve this: a resistor and a capacitor in series to ground. if you want to drive headphones directly you should add a voltage divider here. solder straight to pin 7).01uF capacitor in series with this resistor to ground. 8 bit R2R DAC Step 11: RC low pass filter The purpose of a low pass filter in this part of the circuit is to remove the digital artifacts from the output of the DAC without losing too much detail in the higher frequencies of the audio signal. signal out 2.instructables.

end of a 100uF (or higher) capacitor to the output of the second op amp. solder inverting input to output 2.com/id/RadioShack-presents-18-More-Awesome-Projects/ . Image Notes 1. wire connecting two non-inverting inputs of the dual op amp. Before sending the signal out to speakers/headphones. This is called a DC offset . Use hot glue to add some structural support to these connections and prevent short circuits. from end of 100uF capacitor to audio jack http://www. wire connecting the two outputs from both op amps. it is achieved by running the signal through a capacitor. but the signal out of the Arduino is mono.instructables. so just wire the mono signal to both stereo outputs. Solder the green wire to the + end of the 100uF capacitor and solder the black wire to ground. Solder a black wire (ground) to the longer lead. it must be offset to oscillate around 0V. Image Notes Image Notes 1. solder inverting input to output Step 13: DC offset After all the voltage dividers. This jack is stereo. the signal coming out of the op amps oscillates between 0 to about 1V (or 0 to 5V if you did not include the voltage divider in step 10). Step 14: Audio Jack Unscrew the plastic case of the audio jack. 2. 1. Solder the . The signal coming from the + end of the capacitor will be DC offset to oscillated around 0V. and wire a green wire (signal out) to the two shorter leads.

signal out 2.instructables. signal out Image Notes 1. 3. Image Notes 1. 8 bit R2R DAC http://www. I've omitted a voltage divider in this schematic.com/id/RadioShack-presents-18-More-Awesome-Projects/ . if you want to drive headphones directly you should add a voltage divider here. ground 2. see step 10 for more info.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . The signal is relatively weak. In order to do this. DPDT switches actually have two separate switches in them. DC offset means changing the level that the wave oscillated around (the midpoint of the wave). Amplification means increasing the amplitude (distance between the center point and max or min) of a signal. but the center point is 2. the signal will need to be DC offset and amplified. Fig 4 shows the signal after it has been DC offset.5V Step 16: Batteries Two nine volt batteries will be needed to power the TL082. signal directly from microphone has a relatively small amplitude Image Notes 1. you want to have a signal with a max amplitude of 2. DC offset moves midpoint of signal to 2. unused op amp in dual op amp package 2. Amplification also buffers the microphone element from any loads that you may put on it later in the circuit.5 V Image Notes 1. Ideally. you can see how the height of the peaks has increased so that the wave oscillates between -2.5V). Use hot glue to secure the solder joints if necessary (fig 7). so the wave never drops down below 0V. Fig 3 shows the same microphone signal after amplification.the slight change in shape between the signals in figure 3 and 4 is dues to changes in my voice between the two pics. The signal in fig 4 is ready to go to an Arduino analog input pin.5V instead of 0V.5 and 2.5 and 2.5V.this is typical of audio signals. it still has an amplitude of 2. microphone mono input Image Notes 1. http://www. amplified signal oscillates between -2. the Arduino will be able to measure it with maximum resolution and no clipping.5V. Wire the red ends of two battery snaps to one side (the same side) of each switch (figs 3 and 4). but they are controlled by the same toggle mechanism (fig 1). Notice how the signal oscillates around 0 volts.instructables.5 V (amplitude of 2. which is a good thing because it prevents distortion. Image Notes 1.5V oscillating around 2. with an amplitude of only 200mV. it has nothing to do with the circuit). Solder red wires to the middle leads of each switch (figs 5 and 6).Step 15: Microphone Circuit Fig 2 shows the signal coming straight out of the microphone on an oscilloscope . The double pole double throw (DPDT ) switch will act as a power switch to both batteries. This way the signal is completely contained within 0-5V. (Note.

Image Notes
1. switch #1
2. switch #2

Image Notes
1. wire red ends to one side of each switch

Image Notes
1. solder red leads to middle lead on each switch

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 17: Amplifier socket and power
Solder an 8 pin socket onto the protoboard (fig 1). As shown in the pin diagram for the TL082, +V connects to pin 8 and -V connects to pin 4. Connect on of the red wires
from the middle lead of the DPDT switch to pin 8. Let's call the battery snap that is attached to this red lead snap #1. Solder the black lead from snap #2 to pin 4 of the
socket (figs 2 and 3). Solder the black lead from snap #1 and the remaining red lead from the center pin of switch #2 together on the protoboard (figs 3 and 4), this is the
center tap (0v) between the +9/-9V supply. Solder this connection to arduino ground (fig 8).

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Image Notes Image Notes
1. center tap 1. center tap

Image Notes
1. from arduino ground

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 18: Microphone input
Unscrew the plastic case from the 1/4" jack. If you have a mono microphone, unclip the right lead (fig 2). I also trimmed some of the metal from the larger lead- the
ground lead (figs 5 and 6). Solder a black wire to the ground lead and a green wire to the other lead. Cover the leads of the jack with hot glue to prevent short circuiting or
breakage.

Image Notes
1. unclip this lead- it is not necessary for a mono microphone

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 19: Non-inverting amplifier: part 1
Solder the wires from the 1/4" jack to the protoboard. Solder the black wire to arduino ground and the green wire to pin 5 of the 8 pin socket.

Image Notes
1. ground wire from 1/4" jack
2. green wire from 1/4" jack

Step 20: Non-inverting amplifier: part 1
Solder a 100K resistor between pins 6 and 7 of the 8 pin socket.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 21: Non-inverting amplifier: part 2
Solder two leads onto a potentiomer (shown in fig 1) so that it acts as a variable resistor. Solder one side (doesn't matter which) to ground and the other side to pin 6 of
the socket. This pot will control the amplitude of the incoming microphone signal.

Image Notes Image Notes
1. pot wired as a variable resistor, with resistance between 0 and 10kOhms 1. one side of pot to ground
2. B signifies linear taper 2. other side to pin 6
3. 10kOhm resistance

Step 22: DC offset: part 1
The DC offset circuit is comprised of two capacitors and a voltage divider. Solder a 10uF electrolytic capacitor so that the + lead connects to pin 7 of the socket.

Image Notes
1. lead to pin 7 of socket

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 23: DC offset: part 2
Solder a 47nF capacitor to the - end of the 10uF capacitor. Connect the other side of the 47nF cap to ground.

Image Notes
1. connect 47nf capacitor to ground (I connected to the grounded portion of my
DAC)
2. DAC

Step 24: DC offset: part 3
Create a voltage divider between Arduino +5V and ground by wiring two 100kOhm resistors in series between 5V and ground. Connect the middle junction of the voltage
divider to the junction between the two capacitors of the DC offset circuit. This will add 2.5V to the amplified microphone signal.

Image Notes
1. two 100kOhm resistors

Image Notes
1. voltage divider connects to junction between two capacitors

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

//read input from A0 incomingAudio = incomingAudio/4.instructables. each grid division represents 250us gjkhkjhkjhk jkjkljk jkljkljkj jkljkjkj jkljkjlkj j jklkj http://www.instructables. } void loop(){ incomingAudio = analogRead(A0). or * (at your option) any later version.com/id/RadioShack-presents-18-More-Awesome-Projects/ . In the next steps I'll be manually setting the ADC counter and lowering the resolution of the Arduino's analog to digital conversion from 10 bit (0-1023) to 8 bit (0-255) to increase speed and get the sampling rate up. converts it to a number between 0 and 255.//set digital pins 0-7 as outputs } pinMode(A0.Step 25: Connect to analog input Connect analog input 0 to the junction between the two capacitors in the DC offset circuit.com/id/Arduino-Vocal-Effects-Box/ //July 2012 /* * This program is free software. //Simple Audio Out //by Amanda Ghassaei //http://www. This code reads the signal coming into A0. you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation.i<8.i++){ pinMode(i. output from dac shown in yellow 1. Step 26: Simple audio out Load the following code onto the Arduino. and outputs it to the DAC.OUTPUT). either version 3 of the License. the sampling rate is 1/125us or 8kHz. In this simple setup. Notice how each step of the DAC output is about 125us long.//scale from 10 bit to 8 bit PORTD = incomingAudio. void setup(){ for (byte i=0. On the oscilloscope in the image above you can see the incoming mic signal in blue and the signal straight out of the DAC in yellow.//send out DAC } Image Notes Image Notes 1.INPUT). * */ int incomingAudio.

you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. I set the ADC counter to 500kHz because the ADC takes 13 clock cycles to read a new analog value. or * (at your option) any later version. amplified signal from microphone jklklkj jklkjlkj jklkjlkjlk 2.5kHz which gets me pretty close to 40kHz (standard audio sampling rate) without introducing extra noise.instructables. http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .5kHz sampling rate //by Amanda Ghassaei //http://www.5V from dac 1. 2. * */ void setup(){ DDRD=0xFF. no signal from mic outputs a steady 2.//set port d (digital pin s0-7) as outputs DDRC=0x00.com/id/Arduino-Vocal-Effects-Box/ //July 2012 /* * This program is free software. ADCSRB = 0. my best sine wave impression Step 27: In the code below I bypassed the function analogRead() in order to increase my sampling rate. //Audio out with 38. dac signal has a lag of about 125us Image Notes Image Notes 1. amplified mic signal and dac signal compared side by side 1. either version 3 of the License. 500/13 = 38. I manually set the ADC counter to 500kHz and read an 8 bit value from analog input 0 from the ADCH directly. 2 steps per grid division = 125us per step hjkhjkh hjkhjkh hjkjkh hjkhjkj hjkjhkjh hjkjhkjh hjkjkjh hjkjkjh hjkhjkh hjkjh hjkhj hjkjh jkhjhkh Image Notes Image Notes 1.instructables.//set all analog pins as inputs //set up continuous sampling of analog pin 0 //clear ADCSRA and ADCSRB registers ADCSRA = 0.

ADMUX |= (1 << REFS0); //set reference voltage
ADMUX |= (1 << ADLAR); //left align the ADC value- so we can read highest 8 bits from ADCH register only

ADCSRA |= (1 << ADPS2) | (1 << ADPS0); //set ADC clock with 32 prescaler- 16mHz/32=500kHz
ADCSRA |= (1 << ADATE); //enabble auto trigger
ADCSRA |= (1 << ADEN); //enable ADC
ADCSRA |= (1 << ADSC); //start ADC measurements

}

void loop(){
PORTD = ADCH;//send 8 bit value from analog pin 0 to DAC
}

In the code below I triggered the output to the DAC via the ADC interrupt. This interrupt is similar to other Arduino timer interrupts , but it only executed when a new ADC
value has been reached (in this case at a rate of ~38.5kHz, or every 26us). The output of the code below is exactly the same as the code above, but it will be more
convenient to use the interrupt code moving forward.

//Audio out with 38.5kHz sampling rate and interrupts
//by Amanda Ghassaei
//http://www.instructables.com/id/Arduino-Vocal-Effects-Box/
//July 2012

/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
*/

void setup(){
DDRD=0xFF;//set port d (digital pin s0-7) as outputs
DDRC=0x00;//set all analog pins as inputs

cli();//diable interrupts

//set up continuous sampling of analog pin 0

//clear ADCSRA and ADCSRB registers
ADCSRA = 0;
ADCSRB = 0;

ADMUX |= (1 << REFS0); //set reference voltage
ADMUX |= (1 << ADLAR); //left align the ADC value- so we can read highest 8 bits from ADCH register only

ADCSRA |= (1 << ADPS2) | (1 << ADPS0); //set ADC clock with 32 prescaler- 16mHz/32=500kHz
ADCSRA |= (1 << ADATE); //enabble auto trigger
ADCSRA |= (1 << ADIE); //enable interrupts when measurement complete
ADCSRA |= (1 << ADEN); //enable ADC
ADCSRA |= (1 << ADSC); //start ADC measurements

sei();//enable interrupts
}

ISR(ADC_vect) {//when new ADC value ready
PORTD = ADCH;//send 8 bit value from analog pin 0 to DAC
}

void loop(){
}

Image Notes
1. ~26us per sample at 38.5kHz

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Image Notes
1. set 32 prescaler for 16Mhz/32 = 500kHz ADC counter

Step 28: Half frequency playback
The code below records short section of incoming audio into one of two arrays: buffer1 and buffer2. It also introduces a variable called "scale." This variable is used to
scale the playback of the stored buffer audio in order to change the frequency. The code below sets scale to 2, this doubles the length of time it takes for the dac to
output the stored audio. As you can see in the image above, the output from the dac (yellow) is half the frequency of the input from the microphone (blue).

//Half Frequency Playback
//by Amanda Ghassaei
//http://www.instructables.com/id/Arduino-Vocal-Effects-Box/
//July 2012

/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
*/

//audio storage
byte buffer1[1000];
byte buffer2[1000];

byte incomingAudio;//storage variable

int i = 0;//index variable
int iscale = 0;//index variable
int scale = 2;
boolean toggle = 0;
boolean rec = 1;
int limit = 1000;

void setup(){
DDRD=0xFF;//set port d (digital pin s0-7) as outputs
DDRC=0x00;//set all analog pins as inputs

cli();//diable interrupts

//set up continuous sampling of analog pin 0

//clear ADCSRA and ADCSRB registers
ADCSRA=0;
ADCSRB = 0;

ADMUX |= (1 << REFS0); //set reference voltage
ADMUX |= (1 << ADLAR); //left align the ADC value- so we can read highest 8 bits from ADCH register only

ADCSRA |= (1 << ADPS2) | (1 << ADPS0); //set ADC clock with 32 prescaler- 16mHz/32=500kHz
ADCSRA |= (1 << ADATE); //enabble auto trigger
ADCSRA |= (1 << ADIE); //enable interrupts when measurement complete
ADCSRA |= (1 << ADEN); //enable ADC
ADCSRA |= (1 << ADSC); //start ADC measurements

sei();//enable interrupts
}

ISR(ADC_vect) {//when new ADC value ready
incomingAudio = ADCH;
if (rec){
if (toggle){
buffer1[i] = incomingAudio;//store incoming
PORTD = buffer2[iscale];//send out DAC
}
else{
buffer2[i] = incomingAudio;//store incoming
PORTD = buffer1[iscale];//send out DAC
}
}
else{
if (toggle){
PORTD = buffer2[iscale];//send out DAC
}
else{
PORTD = buffer1[iscale];//send out DAC
}

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

}
i += 1;
iscale = i/scale;
if (i==limit){
rec = 0;//stop recording
}
if (i == (limit*scale)){
i = 0;
iscale = 0;
toggle^=1;
rec = 1;
}
}

void loop(){
}

Step 29: RC potentiometers
Since the ADC is busy converting the incoming audio from A0 to digital, the three control pots on the effects box (wet/dry, pitch, and grain size) will have to be monitored
using one of the digital pins. This can be down using an RC circuit . This circuit uses a digital pin on the Arduino to measure the amount of time it takes to discharge a
capacitor . This time is related to the resistance in the circuit which is set by a potentiometer. This way, we can indirectly measure the resistance of the potentiometer.

Solder a row to header pins to digital pins 9-13. Solder a 10kOhm resistor and 0.1uF capacitor in series to pins 10-12. Solder the free end of the 0.1uF capacitors
together and connect to Arduino +5V. Connect the outside pin of two 1mOhm linear taper pots to the junction between the resistor and capacitor attached to digital pins
11 and 12. Connect the outside pin of a 1mOhm logarithmic taper pot to the junction between the resistor and capacitor attached to digital pin 10. Solder the middle pins
of each pot to ground.

I you'd like you can increase the resolution of any of these controls by increasing the capacitance of the 0.1uF cap to 1uF or 10uF. This change will have to be accounted
for in the final firmware as well.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Step 30: Switch
This switch allows reverse playback of recorded samples. Solder a 10kOhm resistor to one of the leads from the switch. Solder a red wire to the other end of the resistor
and connect to ground. Solder a wire to the junction between the resistor and the switch and connect to Arduino digital pin 9. solder a black wire to the remaining pin from
the switch and connect to ground.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Image Notes
1. to 5V
2. to ground
3. to arduino input pin

Step 31: Indicator LEDs
Solder 100ohm resistors to the anodes of two white indicator LEDs. Connect the cathodes of both indicator LEDs to ground. Connect the anode of one of the LEDs to
digital pin 13- this is the clipping indicator. The other indicator LED will be connected to a switch in the next step.

Image Notes Image Notes
1. 100ohm current limiting resistor 1. cover anode with shrinkwrap

Step 32: Output switch
this switch will turn on an indicator LED to show that the output is on. Solder two wires to the back of the 10kOhm pot. Connect one wire to Arduino 5V and the other to
the anode of the indicator LED. The other end of the indicator LED connects to ground.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

Image Notes Image Notes
1. 100ohm current limiting resistor 1. cover anode with shrinkwrap

Step 33: Enclosure
I designed a triangular enclosure in corel draw and cut it from 1/4" plywood on a laser cutter. Two sides have holes for the input and outputs controls (jack, indicator LED,
and gain potentiometer). The front panel has holes for the rest of the controls (on/off switch, reverse switch, wet/dry mixer, pitch pot, grain size pot). The bottom has a
hole for easy access to the arduino's usb port.

I coated the plywood in three coats of polycrylic and glued the sides together with wood glue. I glued three small triangular pieces into the corners of the enclosure so that
I could screw the back panel on with wood screws (fig 3).

Attach the Arduino to the header pins on the protoboard and begin installing the components in the enclosure. I started by attaching the pots and switches to the front
panel and then added the jacks, LED indicators, and pots to the sides. Finally I pushed the arduino's usb port through the square hole on the bottom of the enclosure. My
arduino sat firmly in place, you could screw it to the back panel for an extra secure fit.

I've attaches the corel file for the enclosure that I built.

Image Notes
1. predrill backers to screw back panel to
http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/

http://www. rename it to 'enclosure. Step 35: Knobs Attach knobs to potentiometers and secure with a set screw.File Downloads enclosure. Screw on back panel of enclosure. if you see .tmp as the file ext.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .cdr (14 KB) [NOTE: When saving.cdr'] Step 34: Batteries Secure batteries in the corners of the enclosure with a battery clip or a piece of velcro.

int wet = 16. //set reference voltage ADMUX |= (1 << ADLAR). //data retrieval variables unsigned int i = 0.16mHz/32=500kHz ADCSRA |= (1 << ADATE). //left align the ADC value.Step 36: Final firmware Here is the final code for the project.//set all analog pins as inputs cli(). int newGrain = grain." //Final effects box code //by Amanda Ghassaei //http://www.//set digital pins 0-7 as outputs DDRB=0xFD. I've already explained the basic ideas behind most of the audio processing in previous steps.//index variable int iscale = 0. //start ADC measurements sei().instructables. //pot checking storage int scale = 20. int grainPot. int dry = 16-wet. ADMUX = 0. int clippingCounter = 5000.so I can read highest 8 bits from ADCH register only //since I'm reading A0. //enable ADC ADCSRA |= (1 << ADSC). int newWetDry = wet. or * (at your option) any later version.//index variable int iscalerev = grain-1. boolean newForward = forward. //buffer recording variables boolean toggle = 0. I don't need to specifiy which analog pin I want to read from (0 is default) ADCSRA |= (1 << ADPS2) | (1 << ADPS0)." and "wet" and "dry. int wetDryPot. //enable interrupts when measurement complete ADCSRA |= (1 << ADEN). //enabble auto trigger ADCSRA |= (1 << ADIE). int scalePot. byte multiplier = 0.instructables. The only changes I've made here is to add some code which allows the pots and switches on the device to change the value of a few variables: "scale. //set ADC clock with 32 prescaler." "grain. int grain = 500.com/id/RadioShack-presents-18-More-Awesome-Projects/ . ADCSRB = 0.//store incoming if (ADCH == 0 || ADCH == 1023){//if clipping PORTB |= 32. boolean rec = 1.//diable interrupts //set up continuous sampling of analog pin 0 //clear ADCSRA and ADCSRB registers ADCSRA = 0.//set pin 13 high clippingCounter = 5000. you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. byte buffer2[500]. either version 3 of the License.com/id/Arduino-Vocal-Effects-Box/ //Aug 2012 /* * This program is free software.//set digital pins 10-13 as outputs. 9 as input DDRC=0x00." "forward. //reverse switch variables boolean forward = 0.//reset clipping counter clipping = 1. //clipping indicator variables boolean clipping.//currently clipping } if (forward){//forward http://www. int newScale = scale. void setup(){ DDRD=0xFE. * */ /* pots: wet/dry grain size pitch shift */ //audio storage byte buffer1[500].//Clear ADMUX register ADMUX |= (1 << REFS0).//enable interrupts } ISR(ADC_vect) {//when new ADC value ready if (rec){ if (toggle){ buffer1[i] = ADCH.

//update scale grain = newGrain.//increment i iscale = i*10/scale-grain*multiplier.//send out DAC } } } else{ if (toggle){ if (forward){ PORTD = (wet*int(buffer2[iscale])+dry*int(ADCH))>>4. if (i==grain){ rec = 0.com/id/RadioShack-presents-18-More-Awesome-Projects/ .//update grain dry = newWetDry. } } else{ i = 0.//try removing this rec = 1.//update grain dry = newWetDry. toggle ^= 1.//try removing this rec = 1.//send out DAC } } else{ if (forward){ PORTD = (wet*int(buffer1[iscale])+dry*int(ADCH))>>4. iscalerev = grain-1.//send out DAC } else{ PORTD = (wet*int(buffer1[iscalerev])+dry*int(ADCH))>>4.//send out DAC } else{//reverse PORTD = (wet*int(buffer2[iscalerev])+dry*int(ADCH))>>4.//send out DAC } else{ PORTD = (wet*int(buffer2[iscalerev])+dry*int(ADCH))>>4. iscale = 0. } void checkGrainSize(){ PORTB & 247. iscalerev = grain-1. multiplier++.//update direction scale = newScale.//set pin 11 low grainPot = 0. } } if (clipping){ clippingCounter--. iscalerev = grain-1. forward = newForward. while(digitalRead(11)){ http://www.//update wet dry wet = 16-dry. multiplier = 0.instructables.//send out DAC } } } i++.//reset clipping counter clipping = 1. } newScale = scalePot+2. multiplier = 0.//set pin 13 high clippingCounter = 5000.//send out DAC } } else{ buffer2[i] = ADCH.//set pin 10 low scalePot = 0. PORTD = (wet*int(buffer2[iscale])+dry*int(ADCH))>>4. iscale = 0.//stop recording } if (i>=(grain*scale/10)){ if (scale<10){ if (i==grain){ i = 0.//update wet dry wet = 16-dry.//update scale grain = newGrain. while(digitalRead(10)){ scalePot++. } else if (iscale>=grain){ iscale = 0.//send out DAC } else{ PORTD = (wet*int(buffer1[iscalerev])+dry*int(ADCH))>>4.//update direction scale = newScale.//currently clipping } if (forward){ PORTD = (wet*int(buffer1[iscale])+dry*int(ADCH))>>4.//store incoming if (ADCH == 0 || ADCH == 1023){//if clipping PORTB |= 32. forward = newForward. iscalerev = grain-iscale-1. toggle ^= 1.//decrement clipping counter } } void checkScale(){ PORTB & 251.

checkWetDry().instructables.//turn off clipping led indicator (pin 13) } } DDRB=0xFD. } } void loop(){ if (clipping){//if currently clipping if (clippingCounter<=0){//if enough time has passed since clipping clipping = 0.com/id/RadioShack-presents-18-More-Awesome-Projects/ .//set pins 10-12 as inputs checkScale(). } newGrain = grainPot*25. } newWetDry = wetDryPot/10.//scale down to 16 } void checkRev(){//check reverse switch if (digitalRead(9)){ newForward = 1.//from 0 to ~185 } if (wetDryPot < 10){ wetDryPot = 0.//set pins 10-12 as outputs PORTB |= 28. while(digitalRead(12)){ wetDryPot++.//check reverse switch DDRB= 0xE1.//set pins 10-12 high delay(1). } void checkWetDry(){ PORTB & 239.//not currently clipping PORTB & 223.//set pin 12 low wetDryPot = 0. } else if (grainPot > 20){ grainPot = 20. } http://www. } else if (wetDryPot > 160){ wetDryPot = 160. } else{ newForward = 0.//wait for capacitor to discharge checkRev(). } if (grainPot < 1){ grainPot = 1. grainPot++. checkGrainSize().

Lyrics From Arduino Hoboman Videogame Portable Mini by jimmmm Making MOST Songs by SquawkBox .an Powered by Professional algorithmic beat Audio by helava Vocal Booth by DancerBoi humanworkshop alinke Voice Overs box using a toy using Garage voice recorder Band and by darwingrosse IMovie (video) by howtomac http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Related Instructables Making a "Soft- The Lightning Vocal" Simulator/Breathalyzer/Graphic Remove The Instrumental in Designing Possessed Audacity by Awesome Little Monster Equalizer .instructables.

an Arduino. It uses a parallax digital compass module. 2012 Author:amandaghassaei amandaghassaei.instructables. or the position of the sun. (1x) Parallax 3-Axis Compass Module Radioshack 276-123 (1x) 85dB Piezo Buzzer Radioshack 273-060 (1x) Arduino Uno REV 3 Radioshack 276-128 (1x) 9V Alkaline Battery Radioshack #23-866 (1x) Heavy-Duty 9V Snap Connectors Radioshack #270-324 (1x) PC Board with Copper Radioshack #276-147 (1x) SPST PC-Mountable Submini Toggle Switch Radioshack #275-645 (2x) Male Header Pins Jameco 103393 (1x) Female Pin Sockets Jameco 308567 (1x) 9-Volt Battery Holder Radioshack 270-326 Additional Materials: Heat Shrink Radioshack #278-1611 22 Gauge Wire Radioshack #278-1224 Solder Radioshack #64-013 zip ties Drill Screwdriver 4-40 x 1" nuts and bolts http://www. there are still many ways that we can improve our sense of spatial orientation.Bicycle North Indicator by amandaghassaei on July 23. This project is an attachment to your bicycle that beeps to let you know that you are moving in the direction of magnetic north. moon. air currents. Although humans do not seem to posses the same biological mechanisms that allow other animals to sense magnetic fields. and a piezo buzzer to give you directional feedback as you bike. and stars. inclines. The basic idea here is that by providing a constant source of stimuli in a certain direction. you might find yourself becoming more aware of other visual or sensory cues in your commute that indicate your orientation: geographical landmarks.com Currently working for instructables! Intro: Bicycle North Indicator Magnetoception is the ability of some animals to detect magnetic fields as a means of orienting themselves.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

54mm spacing. 9V battery Step 2: Solder header pins to perf board Solder three rows of header pins to the copper side of the perf board so that the Arduino snaps on. Image Notes 1. It will print the raw x. // Set operating mode to continuous Wire. analog inputs. and digital i/o 0-7. and SDA to Analog 4 as indicated in the schematic above.begin(9600).h> #define Addr 0x1E // 7-bit address of HMC5883 compass void setup() { Serial. Image Notes 1.Step 1: Schematic The schematic above shows how simple this project is.begin(). and z data from the compass chip (the directions are indicated on the chip in figure 4). // Power up delay Wire. header pins Step 3: Parallax compass Solder a row of 5 female sockets on the protoboard as shown in the images above.instructables. but it is necessary so that the compass module can snap on the perf board without touching the Arduino. pins to compass module 2. A 9V battery and switch are connected in series to the Vin and ground pins of the Arduino. I did not solder header pins for pins 8-13 because the spacing between digital pins 7 and 8 is not the standard 2. It is a little challenging to solder the header pins to the copper side of the board (I got some extra solder on some of the copper pads). Connect the pin labelled ground to Arduino's ground. power switch 4. delay(100). the piezo buzzer is controlled by Arduino digital pin 7. Upload the following code onto the Arduino. piezo buzzer 3. The Arduino supplies power to two pins of the compass module (see note in the image above) and analog pins A4 and A5 are used to receive data from the compass module. y. SCL to Analog 5.this is the power supply for the project. The Parallax compass chip should fit nicely in this socket. #include <Wire.beginTransmission(Addr).com/id/RadioShack-presents-18-More-Awesome-Projects/ . header pins 2. I found this code on the parallax website . If you have wired everything correctly you should see the raw data printed on your serial monitor (control/command+shift+m) in the Arduino IDE. http://www. Vin to Arduino's 5V. The headers pins should fit inside the Arduino's power pins.

read(). follow these pin labels 2. Wire.read() << 8 | Wire.read() << 8 | Wire. y.print(y). z.print(". Wire.read() << 8 | Wire. direction indicators http://www. Serial.read(). Wire.println(z).endTransmission(). y = Wire. delay(500). z = Wire. Wire.write(byte(0x02)). Y=").write(byte(0x00)). Serial. Serial. Serial. // Request 6 bytes. // Initiate communications with compass Wire. } // Print raw values Serial.write(byte(0x03)). Wire.endTransmission().com/id/RadioShack-presents-18-More-Awesome-Projects/ .beginTransmission(Addr). } void loop() { int x.print(x).instructables. Serial. // Send request to X MSB register Wire.read(). } Image Notes 1.requestFrom(Addr.available() <=6) { // If 6 bytes available x = Wire. Z=").print("X="). 2 bytes per axis if(Wire.print(". 6).

http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

//storage variable for direction int x. Step 6: Firmware Here is the final firmware. int z. I chose the values of xVal. just somewhat quieter. If you really want to run the buzzer at 9V. int zVal = -115. int yVal = 300. When the incoming directional values from the compass module equal the values of xVal. #include <Wire.h> #define Addr 0x1E // 7-bit address of HMC5883 compass boolean buzzer = 0. Solder the black wire to Arduino ground. and zVal based on the output I saw from the code from step 3 when I had the +x direction pointed vertically up. and zVal. yVal.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Step 4: Piezo buzzer The piezo buzzer says that it should run off a 9-16V supply. Solder the red lead from the battery snap to one of the outside pins on the switch. I didn't necessarily want it to buzz at maximum loudness so it worked out well to hook it directly to one of the Arduino's digital pins for this project. the Arduino turns the piezo buzzer on. you can wire it up with a transistor to the battery supply and use a transistor to switch it on and off. Solder the red lead from the piezo buzzer to digital pin 7. int tolerance = 90. int y. Step 5: Power connections Connect the switch in series with the battery so that it becomes an on/off switch. //calibrate these int xVal = -185. The piezo buzzer automatically buzzes at ~1Hz. and the -y direction pointed towards north and parallel to the ground. You might find that different values work better for you. Solder the black lead from the battery snap to Arduino ground.instructables. The variable "tolerance" sets the sensitivity of the device. yVal. you may want to increase or decrease this depending on what you like. but if you hook it up to 5V it will still run. Solder a red wire between the middle pin of the switch and the Vin pin on the Arduino.//adjust to change sensitivity void setup() { http://www. You can upload the code below if you want to hear the full buzzing potential of the buzzer.

pinMode(7.print(".OUTPUT). } delay(500).print(". Y=").print(y).com/id/RadioShack-presents-18-More-Awesome-Projects/ . int zVal = -115. // Initiate communications with compass Wire.print("X="). Wire. int y. 6). Wire. Serial.//adjust to change sensitivity void setup() { Wire.begin(). Wire. Wire. } I found this buzzing to be a bit much so I pulsed power on and off to the buzzer to quiet it a bit. } } else{ buzzer = 0.read() << 8 | Wire.begin(9600).read().read(). Wire. Wire. } void loop() { Serial.OUTPUT).beginTransmission(Addr).write(byte(0x00)).h> #define Addr 0x1E // 7-bit address of HMC5883 compass boolean buzzer = 0. Wire. // Set operating mode to continuous Wire. // Set operating mode to continuous Wire.write(byte(0x02)). } if (buzzer){ digitalWrite(7. // Request 6 bytes.HIGH). See the code below: #include <Wire. Serial. Wire. int yVal = 300.beginTransmission(Addr).read() << 8 | Wire. int z. } http://www.beginTransmission(Addr). Serial. Wire. Z="). int tolerance = 90. Serial.read(). 2 bytes per axis if(Wire. Serial.begin().write(byte(0x00)). //calibrate these int xVal = -185.begin(9600).println(z).write(byte(0x03)). } } else{ buzzer = 0. } else{ buzzer = 0.LOW). z = Wire.write(byte(0x02)). Serial. //storage variable for direction int x.requestFrom(Addr.available() <=6) { // If 6 bytes available x = Wire. y = Wire. } if (abs(xVal-x)<tolerance){// if (abs(yVal-y)<tolerance){ if (abs(zVal-z)<tolerance){ buzzer = 1.read() << 8 | Wire.endTransmission().endTransmission().endTransmission().print(x). pinMode(7.instructables. } else{ digitalWrite(7. // Send request to X MSB register Wire. Serial.

print("X=").print(".read() << 8 | Wire.read().read() << 8 | Wire.endTransmission(). Wire.HIGH). } if (buzzer){ digitalWrite(7. Wire. y = Wire. z = Wire. } http://www.print(y).LOW).void loop() { Serial.available() <=6) { // If 6 bytes available x = Wire. Serial. Serial. Z="). // Send request to X MSB register Wire. } } else{ buzzer = 0. } if (abs(xVal-x)<tolerance){ if (abs(yVal-y)<tolerance){ if (abs(zVal-z)<tolerance){ buzzer = 1.print(". } delay(500). } } else{ buzzer = 0. // Request 6 bytes. delay(100).instructables.write(byte(0x03)). Serial. } else{ buzzer = 0.read() << 8 | Wire.read(). 6). Serial.beginTransmission(Addr). // Initiate communications with compass Wire. 2 bytes per axis if(Wire.com/id/RadioShack-presents-18-More-Awesome-Projects/ .print(x).println(z).read(). digitalWrite(7. Y=").requestFrom(Addr. Serial.

Make sure to orient the arduino so that the x axis of the parallax chip is parallel to the long edge of the project enclosure (fig 3). use two nuts and bolts to fasten the piezo buzzer to the enclosure lid http://www. piezo buzzer.instructables.Step 7: Secure arduino. Attach the 9V battery holder securely to the bottom of the project enclosure project enclosure with a 4-40 x 3/8" nut and bolt. Image Notes 1. the x axis of the parallax chip should be parallel to the long edge of the 1.com/id/RadioShack-presents-18-More-Awesome-Projects/ . buzzer. and battery clip to enclosure Lay out the arduino. Image Notes 1. and battery clip onto the lid of the project enclosure and mark out the position of the mounting holes. Drill these holes fasten the components down with nuts and bolts as shown in the images above. fasten the arduino down with 4 nuts and bolts Image Notes Image Notes 1.

instructables.Step 8: Install switch Drill a hole in the bottom of the project enclosure and mount the power switch by securing it with a nut. http://www. Step 9: Secure the lid of the enclosure with 4 screws.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

for Wiring and How to Navigate Portable Sun by CpHarding AlleyCats: r10n Tracking Solar Treasure Hunts serving food programming with a Map and and drinks by the Parallax Compass by Panel With A On Your RFID Serial Windup Clock Bicycle. Don't forget to turn off the project when you are not using it or you will drain the battery quickly! Related Instructables Arduino Bike Steampunk Speedometer by Poor Mans GPS Geocaching by amandaghassaei ServerBot .com/id/RadioShack-presents-18-More-Awesome-Projects/ . Line up the project enclosure so that the front of the bike points in the same direction as -Y on the parallax chip.Step 10: Attach to bike Use zip ties to secure the project to your bike.instructables. by JoeCreate zwild1 Card Reader for Drive by Gareth0123 the Arduino by shastalore Kev_MacD http://www.

my phone and my camera. Once I discovered there was a way for me to use my iPhone as a camera remote with the DSLRbot app. Intro: IPhone Camera Remote As a an avid photographer.instructables.com i work at instructables! i make things with technology. I knew I could easily build my own remote trigger for my DSLR with Radio Shack parts. I carry two things on me constantly . and play electric ukulele. 2012 Author:audreyobscura audreyObscura.iPhone Camera Remote by audreyobscura on July 19. eat pho. Step 1: Materials http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

http://www.Step 2: File Down the LEDs To get the LEDs to be flush with each other. I ground down about an eighth inch of material from the LED using a metal file. I filed down one of the sides one each one. Holding the LED so that the positive lead was to the right.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables.

it goes a long way.Step 3: Glue the LEDs together I used a quick-setting two-part epoxy to glue the two filed down sides together. Please see the schematic attached to this step.com/id/RadioShack-presents-18-More-Awesome-Projects/ . snip the end of a popsicle stick or coffee stir to thoroughly mix both parts of the epoxy together. Then. To mix the epoxy. and allow to sit for 30 minutes. gently squeeze out of the tube on to a piece of wood or cardbord. http://www. You just need a little bit. so you need to file down the same side on each LED. REMEMBER: The LED's leads are wired in reverse parallel. and vice versa.instructables. The long positive lead from one LED must be wired to the short negative lead of the other LED. Gently apply a small amount of epoxy to the LEDs' filed down edges.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

and split it in half to accommodate for the LEDs I would be putting in there. I ground down the end I just snipped off to make it even again. and then snip the end off where the cord comes out of. http://www. Lastly. Using the metal file again.Step 4: Prepare the headphone jack Take the sleeve off of the headphone jack by unscrewing it.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. I took a box-cutter.

I bent the leads of each LED towards each other. then solder them together at a very high spot close to the plastic dome of the LED. After the epoxy had set. and to the headphone jack. so I effectively had two leads for two LEDs (instead of four leads).instructables. I then threaded the leads through the holes of the stereo jack.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and soldered them into place. http://www. After I soldered them to each other I trimmed a lead from each end.Step 5: Solder LEDs to eachother.

I took the cut plastic casing for the plug and re-sleeved the stereo connector with it.com/id/RadioShack-presents-18-More-Awesome-Projects/ . After the metal components had the original plastic on it. There are many ways to seal heat-shrink.Step 6: Re-Sleeve the headphone plug with heat shrink. I personally like doing it with the barrel of a soldering iron. there was still a gap. and I have even seen it done with butane lighters. Others will tell you to do it with a heat-gun.instructables. and slid it around the original plastic. I cut a small piece of 1" heat shrink. http://www.

com/id/RadioShack-presents-18-More-Awesome-Projects/ . a wireless remote. http://www. this app is extremely handy. and you can be line-of-sight to the camera from your iPhone.Step 7: Get the app and take pictures.instructables. There is an app available for iPhone called DSLRbot. With this app you are able to turn your iPhone into an intervolometer. and even a shutter release for bulb modes on Canon and Nikon cameras. As long as your camera has an infrared module long on the front of it.

.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .Related Instructables See Infrared Long-Range Wired Remote Remote Canon LED Light with Canon DSLR Poor Man's Cell Control for DSLR Video Phone IR Filter Increase The Nightlight IR IR an iPhone 4. by Video Trigger Sony NEX 5n Trigger by herx by elmotactics Sensitivity of IR Detector Hack TechShopJim (V2.. greatly Remote Control Detector by Camera by simplified) by (Photos) by comodore JacePriester by bustatech herx yardleydobon http://www.

Step 1: Tools and Materials (x2) 741 OpAmps (Radioshack Catalog #: 276-007 ) (x1) 9V Relay (Radioshack Catalog #: 275-005 ) (xvar) jumper wires (Radioshack Catalog #: 276-102 ) (x2) Heavy duty 9V battery clips (Radioshack Catalog #: 270-324 ) (x2) 9V batteries (Radioshack Catalog #: 23-866 ) (x1) Prototyping PCB (Radioshack Catalog #: 276-170 ) (x1) Piezo Buzzer (Radioshack Catalog #: 273-080 ) (x1) 5K Ohm Potentiometer (Radioshack Catalog #: 271-1714 ) (x1) Potentiometer cap (Radioshack Catalog #: 274-415 ) (x1) 470 Ohm Resistor (Radioshack Catalog #: 271-1317 ) (x1) 3" diameter acrylic tube (x1) Magnet (Radioshack Catalog #: 64-1888 ) (xvar) lamp-pull ball-chain Tools: Solder Soldering Iron Wire Snips Hot Glue Gun I used a laser cutter to make my own personal enclosure.Earthquake Detector by audreyobscura on July 18.com/id/RadioShack-presents-18-More-Awesome-Projects/ . eat pho. I love them and fear them at the same time! Earthquakes are exciting. and play electric ukulele. but one could easily modify a pre-made project enclosure to suit the needs of this project. Intro: Earthquake Detector I grew up in California.instructables. http://www. there are earthquakes all the time that most people don't even feel! That is why I decided to build this Earthquake Detector. Living in such a seismically active state.com i work at instructables! i make things with technology. 2012 Author:audreyobscura audreyObscura. but also mysterious. and have had the fortune of experiencing every major earthquake in this state since I was born.

I then soldered wires from each of the leads from the coil. I trimmed all of the leads off of the relay except the ones that attach to both ends of the coil. and the LED to illuminate.com/id/RadioShack-presents-18-More-Awesome-Projects/ . http://www. The magnet sways when the earth moves. triggering the piezo buzzer to sound. The purpose of the magnet coil in this circuit is to detect when the hanging magnet from the cylinder passes over it. the rest of the pins are not needed.instructables.Step 2: Modify the 9V relay The only part needed from the 9v Relay is the magnet coil.

After it was in place. It is attached to this step of the instructable.3" thick acrylic sheets to make the housing. I placed the relay into it's nook. with holes for the piezo buzzer. I knew that I could make a 2.Step 3: Create a home for the 9V relay.95" circle with a relay-sized rectangle cut out of it to perfectly house my relay in the middle of the tube. The file has 6 sides. I glued my relay into it's home in the round.com/id/RadioShack-presents-18-More-Awesome-Projects/ . LED. and then used . I soldered a wire from each of the leads. Because I knew I was using a 3" acrylic tube to hang my magnet in.instructables. that will later be inserted into the tube. After I had my laser-cut parts. One of the many perks of using a laser cutter is being able to make precision housing for your project. Using CorelDraw. then hot-glued it into place. I generated a series of files for the enclosure. http://www. and the acrylic tube.

http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .

rename it to 'earthquakeforweb. if you see .eps'] http://www.eps (8 MB) [NOTE: When saving.com/id/RadioShack-presents-18-More-Awesome-Projects/ .File Downloads earthquakeforweb.tmp as the file ext.instructables.

9V 2.rail. I soldered the other battery clip in by connecting the red positive wire next to the negative wire of the other clip. I designated one ground rail. one 9v + rail. and took the black negative wire of the same clip and soldered it to the lower part of column 47. Image Notes 1. and the black wire to the clip of the bottom rail. GND rail Step 6: Solder the 741 op Amps I aligned the tops of the ICs with column 10 and 35 on the PCB. I soldered the red positive wire from one battery clip to the top rail of the PCB.instructables. and another 9V .Step 4: The Circuit Here is the circuit diagram I used for this project. I then soldered each IC into http://www.com/id/RadioShack-presents-18-More-Awesome-Projects/ . so that they were straddling the center divider of the board. 9V- 3. There is also a fritzing file attached. Step 5: Connecting two batteries to the PCB I used two Heavy Duty 9v Battery Clips.

When the magnet coil is activated in the relay. and pin 7 goes to the +9V rail. Pin 3 is Non-Inverted input of the OpAmp.instructables. Step 9: Solder the relay . Using a jumper wire. http://www. pin 4 goes to the -9V rail. Solder the relay coil into pin 2 and pin 3 of the left IC. Pin 3 on the left opAmp IC gets connected to the grounded rail that was established in column 47 of the PCB. The OpAmp IC on the left will be outputting to pin 3 on the other IC. I used jumper wires to connect the span between the pins and rails. and Pin 3 to GND The output pin on 741 OpAmp is pin 6. this is how the circuit communicates that motion from the sensor. This is essentially reading the shifting output of the magnetic coil inside the relay. Step 8: Pin 6 to Pin 3. and comparing it to a normalized value. I connected pin 6 of the left chip.com/id/RadioShack-presents-18-More-Awesome-Projects/ . to pin 3 of the right chip.Step 7: Pin 4 and 7 On each of the OpAmps.

Step 10: Potentiometer I wired the left pin of the potentiometer to 9V+. the right pin to 9V-.com/id/RadioShack-presents-18-More-Awesome-Projects/ . and the middle pin to pin 2 of the riht OpAmp IC. http://www.instructables.

to positive lead of the LED 2. you can see that it wants to stick to the relay. http://www. I ran a 470 Ohm resistor from the 9V+ rail. I then ripped off all of the paper that was protecting the enclosure from oils and scratches I punched a small hole in the lid of the acrylic tube with a nail.Step 11: Wire Buzzer and LED I was able to sink the LED and Piezo buzzer into the enclosure the same way I sunk the 9V relay into the housing. You want to hang the magnet so that it almost touches. Image Notes 1. I built out the bottom of the enclosure. Both the LED and Piezo buzzer's negative lead run to the output pin (6) of the right IC. and then hot-glued it into place. and then ran the lamp chain with a magnet hot-glued to it so that the magnet just hovered over the relay coil. and connected that resistor to the positive lead of the LED. I made sure it was flush with the outward-facing side. but it doesn't actually magnetize to the component. and then set in the lid with components attached to the bottom.com/id/RadioShack-presents-18-More-Awesome-Projects/ . to positive lead of buzzer Step 12: Assemble the enclosure & Sink the magnet to the relay coil into the tube.instructables.

instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .http://www.

Step 13: Implementation A good way to test this circuit is by jumping on the ground. and big trucks are going by!) Related Instructables Arduino Seismic Activity Build a Monitor .. Laser Beam A magnetic field Insect Ethernet Shield Indicator by Seismometer sensitive Alarm System strenght audible Eavesdropper: by veedo Pickups by amandaghassaei Creating a High- for under $15 by digitizing probe by norbizzle12 indicator by rbneville Gain Parabolic bikeframe for cnc. You may have noticed that there is no power switch integrated into this design . even if you cannot feel it.com/id/RadioShack-presents-18-More-Awesome-Projects/ .instructables. and adjusting the sensitivity potentiometer that way. 5Volt harkman's Microphone by probe (Photos) nevdull http://www. Acoustic Guitar Bicycle North Pendulum Diy Piezo cheap. super. (It will also tell you when trains. and so that one can always know when an earthquake is happening..this is so the device is always on.

by harkman http://www.instructables.com/id/RadioShack-presents-18-More-Awesome-Projects/ .