Stories on maker education and innovation 

formats

Taking Time Lapse Photos with Your Raspberry Pi

Simple CV

One of my friends from SparkMacon makerspace had a question about taking time lapse photos using a Raspberry Pi.  Since this feels like a fun starter project for many makers, I wanted to share an approach using an easy computer vision library, SimpleCV.   SimpleCV by http://www.sightmachine.com/  enables novice programmers to build computer vision experiences using Python and concise code patterns.  This code should also work on Mac, Linux, Windows, and a Raspberry Pi.

To utilize SimpleCV on your Raspberry Pi, follow the install instructions located here.

Make sure to install a web camera or the Raspberry Pi camera module.

If you’re not familiar with the Python programming language, you can learn the basics from CodeAcademy.com .   I have a few free e-books located on this blog post.

I found a time lapse capture script by larsyencken on github.   That looks really simple.   Copy the following code into a text file named “time_lapse.py.”   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import os
import SimpleCV
import time

# get access to the camera
cam = SimpleCV.Camera()

# setup a display
disp = SimpleCV.Display((1024, 768))

# this variable is used for naming each file or frame.
i = 0

while disp.isNotDone():
    # wait 2 seconds
    time.sleep(2)

    # capture the image. Display it. Save the image as a JPEG.
    img = cam.getImage()
    img.save(disp)
    img.save('%.06d.jpg' % i)

    # change the filename counter variable.
    i += 1

    if disp.lastLeftButton:
        break

You can run this code by executing the following command:

python time_lapse.py

After running this script, your program should capture a new image every two seconds.  Each frame will be numbered.

If you’re interested in learning more with SimpleCV, make sure to check out their documentation resources.   It’s a fun and easy way to do computer vision.

What other cool ways could you use SimpleCV? We would enjoy hearing your ideas!

 

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Drive Your Raspberry Pi Robot using Python Web API

PIRobot

I’ve enjoyed building my own DIY Raspberry Pi robot and wanted to share the ideas behind building a remote control interface using the Flask python web framework.  This small HTTP based programming interface enabled me to build multiple apps to drive my robot.  You might enjoy using these ideas in your hobby robot design.

Here’s some background on the robot:

  • The design uses a Raspberry PI 2
  • The robot has a laser cut frame based on designs from CoderBot.org .  
  • The robot moves using two continuous rotation servos.  You can purchase similar servos through Amazon or Parallax.com.
  • The Raspberry Pi is powered by a small cell phone battery charger.
  • The servos are powered by 4 AA batteries.

The following diagram shows how the robot is wired using an Arduino.  Wiring to a Raspberry Pi is very similar.   Keep in mind that the signal wires for the left and right servo get connected to GPIO PINS 4 and 17 respectively on the Raspberry Pi.

Servo Robot

Building a HTTP programming interface using Flask

Let’s break down the major parts of the python script driving the robot.  This python script uses the following libraries:

  • RPi.GPIO: This library enables the programmer to send digital signals to the input and output pins on the Raspberry PI.
  • Flask: To enable the robot to accept HTTP requests from a web browser, we used a library known as Flask.

A continuous rotation servo has a simple protocol for controlling rotational

motion and speed using a frequency of voltage pulses.   This set of pulses is known as pulse width modulation. (PWM)  In the RPi.GPIO framework, the following code sets up pin 4 for PWM communication and stops the rotation of the servo.

1
2
3
4
5
6
7
8
9
#servo setup
PIN_LEFT = 4
GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme
GPIO.setup(PIN_LEFT,  GPIO.OUT) # PWM pin set as output
leftPWM = GPIO.PWM(PIN_LEFT,21.7)
leftPWM.start(0)

#stop the servo
leftPWM.ChangeDutyCycle(0)

To move the servo in one direction, you might do the following:

leftPWM.ChangeDutyCycle(5)

The code below initializes our pins 4 and 17 to send voltage pulses. The frequency of the voltage pulses on these pins will control the motion of the servos on the robot.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import RPi.GPIO as GPIO
from flask import Flask, render_template
import os

PIN_LEFT = 4
PIN_RIGHT = 17

# Pin Setup:
GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme
GPIO.setup(PIN_LEFT,  GPIO.OUT) # PWM pin set as output
GPIO.setup(PIN_RIGHT, GPIO.OUT)

leftPWM = GPIO.PWM(PIN_LEFT,21.7)
rightPWM = GPIO.PWM(PIN_RIGHT,21.7 )
leftPWM.start(0)
rightPWM.start(0)

Using the Flask python web framework, we create an instance of a flask application. We configure the root of the website(“/”) to return the template “driveRobot.html” This HTML file contains user interface elements and JavaScript that will make HTTP requests to the Flask server.

1
2
3
4
5
app = Flask(__name__)

@app.route("/")
def drive1():
    return render_template("driveRobot.html")

The functions below show the process of sending out voltage frequencies to servos so that the robot can move forward, backward and stop. You can invoke these functions using HTTP requests.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@app.route("/forward")
def forward():
    leftPWM.ChangeDutyCycle(5)
    rightPWM.ChangeDutyCycle(1)
    return "forward"

@app.route("/back")
def back():
    leftPWM.ChangeDutyCycle(1)
    rightPWM.ChangeDutyCycle(5)
    return "back"

@app.route("/stop")
def stop():
    leftPWM.ChangeDutyCycle(0)
    rightPWM.ChangeDutyCycle(0)

 

The final lines run the web application.

1
2
if __name__ == "__main__":
    app.run(host='0.0.0.0')

To run this application, execute the following:

sudo python robotMove.py

Using a web browser, navigate to http://yourRaspberryPi:/

Putting it all together

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import RPi.GPIO as GPIO
from flask import Flask, render_template
import os

PIN_LEFT = 4
PIN_RIGHT = 17

# Pin Setup:
GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme
GPIO.setup(PIN_LEFT,  GPIO.OUT) # PWM pin set as output
GPIO.setup(PIN_RIGHT, GPIO.OUT)

leftPWM = GPIO.PWM(PIN_LEFT,21.7)
rightPWM = GPIO.PWM(PIN_RIGHT,21.7 )

leftPWM.start(0)
rightPWM.start(0)

app = Flask(__name__)

@app.route("/")
def drive1():
    return render_template("driveRobot.html")

@app.route("/forward")
def forward():
    leftPWM.ChangeDutyCycle(5)
    rightPWM.ChangeDutyCycle(1)
    return "forward"

@app.route("/back")
def back():
    leftPWM.ChangeDutyCycle(1)
    rightPWM.ChangeDutyCycle(5)
    return "back"

@app.route("/stop")
def stop():
    leftPWM.ChangeDutyCycle(0)
    rightPWM.ChangeDutyCycle(0)
    return "stop"

@app.route("/left")
def left():
    leftPWM.ChangeDutyCycle(1)
    rightPWM.ChangeDutyCycle(1)
    return "left"

@app.route("/right")
def right():
    leftPWM.ChangeDutyCycle(5)
    rightPWM.ChangeDutyCycle(5)
    return "right" 
   
if __name__ == "__main__":
    app.run(host='0.0.0.0')

Top Stories

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

3D Printing Examples at NASA Space Camp

Thank you to my niece Ana for sending me pictures of some cool 3D printed artifacts.   I really appreciate it.   She’s currently attending a fun NASA space camp.   It’s fun to see what’s possible with 3D printing.

IMG_8820 IMG_8822 IMG_8821 IMG_8825 IMG_8824

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

10 DIY Laser Cutter Project Ideas

Published on July 9, 2016 by in technology

Laser Cut Lamps

 

Month 3: July 16 – Laser cutting: Makers will learn the basics of designing for the laser cutter by creating beautiful bookmarks, key chains, or jewelry.  Makers will learn techniques for editing scalable vector graphics for laser cutting jobs using InkScape, a free graphics design tool.   We will also introduce ways to design 3-dimensional work using various tools and cutting patterns.

Laser cutting samples

Check out our blog post on Laser Cutting and Engraving

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Reflecting on 3D Modeling and Game Design workshop

Learning TinkerCAD

We had a great time during our 3D modeling workshop at SparkMacon yesterday.   This workshop, the second class in our Summer Maker skills series, helps makers learn how to build 3D stuff for games, art and 3D printing.  The skills used in this workshop can apply to many topic areas:  medical applications, engineering, game design, and digital fabrication.    

In teaching this workshop, I hope we can inspire and foster the next Easton LaChappelle.  He’s an amazing young man who has launched his own company to produce functional and affordable prosthetics.   He started this work at the age of 14.  Check out his story in the video below.  I enjoy starting our workshops with this story since it helps the students think about the potential impact and change they can make with these skills.  These are powerful ideas.

As we have taught this workshop, I have especially enjoyed changing the challenge problem or prompts that I give the students.   In this post, I wanted to share a few insights and ideas for the benefit of other teachers.   In this last workshop, I wanted to give the students the ability to play with 3D scanning.   I think the students really enjoyed this.  

3D scanning

During our workshop, we committed ourselves to build parts of a small game world.    My son and two middle school students helped build this world.   We did parts of the game world in TinkerCAD.com.    At the end of the workshop, I imported their work into a game using the Unity game engine.   The work of each student has a different model color.   I think the students appreciated getting to see the Unity game engine since it gave them a maker perspective of building games.    By the end of the class, we had combined our work together so that we could publish using the Unity web player and a Google Cardboard format.  

Student work in TinkerCAD

You can check out their work here:

Very proud of the students and their work.  It was fun seeing the students helping each other.

Teaching this class is so much fun!  We had a great time building this game world together.  Looking forward to serving many new students and sharing the joy of making.

Join us for our next Maker Skills workshops!

Month 3: July 16 – Laser cutting: Makers will learn the basics of designing for the laser cutter by creating beautiful bookmarks, key chains, or jewelry.  Makers will learn techniques for editing scalable vector graphics for laser cutting jobs using InkScape, a free graphics design tool.   We will also introduce ways to design 3-dimensional work using various tools and cutting patterns.

Laser cutting samples

Month 4: August 20 – Robotics: Building upon the programming skills introduced early in the program, students will have the opportunity to build robots from scratch using the mBot kit.   Students will love customizing their mBot using puzzle based programming and the easy to assemble construction experience.   Students take home their mbot to continue the tinkering fun at home.

This series will be tons of fun.  Looking forward to seeing you there!

Register today for this workshop at SparkMacon.com .

Top Stories

 

 

 

Photo Credit: Andrew Scott at Flickr.com

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

MakerFaire Projects You Don’t Want to Miss

Dalek at MakerFaire

Photo by https://www.flickr.com/photos/lowvoltagelabs/

Recent Posts on InspiredToEducate.NET

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Maker Skills Summer Workshops at SparkMacon

Maker Skills Summer Workshops

Through making and tinkering, students learn using their hands, grow their creativity, and become more curious about their world and testing the limits of what is possible. SparkMacon makerspace has designed a series of workshops to connect you with the essential technology skills of inventing using computer programming, digital fabrication, and robotics.   Through this workshop series, our students will gain exposure to STEAM skills including coding, 3D modeling, 3D printing, laser cutting, and robot building.  

Parents and kids are invited to take this workshop together.  It’s a great family activity!

Student registration for the series includes a complete mBot robotics kit from Makeblock.cc.  It’s a fun kit to build and packed with features.     

Register today for this workshop at SparkMacon.com .

Series Schedule

Month 1: May 21 – Coding: Programming is a central skill to digital fabrication, robotics, and all subject domains. During this session, students will be given a crash course in computer science, gaining a basic understanding of sequencing, looping, and variables. Resources from Code.org, Scratch, and Code Academy will be utilized, which include learning activities that feature characters from Minecraft, Frozen, Angry Birds, and other popular games.

Month 2: June 18 – 3D Modeling:  Our students will learn the basics of 3D modeling objects and designing stuff for a 3D printer.   Skills from this workshop will empower makers to build elements for video game worlds, art, and 3D printed pieces.  We will also provide demonstrations of our 3D printing equipment.

Tinker CAD TARDIS

Month 3: July 16 – Laser cutting: Makers will learn the basics of designing for the laser cutter by creating beautiful bookmarks, key chains, or jewelry.  Makers will learn techniques for editing scalable vector graphics for laser cutting jobs using InkScape, a free graphics design tool.   We will also introduce ways to design 3-dimensional work using various tools and cutting patterns.    

Laser cutting samples

Month 4: August 20 – Robotics: Building upon the programming skills introduced early in the program, students will have the opportunity to build robots from scratch using the mBot kit.   Students will love customizing their mBot using puzzle based programming and the easy to assemble construction experience.   Students take home their mbot to continue the tinkering fun at home.

 

This series will be tons of fun.  Looking forward to seeing you there!

 

Register today for this workshop at SparkMacon.com .

Top Stories

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Minetest: a free and open source alternative to #Minecraft

Minetest

Clever teachers around the world have found ways to adapt the popular open world block-building game Minecraft to teach lessons ranging from computer programming, math, history, and more.   Minecraft is like having an infinite bag of Legos.    Minecraft has empowered players young and old to build amazing environments and inspires a special kind of creativity and playful collaboration.   For me, I’m using games like Minecraft to teach concepts of 3D modeling and computer programming.    

For many schools, if you wanted to introduce Minecraft into a computer lab of 20 students, you would need to spend $540 or more.   If you’re looking for a free alternative, make sure to check out Minetest, an open source open world block building game.  Giving this game a quick review, I’m impressed with the current state of the project.

Learn more at http://www.minetest.net/ .

Stability and speed: The game is written in C++ so that game executes much faster than Minecraft and seems pretty stable.   For basic world building, the game should work just fine for you and your students.

Multiplayer:  The game enables players to establish servers so that they can build together.  My son and I did some quick tests building stuff together.   He loved running around the world and exploring the mountains and caves.   During  our quick review, we tried the game on Linux and Windows.  It worked pretty well.

Simplicity:  Minetest can’t compete with Minecraft on every feature.  For instance, the game does not support combat mode, mobs, and red stone to name a few.   I have a feeling the features will only get better over time.  From a classroom perspective, combat mode and mobs aren’t particularly helpful features for me.  I appreciate the simplicity of the current project state.

Mods: The software does support an ecosystem of mods.  It’s neat to see how the game has been extended.   If you REALLY want mobs, you can get them back using a mod or software extensions.   Minetest Mods are written in the Lua , an approachable and clean language.   I want to use Minetest with TinkerCAD so that students can experience the joy of designing game worlds.   I’m looking for a mod that would import schematic files created by TinkerCAD.  It would be cool to challenge students to write their own mods!

In researching this article, I found a detailed video review by SmoothScape on MineTest.  You might enjoy reviewing his insights.  

 

 

Learning To Code

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

4 Middle Georgia Makerspaces to Boost Your Creativity

Published on April 28, 2016 by in technology

Real Impact 3d printing

Across the world, maker spaces have become hubs for creative technologists and artists to gather to share community, ideas, tools, and grassroots education.  In the years that I’ve blogged on InspiredToEducate.NET, it has been amazing to see the growth of the makers movement in Middle Georgia.   I still remember my road trip to Augusta, GA to visit a maker space for the first time.   In 2014, My friend Brent Lanford invited me and a team of people to visit ClubHou.se to explore the potential of growing the makers movement to Middle Georgia.  I became especially excited to learn about the ways you can blend project based learning, DIY, and student empowerment.  The idea of helping people to grow by connecting them to powerful ideas and tools was an amazing opportunity.

Thanks to the efforts of many organizations, hours of investment and many leaders, we can celebrate that Middle Georgia has four growing maker space communities.   As I’ve had the opportunity to chat with leaders of successful maker spaces, they always emphasize the importance of growing and connecting the community.   In this blog post, I want to raise awareness of the growing ecosystem of maker spaces.   I also challenge you to get involved, join the movement, and start turning your ideas into reality!

SparkMacon Maker Space:  SparkMacon is a community innovation space equipped with art and technology tools, equipment, and expertise for students, tinkerers and entrepreneurs.   Thanks to the generous support of our founding members and investments from the Georgia Technology Authority and the Middle Georgia Regional Commission, our team had the opportunity to grow Central Georgia’s first maker space community.   In our vision, we hope to be the catalyst for and physical manifestation of the local Maker Movement.   We have three core areas of focus: serving makers in helping them grow in STEM skills and art, serving start-ups in connecting them to local business resources and rapid prototyping, and (3) supporting the growth of our creative tinkerers.  Learn more at SparkMacon.com.

Firestarter Fab Lab:  For our makers near Warner Robins, GA, make sure to check out FireStarter Fab Lab.   Thanks to profound investments from Flint Energies, Houston County Career Academy and their partners, FireStarter offers an amazing range of industrial fabrication equipment and a growing community of makers.  Their educational programs include everything from a FIRST robotics club, fabrication workshops to classes on wood working.   The educational and project work spaces are generous.  Make sure to check out their impressive listing of industrial tools.    I especially admire their efforts to grow business leaders and making connections to local makers.    Make sure to visit http://firestarterfablab.com/ and their Facebook page to engage in their community, tools, and learning opportunities.

Firestarter community

5/4 music space: 5/4 music space is a music incubator with rehearsal space and a recording studio.   They desire to spark a new scene of music for Macon, GA.   The 5/4 team have worked really hard to create an engaging environment for music creatives and help grow opportunities for local bands.  They are currently hosting monthly “open mic” nights to encourage artists and fans to network.   Macon is a community that loves it’s music heritage.  5/4 will be the space to grow the next generation of Macon music legends.   To learn more and engage with 5/4, check out their Facebook page and their website www.fivefour.space.

5/4 music space

Ampersand Arts: Ampersand Arts has the mission “to encourage everyone to see their creative potential by thinking outside the box of standard arts education and institutions, helping them push past perceived barriers and learn that they can make unique contributions in the arts in Macon and beyond.”   This makerspace will focus on serving the needs of the arts community.  As a member of SparkMacon , I’m looking forward to working collaboratively with this community.   I believe we’ll find fun intersections in our combined technology and art communities.  To learn more about Ampersand makerspace, visit http://www.ampersandguild.com .

Ampersand arts

In addition to the official makerspaces described here, our team has started learning about efforts to grow educational makerspaces in schools around Macon.   I have wondered if it’s possible to turn cities or regions into collaborative creative communities.   Some of our friends from http://www.makervillage.org/ are working to grow these kinds of communities in Rome, GA . We have the seeds of building “maker cities” today in Middle, GA!  And it’s exciting!

 

 

Join the Spark Macon Maker Space Community on Facebook

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Giving Yourself Margin

Enjoying Nature

I’m in one of those seasons of life where my schedule feels three notches beyond packed.  We enjoy staying active in our church, our community, and family.  My wife and I believe in the concept of going above and beyond in our professional lives too.   We, however, recognize that packing our lives with more activities isn’t sustainable or healthy.  

As I’ve been reading about innovative teams and business culture, I’ve been smacked in the face by this very simple idea: margin.  It’s the idea of giving yourself or your team the gift of time.   Here are a few places where this idea shows up:

  • “Innovation time off”: The post-it note was invested at 3M when a leader gave his team 20% of their work time to develop new product concepts.  Innovators like Google have adopted this idea of “innovation time off” too.  Through this strategy, Googlers invented amazing products like Gmail, Google Cardboard, and many others.   
  • Create margin for your teams: In the world of engineering, there’s a temptation to plan monthly schedules down to the exact hour to make sure you’re getting 100% capacity from the team.   The best teams make time to plan regularly.   They, however, acknowledge that you can’t think and plan for everything.  In fact, that level of planning is wasteful.  It’s great to give your team margin to account for the unexpected stuff that ALWAYS happens and creates the opportunity for creative thought.  The extra time can be helpful to address process improvement or reduce technical debt.
  • Genius hour: It’s cool to see the idea of margin showing up in k-12 education too.   Many innovative educators have tried increasing student engagement in learning by empowering them to have time to learn a topic of interest to the student.   In most cases, the student present their work or new knowledge to the rest of the class.   To learn more about this practice, check out the following posts on Edutopia and Gallit Zvi’s blog.  

In the world of personal finance, it’s a common practice to make sure you have an emergency fund to cover the unexpected things of life.   I have to say that I’m guilty of not always creating margin for myself to have down time to recharge my mind, my heart, and soul.   This might be prayer, going fishing or having open time to relax.   This is a place of growth for me.   It’s an opportunity to learn to say “no” to some good things of life to make room for the best.

What are your favorite ways to create margin for your team?   How do you create margin for yourself?

 

Photo Credit: https://pixabay.com/en/hiking-hiker-mountains-rocks-hills-691739/

Join the Spark Macon Maker Space Community on Facebook

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 

No tweets to display

© Inspired To Educate
credit