-
Notifications
You must be signed in to change notification settings - Fork 0
An Arduino library for Spice camp (Oregon Center for Optical, Molecular, and Quantum Science), Pinball building activity
License
dileepvr/spice-pinball
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project has been released under a Modified MIT License, the text of which is presented in the accopanying file LICENSE.md. Future versions of the MIT license may not automatically apply. ******************************************************** 06-03-2014 - Entry by Dileep Reddy ******************************************************** This is a readme file for developers. New entries may be appended at the end with appropriate header containing date and author(s). This project is not being released with a license at the time of this entry. For updates on licensing, check the newer entries below. The project aims to create a simple Arduino library for use in the SPICE summer science camp for middle-school kids, being conducted by the Oregon Center for Optics, and partners on the campus of the University of Oregon every year. The library is meant to aid in the engineering branch of the camp, where teams of participants are expected to design and build Pinball tables using basic electronic sensors and circuits. The trunk consists of a folder named 'Pinball'. It consists of the following files: notes.h Pinball.cpp Pinball.h README and a subdirectory named 'examples', with sample programs that demonstrate the use of each new class defined in the library. To use this library via the standard arduino IDE, 1) Copy the entire 'Pinball' folder into the 'libraries' folder. 2) Begin your arduino script with the line: #include <Pinball.h> The library uses Arduino.h. So you'll need the arduino core library files along with the 'Pinball' library if you wish to compile it using avr-gcc. The camp uses the Arduino Uno dev boards, and hence the library is specific to ATMEGA168/328P chip pin-mappings. The planned usage is: * 3 Digital pins will be used to update the score on a custom score-board which uses shift registers. * 1 Digital pin will be used to play melodies on a speaker. * 3 Digital pins will be used to shift out digital control outputs to any number of shift latched registers in series. * 3 Digital pins will be used to address an 8-channel multiplexer to read digital sensor inputs. * 6 Analog input pins are to be used for optional analog sensors. * Remaining digital pins may be used any way the team chooses. As of this entry, there are two classes defined: Pb_speaker - Meant to play melodies asynchronously on a speaker. Pb_outputs - Meant to shift out byte-arrays to shift registers. End of entry ******************************************************** 06-09-2014 - Entry by Dileep Reddy ******************************************************** No license yet. New classes defined: Pb_switch - Meant to check for toggles with debouncing. Pb_stopwatch - Meant to keep time (milliseconds). ******************************************************** 06-17-2014 - Entry by Wesley Erickson ******************************************************** Added folder for printed circuit board designs in spice-pcb/ Added scoreboard pcb draft. ******************************************************** 06-19-2014 - Entry by Wesley Erickson ******************************************************** Finalized scoreboard pcb draft (and added speaker). Submitted gerber files stored in spice-pcb/scoreboard/order1.tar.gz ******************************************************** 06-21-2014 - Entry by Dileep Reddy ******************************************************** The project is now released under the MIT license. Added new class: Pb_timedevent - Can execute any 'void(* function)( int)' in a specified timed sequence, much like Pb_speaker. Added example (Pbtimedevent). Also modified Pb_speaker and Pb_timedevent to handle background loops. This can play a looping sequence (function or melody), and automatically pause it when new finite duration event/melody needs to be executed, and continue looping afterwards. See examples folder (Pbspeakerloop and Pbtimedeventloop) for more. Added a mariotracks.h file containing a melody for usage in examples. ******************************************************** 06-28-2014 - Entry by Dileep Reddy ******************************************************** Wes has added the following classes: Pb_display - To shift out 2-digit numbers to 7-segment display board that uses 74HC595 shift registers. Pb_motor - To control motor using L293D driver chips and pwm pins. Note that Pb_motor can conflict with the audio classes as Tone() uses Timer2. So it is best to avoid pins 3 and 11 for motor control. I added the following class: Pb_muxin - Probes (digitally) channels of 4051 8-channel multiplexer. Corresponding examples also created. ******************************************************** 06-29-2014 - Entry by Dileep Reddy ******************************************************** Fixed last-note/event-swallowed-by-loop bug in update routines of both Pb_speaker and Pb_timedevent. Fixed bug in Pb_switch. Now, it debounces falling edge only. Corrected Pb_speakerloop example (number of notes is 61, not 62). ******************************************************** 06-11-2015 - Entry by Dileep Reddy ******************************************************** Added support for new scoreboard with four 7-segment displays based on the TM1637 LED driver chip. Used code from TM1637Display library by [email protected] (released under GNU lesser public license). I believe that the lesser license allows use of his/her code in our library as long as we make original library available with original license, which is done as a subfolder. Check out Pbscoreboard.ino example file for list of features. Will add text support soon. ******************************************************** 07-05-2015 - Entry by Dileep Reddy ******************************************************** Added support of peak detection circuit PCB to be used in conjunction with piezo element. Very selfexplanatory. Gerber and PCB design files will soon be added to repo. Check out Pbpeakpiezo.ino example file for simple usage.
About
An Arduino library for Spice camp (Oregon Center for Optical, Molecular, and Quantum Science), Pinball building activity
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published