Go Down

Topic: My Arduino STEM Resources & demo to share (orig. given to teachers in a seminar) (Read 1 time) previous topic - next topic

panther3001

Summary:
Hi all, especially teachers, I want to share this with you.  The links below contain presentation materials I gave to about a dozen teachers that I taught a 3-hr Arduino seminar to.  It included a really cool, interactive demo (source code downloadable below), that I wrote which has an Arduino Leonardo type live into Microsoft word in order to interact with the user, while doing things like detecting motion (as a simulated house alarm), reading the room temp, measuring your height, moving a servo, and playing Mario music. I think the demo and materials are worth having as a teacher, and I encourage you to read below, download, and share the materials.

Details:
I am very passionate about Arduino, and I also enjoy teaching and sharing pretty much anything I learn (see my website, www.ElectricRCAircraftGuy.com, for instance, and this will become apparent), especially when it has the power to lift people up and help them build better futures. I'm an aerospace research engineer, and about a year ago I had the opportunity to teach about a dozen high school teachers during a several-day seminar, over the summer, to provide local middle and high school teachers with STEM (Science, Technology, Engineering, and Math) resources to help them better prepare our youth for tomorrow. This was a very rewarding experience, and I was able to help each teacher who participated walk away with a free Arduino starter kit made by Vilros (this exact kit here), as well as several other pieces we purchased for each person, including an Arduino Leonardo.

I put several dozen hours into my preparation materials and lesson plan, so I feel like the lesson went very well. I only had about 3 hrs with the teachers for my portion of the seminar, so I knew I couldn't teach solid Arduino programming in only 3 hrs. Instead, I decided that my primary purpose during this time should be to awe and inspire the teachers into thinking Arduino was so cool, that they'd have to try it out and share it with their students too. The bulk of my presentation included a lengthy demo using nearly every part in the Vilros kit, so that the teachers could interact with the *results* of a well-prepared (hopefully impressive), Arduino demo, and hopefully get excited about it and inspired to learn it on their own. After my lengthy interactive demo, I then showed them where to download the IDE (Arduino software), and we went through a few basic coding examples. I know the teachers really enjoyed my presentation, and several told me so, but I don't know if it had any lasting effects or spurred them to action. In either case, I hope it did.

So, that brings me here. I'd like to share my hard work with more than only 12 teachers, so please look at my materials and share them with anyone you know who's involved with teaching, so we can do more community outreach and teach more kids about things like Arduino, Raspberry PI, programming, electronics, etc.--real, powerful tools which can get them jobs, change their lives, and shape our future.

Here's the code and resources I put together (downloadable from Google Drive): http://bit.ly/ArduinoSTEMDVD_GS --> then click the download link at the top of the page
-Note: it includes a lot of stuff, even videos showing Arduino in use in engineering applications, so the download is 1.7GB, which is quite large.
-During my presentation, I explained the concept of "open-source" hardware and software, as well as "copy-left" and the GPL license.  So, I included some other useful software on the DVD too.

CONTENT:
-the below list of content is NOT complete, it is simply a sneak peak of some highlights of the content downloadable via the link above

The root directory contains several folders, as well as the following two documents:
1) List of Helpful ''Getting Started'' Links for Arduino (incl Ebay & Shopping Tips!) - Gabriel.pdf

2) STEM Workshop Order List - Gabriel.xlsx - this is all my materials purchased for the seminar

Under the folder "Arduino\Engineering Videos & Presentations" you'll find a few interesting engineering videos where Arduino either is currently being used, or could be used, and where microcontrollers of course *are* being used.

Under "Arduino\What is Arduino" you can find Massimo Banzi's TED talk about Arduino, as well as the MakeyMakey video intro.

My main demonstration code is found under "Arduino\Sketches\Gabriel's Main Demo".
There are a few pictures of the setup here too. Here's one:


Under "Arduino\Sketches" you can also find a few of my practice sketches (code), and the code for all of the lessons in the Vilros starter kit previously mentioned.

There is also a "Soldering & Electronics" folder that contains a bunch of info and links, and this article I wrote later is useful to people who need to get started in soldering too. It contains example soldering equipment, and links to tutorials:
Recommended Soldering Kit & Tutorials (for Arduino, Electronics, & Radio Control).

MAIN CODE FOR DEMO

-My demo requires basically the Vilros kit, an Arduino Leonardo, and an ultrasonic rangefinder ("ping" sensor).

The code is found here: "Arduino\Sketches\Gabriel's Main Demo\Arduino_cool_Leonardo_class_demoFINAL\Arduino_cool_Leonardo_class_demoFINAL.ino"
-The code is well-documented, and explains how to hook up all the sensors in the comments at the top of the code.
-The code must be compiled and run in two separate demos, since it was too large to all fit all at once on the Leonardo.  
--To choose which demo to run, simply change the "DEMO_NUMBER" value at the top of the code, under the comments.

DEMO OUTPUT

So, just how impressive is this demo?  Well, if you are running Windows, the demo will actually use the Leonardo to automatically open up Microsoft Word, and begin typing.  It is totally interactive, via a pushbutton, and it tells you what to do, then does it, then prints the output of what just happened by actually typing directly into Microsoft Word.  In some cases, it prints the characters slowly to the screen, as if a person was typing.  See the demo files here: "Arduino\Sketches\Gabriel's Main Demo\Hello Gabriel - Demo1 sample.docx" and here "Arduino\Sketches\Gabriel's Main Demo\Hello Gabriel - Demo1 sample.docx" to see example outputs during the interactive demonstrations.

I really hope more teachers and people can benefit from this, and try out and enjoy this demonstration!



PS. if anyone would like to modify the code, let me know and I'll post it on github.


Sincerely,


Gabriel Staples
www.ElectricRCAircraftGuy.com
Visit my RC aircraft, electronics, & Arduino website at http://www.electricrcaircraftguy.com

panther3001

Here are the two output files, showing what the demo has the Arduino Leonardo type into Microsoft Word (or any other text editor you may have....though I programmed the sketch to type shortcuts specific to MS Word to do things like change font size, color, etc, *live*, in front of you!). 

-The live effect is pretty cool, for instance, as the font will actually get highlighted, and automatically start changing colors and sizes, as the Leonardo actuates the commands to do so.

See attached files for the final results.
Visit my RC aircraft, electronics, & Arduino website at http://www.electricrcaircraftguy.com

panther3001

===============================================
Sample output from Demo 1
===============================================
 
Hello Gabriel!  How are you doing???
 
I'm watching you.
That's right.
I'm watching you…
 
I am in your computer J
I can change your font.
I am black font.
I am green.
I am blue.
I am back to normal
 
Would you like to play a game?
 
Before you say "yes," have the instructor point out the various parts (sensors, electronics, components, etc), connected to me, and ask him what they do.
 
Can you identify the following?
1.    Arduino Leonardo
2.    Breadboard
3.    Jumper cables
4.    Ultrasonic rangefinder ("ping" sensor)
5.    TMP36 analog temperature sensor (ie: a thermometer)
6.    Photoresistor (light sensor)
7.    Tri-color LED (RGB LED), and resistors
8.    Piezo buzzer
9.    Potentiometer (ie: a variable resistor, or user input knob)
10.                       Servo motor/actuator
11.                       Pushbutton
 
(When ready, press the button connected to the Arduino Leonardo to continue.)
 
I have a whole bunch of cool sensors and things I can do, and I'd like to show you throughout a series of interactive demonstrations!
 
[FYI: The code I am running contains Demo #1.  To change the Demo #, you will have to recompile and upload new code to me.]
 
Skipping really cool mouse control demos since there are too many demos to fit on the Arduino all at one time.  Compile & run the other main demo code to see any skipped demos!
 
Now, let's read some of my sensors!  I think these are pretty neat too!
Let's start with my ultrasonic rangefinder, shall we?  It has a maximum range of 4~5 meters, or 12~16 ft.
In order to demonstrate another neat thing I can do, for the following paragraph, I'm going to type out the letters one-by-one, slowly, as if I was a human typing at your keyboard.
(Press my pushbutton to continue.)
 
Press the button for me to begin taking distance readings every 1 second.  Aim the ultrasonic rangefinder around the room to measure the distance to various objects.  When you are done, press the button again (you may have to HOLD THE BUTTON DOWN FOR A SECOND to get it to register this "stop command" press).  Be sure to try this too: hold the sensor high, up to your head, and aim it downwards at the floor, to measure your height, before pressing the button to move on!  Give others a chance too if they would like.  Again, press the button on my board to begin, and long-press it when you are done using this sensor.  I will output data 2x per second (ie: at 2 Hz).
 
(Press my pushbutton to continue; press and HOLD it to stop)
 
Ping time (us) = 1723, dist (in) = 11.54, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
Ping time (us) = 1719, dist (in) = 11.51, dist (ft) = 0.96
 
Ok, now it's time for me to demonstrate how I could be used to make a house alarm. Aim me right where you want me to look, at any surface *less than* ~10 ft away, then make sure I am well-secured, that no one is in front of me, and that I do not move. For this demo, you *will* get another chance to try it out in case you do a bad distance calibration. So, if it doesn't seem to work right, press the button to end, and I'll give you instructions to start it over again.
 
(When ready to calibrate and activate the alarm, press my pushbutton to continue, and then press it again to end my "alarm" mode, when done.)
 
ALARM ON.  My calibrated alarm distance value is 11.54 inches.  I have been programmed so that if I ever measure a future distance less than my calibrated value, minus 6 inches (in this case, 5.54 inches or less), it means that there is something blocking my path (ie: a human body), and so I will sound an alarm and assume there is an intruder in front of me!  Have people walk in front of me to see me in action!
 
ALARM, INTRUDER ALERT! - distance to intruder (in) = 5.08
 
ALARM OFF.
Visit my RC aircraft, electronics, & Arduino website at http://www.electricrcaircraftguy.com

panther3001

===================================================
Sample output from Demo 1 (continued)
===================================================
 
 
Would you like to redo the photoresistor calibration and repeat this light sensor demonstration? If so, press the pushbutton TWICE in a row (the 2nd press must occur within 3 seconds of the 1st press). Otherwise, press the button only once, then wait 3 seconds.
 
Button press count = 1
 
Exiting light sensor demo.
(Press my pushbutton to continue)
 
In this next demonstration, I'm going to be using an RGB (Red/Green/Blue) LED.  This means that a single LED case has all three of these LED colors built right in, as separate LEDs, but all in the same plastic case.  You can turn them on one at a time, or all at once, or whatever you want.  Additionally, using the analogWrite() command in Arduino, you can send a PWM (Pulse Width Modulation) signal to an LED to vary its brightness, or intensity.  Therefore, using one RGB LED you can mix different intensities of colored light and generate ANY color of the rainbow.  Let's see this in action!
 
(Press my pushbutton to see the red LED turn on).
 
(Now press my pushbutton to see only the green LED on).
(Now press my pushbutton to see only the blue LED on).
(Now press my pushbutton to see both the RED AND GREEN LED on.  This makes Yellow.  Practice on your own later to write code to make the RGB LED turn yellow, cyan and magenta).
 
Now press my pushbutton to see the RGB LED go through the whole rainbow, fading in and out of all of the colors!  Press the pushbutton again to stop this demo and continue on.
Rainbow ON.
The color progression is RED à (YELLOW) à GREEN à (CYAN) à BLUE à (MAGENTA) à RED
 
Rainbow OFF
 
Whew! Is it hot in here or just me? J My microprocessor seems to be getting all worked up over the excitement of all the cool things I can do! Let's check the room temp. w/my TMP36 analog temperature sensor (thermometer).  Gently squeeze the sensor w/your fingers to watch the temp. rise!
 
(Press my pushbutton to continue; press and HOLD it to stop)
 
Thermometer ON.
Room temp = 23.80 deg C, or 74.84 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.78 deg C, or 76.60 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Room temp = 24.29 deg C, or 75.72 deg F.
Thermometer OFF.
 
Cool stuff, let's keep going!
(Press the pushbutton to continue).
 
 
Skipping really cool servo (ex: robotic arm type actuator) demo since there are too many demos to fit on the Arduino all at one time.  Compile & run the other main demo code to see any skipped demos!
 
We are on the final demo!  I feel like we've really come close these past several minutes, you know, as we've learned together, so what do you say I serenade you with some of my favorite classical music, using my piezo buzzer?
 
There is no interaction required from you on this one; all you have to do is listen.  When the song is over, it will end automatically. Can you guess which song it might be?  PS. Before the music plays, I will do some sounds sweeps, fast, then slow, to demonstrate the range of notes I can play.
 
(Press the pushbutton to continue)
 
soundSweepFast START (To me, this sounds like the sound they make in cartoons when a character slips on a banana
soundSweepFast END
soundSweepSlow START
soundSweepSlow END
serenadeYouWithBeautifulMusic START
serenadeYouWithBeautifulMusic END
 
Before you go, let me give you a proper introduction:  I am an Arduino microcontroller development platform.  There are many types of Arduinos.  My type is called "Leonardo".  I am based on an Atmel ATmega32U4 microcontroller.  Today, in these demos, you have seen only a *tiny* sample of what I can do.  I can do ANYTHING you tell me to do.  ANYTHING you program me to do.  I can change the world.  I can change the way we live, but only if YOU make me do so.  Your students can change the world, they can learn and grow and CREATE, and make it a better place, but only if YOU help them learn to do so.  Let's all *strive* to improve ourselves, and remember that it is US who make up the world, and it is US who determine the destiny of the world.  Let us use our time wisely, share our talents with each other, and become THINKERS *AND* DOERS, not just HEARERS.  "Be a thinker, and be a doer."  That is my motto.
 
Sincerely,
Gabriel Staples
 
END OF DEMO.
Thanks for your time, Gabriel J.
 
This program was created by Gabriel Staples (http://ElectricRCAircraftGuy.blogspot.com/), June 2014.
 
I'm still watching you…J
 
Saving file, please wait…
File Saved
 
NEXT, GET HELP FROM THE INSTRUCTOR TO UPLOAD THE DEMO2 CODE AND BEGIN AGAIN TO SEE THE SKIPPED DEMOS.
 
Visit my RC aircraft, electronics, & Arduino website at http://www.electricrcaircraftguy.com

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy