Mini STEM LED Game Platform

931

6

3

Introduction: Mini STEM LED Game Platform

About: Professional Software, Hardware, Systems Engineer for more than 40 years. Amateur Radio HAM (KI7NEW)

This is an easy build of an Arduino driven LED bar display with four buttons and piezo audio out; which can be assembled by kids and beginners.
It is intended to be part of and a platform for STEM instruction. For those only needing sample code or wanting immediate utility, I have provided software downloads for a hardware/software interface support library (providing multiply LED brightness and sound levels) along with high level code for a half dozen games and activities.

This is a simple mini STEM (Science Technology Engineering and Math) project platform, which can be used as the basis for an educational STEM/maker class in elementary, summer camp or middle school. Let's not forget about home tutoring. No soldering, hot iron or glue gun is needed.

In addition, it is very inexpensive, lending itself to use in a large class room setting.
I have also created a software development instructional, set of lessons, which utilizes this hardware platform. Given here: STEM-Game-Platform Lesson Plan

Many may find that this platform is perfectly suited for a project they envisioned but have bulked at having to do all the wiring or write the low level hardware I/O support for it.

This build is also just a lot of fun for kids. As they love being able to make things themselves, as well as playing the accompanying LED games and mini apps. This micro-controller STEM/Game platform can be put together in less than an hour (given the header pins are already soldered on)
Unlike the more complex Arduino 12 LED-bar display gaming device, which it is somewhat akin to: instructables.com/id/Single-Line-LED-Display-Games. It is worth noting though, that games from it can be adapted for this platform. I did so for the “pingPong” game, included in the STEM_Platform_Games.ino sketch that is part of this project.

What allows for the construction of this to be especially easy is that of having worked out where the button and LED display modules could be directly lined up with pins of the Nano micro-controller module and still be operated as desired. The subsequent handling of the common button ground and the common LED +Voltage were very key.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Parts and Supplies

Obtain the needed parts and supplies listed below.

PARTS

  • Nano V3.0 ATmega328P Micro-Controller
  • 4 Keys Button Keypad Module for Arduino
  • 8 LED Bar Marquee Display Module with 4 colors for Arduino
  • 9mm dia. Piezoelectric Passive Buzzer Sounder
  • 170pin mini solderless breadboard

All of these components can be found on eBay for very reasonable cost. Just use the text I have given in your eBay search. Although the delivery time will likely be 4-8 weeks.

Note that some of the button modules have the header pins pre-soldered on the wrong side of the PCB for direct use in this project.


Sundry pieces . . .

  • A few inches of 22-24 ga. Solid jumper wire
  • Small sheet of 1/16-1/8 inch thick balsa wood, craft ply-wood or construction board.
  • Possibly solder and soldering supplies
  • For programming: access to a micro-USB cable and computer.
  • For mobile use: a small power-bank.

Step 2: Assembly

If you manage to get all of the first three main components with their header pins already soldered on, this project is otherwise done without any soldering. If some header pins are not already on and the intended maker is quite young or a student the soldering should be done for them in advance. Be sure that the headers are all on the desirable side of each module. As and if needed, refer to:
instructables.com/id/Solder-Arduino-Header-Pins-Easily

Notice that we are not going to use a box enclosure, for this project.
To create a more mechanically sound and sturdy final assembly, we split the prototype pin board and mounting on a substrate, underlying support layer (thin stiff sheet). This also gives us better access to more pins for potential later experimentation.

Cut the solderless breadboard in half.

Mount the Nano micro-controller module into the two pin-boards so it bridges them; starting two pins from the top. Leave revealed, as many pins as possible. See photo. Place this, micro controller + solderless breadboard, over a sheet of the chosen support material, outline it, then cut out this delineated section. Expose the sticky backs of the two sections of breadboard and press the whole assembly squarely on the 'wooden' piece.

On the breadboard with the Arduino Nano already inserted …

  1. Plug in a 1.75” wire connecting pin D13 to the top row of pins on the left side
  2. Plug in a 3.25” wire connecting the 5V pin to pin D10 (preferably a red wire)
  3. Insert the button module, with a pad beneath it (see photos for placement)
  4. Insert the LED bar display module
  5. Insert the piezoelectric sounder, noting that the + side goes in the top row & the other in the second

Noting the placement and alignment of components, in the photos above.
The button module interconnects to pins A1-A5 of the Nano micro-controller.
The Led bar pins interconnect to pins D2-D10 of the Nano micro-controller.
The piezo sounder (+ side) is connected to D13 via a wire and the other pin to D12.

Here is some detail information for greater understanding:
The Red wire, in the photos, provides +V to the common anodes at D10 (which will be set to Input mode, so as not to conflict).
The Blue wire is simply to route the Audio out at D13 over to the Piezo “speaker”.
No further wiring is used as the ground (-v) of the piezo and that of the button module are provided by the code driving the associated pins Low (at D12 & D15).

BTW: I added a small piece of electric tape over the power-on LED, as I found it distracting to the activity of the main LEDs. And when I am where &/or around others who are bothered by noise I place a piece of tape over the piezoelectric audio device.

Step 3: Testing

Support Software

Here is an include 'library' file, Mini_STEM_Platform.h, containing a set of standard functions and public variables which provide support (rudimentary API) for the button inputs, LED display and audio outputs. This enables an easy development of Games and mini Apps.

Also there is HW_test.ino provided to facilitate HardWare wiring verification and functional testing of the mini STEM-Game platform.

Testing your Construction

Download the attached sketch HW_test.ino plus Mini_STEM_Platform.h. Using the Arduino IDE, compile and download to your unit.
For more information on this process see: https://www.arduino.cc/en/Guide/ArduinoNano#toc2

To verify that all the component placements and interconnects are correct, run the sketch software observing and doing as follows:

  1. As it initializes, you should see the LEDS scan left to right in a Dim manner, followed by moderately being lit, then brightly, then off.
  2. Three sounds will be given … “Boop … Beep … buZZ”
  3. Test each of the buttons; there should be a chirp on press and release. For each, while pressed, two corresponding LEDs will light. The first 2 LEDs light for button-1 and the following two for button-2 and so on. Multiple simultaneous button presses should simply combine their effects, without interference.
  4. If no buttons are pressed for more than 10 seconds a “Hello, don't forget about me” beep will sound.
  5. A log of the button states can be seen in the serial monitor window.

If all behaves as described your unit is assembled and functioning properly. Congratulations.
That's it. You're done and ready to put your device to use.

Step 4: Sample Application Software

STEM_Platform_Games.ino has been included as sample use of the platform and includes six example mini apps. It also utilizes an updated include library file as used above, so a copy of it must be located in the same sketch folder.

The included video gives a brief demo of this sample application software.

Overview of the Sample Software

Menu: Btn1: select Btn2: < move cursor Left Btn3: > Right

#1 HW_Support_Demo
Demonstrates the provided LED display and audio support functions.
To make use of these effects for your own application refer to the code.

#2 Speed_Scan
The goal is to hit a button when a moving blip is at either the 5th or 6th LED.
The speed increases and your progress is indicated as you go.

#3 React_Now
Measure your Reaction time, by attempting to hit a button when the first LED lights up. The first LED is for 0-100 milli-secs, additional LEDs lit for every 20 msecs more it takes.

#4 SeeIt_TagIt
You must attempt to hit the associated button when an LED lights up, within limited given amount of time. If successful the LED will toggle On or Off.

#5 pingPong

Fun individual challenge & great two-player competitive game; where the ball (single blip of light) goes from one side to the other, faster and faster, each time it gets 'hit' back.

#6 FortuneTeller
Ask question, get divined response (Red: NO YEL: Maybe Grn: YES Blue: Try again)
Use btn2 for 1-6 ~ like dice, useful for determining one's fortune or options in games.

Full operational details are given in the attached manual: Platform_activity_manual.odt

This software is simply intended to stimulate your creative juices, and to go on and create your own applications and games. If you're not sure about how to effectively program for this device go through this set of software development training lessons (which is based on this device platform):
[future link]

Please share any games or interesting functionality you create utilizing this platform.

Last minute Note:
Some of the files have had an extra extension (of .txt) added to their file names, due to site upload errors "internal server error"; at the time this instrucable was being created.

Step 5: Alternate Construction Ideas

(update Jan 2020)

#1 Without cutting the breadboard in half

This can be done, but there won't be room enough to directly plug both of the leads of the piezo device in. You can see in photo #1 I have one lead hanging off the side, where I have a wire against it held by tension. This does let me slide the wire from underneath the lead to disable the sound. Other disadvantages are that LED and the key-button modules stick out more. This is especially an issue for the key module as it can rock back and forth under use, which may or may not become a problem with electrical connectivity.

#2 With an Enclosure and internal battery

I did one build with a small enclosure. The big issue was having access to the buttons, as well as good view of the LEDs. Putting holes through the case for buttons and lights would not work well with the modules. To not use the modules would be counter to the spirit of this project. So I cut slits in the top of the case to have the modules sit on the top with their pins going into the case. I also rotated each module 180 degrees to not stick out. Inside I reversed the wiring order for the module pins for short direct wiring. Currently the hardware support library file has commented out wiring assignment that will work for this configuration. I also packed in a Li-ion battery, charging circuitry and an On/Off switch. See the power wiring recommended in this Instructable:
Dual-Power-for-Your-Portable-Micro-Controller-Proj
Disadvantages are that it is no longer 'fast and easy' to build, that of having many wires, and needing to use a soldering iron. Not in line with the main goals of this Instructable.

Be the First to Share

    Recommendations

    • Magnets Challenge

      Magnets Challenge
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    3 Discussions

    0
    g3holliday
    g3holliday

    12 days ago

    I'm. going. to. make. this.

    0
    RonM9
    RonM9

    Reply 10 days ago

    Cool ! Looking forward to hearing about it. (I expect it will take a fair amount of time to acquire the components)

    0
    g3holliday
    g3holliday

    Reply 4 days ago

    Thank you.