Stories on leadership, maker education, and innovation

.NET Rocks: “NET Rocks! is a weekly Internet audio talk show for .NET Developers.” I have been following Carl and Richard for years. They have great taste in selecting guests. I tend to use this podcast to watch for trends in web development, Javascript, and all things .NET.

Hanselminutes: “Hanselminutes Podcast is ‘Fresh Air’ for developers. Scott interviews movers and shakers in technology in this commute-time show.” I love learning from Scott Hanselman about a broad range of topics including DIY/makers movement, community management, open source, and .NET tech.

Floss Weekly: Early in my career, I focused exclusively on the Microsoft ecosystem. I had a great team leader who coached me to pay attention to ways open source technology can add value to a business. This idea changed my career for the better. FLOSS weekly is a fun show to watch trends in open source tech.

http://www.se-radio.net: Podcast for Professional Software Developers. This collection of talks can really help your team learn from the experiences of other software engineers. It’s worth checking out!

Google tech talks – Awesome collection of video talks at Google given by top experts. There’s a broad range of topics that you’ll enjoy.

Agile Toolkit Podcast - Conversations about Agile Development and Delivery. In our shop, we tend to focus on Scrum and agile engineering practices. This has been a helpful podcast to learn about other flavors of agile and ways that agile integrates with the business.

Let’s say you want to tinker with making a robot controller on your Android device, but you don’t have a lot of time to learn Java. Perhaps you just love JavaScript and want to write Android Apps. In our maker education programs, we enjoy introducing students to JavaScript since the language helps students go from idea to prototype quickly.

I greatly appreciate DroidScript enabling you to edit programs directly from a Wifi connected desktop computer. All you need is a desktop web browser. You don’t need to install Eclipse, Java, simulators, Netbeans or anything. You press a button in DroidScript and the app fires up a web server on your Android device. From your web browser, you can start making new apps, exploring and running sample programs, and checking out the documentation.

What features of Android can you access using DroidScript?

You can use the GPS, Compass, Camera, and Accelerometer.

DroidScript can do basic graphics functions.

According to the documentation, you can send and receive emails and SMS.

You can control Arduino and Lego NXT.

On a personal project, I used DroidScript to send commands to an Arduino through serial communication.

You can also fire up a custom web server so that your phone can respond to HTTP requests.

I think users will appreciate the effective samples and documentation.

In our previous blog post, we showed you how to build your own DIY servo robot using Arduino. Let’s assume that the Arduino code follows the following protocol when it receives bytes on the serial port:

When w is received, the robot moves forward.

When s is received, the robot moves backward.

When a is received, the robot moves left.

When d is received, the robot moves right.

When the space character is received, the robot stops all motion.

Here’s your test robot using an Arduino Nano.

For this robot design, I want to use my Android device and a blue tooth keyboard to remotely control the Android device. The blue tooth keyboard helps me control the robot at a distance. You will also need to obtain a USB to micro-USB adapter like this one to connect your Android device to Arduino. Here’s the code needed to control the robot.

DroidScript supports two modes of development: pure JavaScript and HTML mode. This code sample uses the HTML style of application development making it natural for web developers. Let’s tear down the code. We need to import a few script files at the top of the code.

Make sure to download DroidScript and check out the other cool features it offers. We love to hear from our readers! We would enjoy seeing your robots or your apps! Leave a comment below. All the best!

Interested in building your own Arduino robot? For me, it has been a fun project to do with my kids. We built our first the robot using the PiBot robotics kit. Additional iterations utilized Legos, Sumobot Jr, cardboard, and other materials around the house. It’s fun to invent your own chassis and designs. Using some of the ideas from this blog post,
you’ll be able to build your own DIY robot. Hope you enjoy the journey.

In future blog posts, we’ll show ways to control your robot using a Wifi connection, Raspberry Pi, Droidscript and Android. This blog post will focus on controlling the wheels of the robot using continuous rotation servos and
a simple communication protocol.

Your robot chassis. A Sumo bot Jr. is a great way to get started if you don’t have an original design.

This post will focus on programming the servo’s with Arduino’s programming environment. For sample instructions on building a Sumo Bot Jr, check out the following video. In this post, we’ll assume that you have put together your robot chassis and your servos, breadboard, battery pack and Arduino have been connected to your chassis.

Connect the GND pin on the Arduino to the ground line of the bread board. The ground line is marked with a blue stripe.

Connect the black wires of the servos to the ground line.

Connect the red wires of the servos to the voltage line of the bread board. The voltage line is marked with a red stripe.

Connect the white wire of the left servo to pin 9 of the Arduino. This wire will act as a signal wire between the servo and the Arduino.

Connect the white wire of the right servo to pin 10 of the Arduino.

Connect the black wire of the battery pack to the ground line.

Connect the red wire of the battery pack to the voltage line.

Install 4 AA batteries into the battery pack.

At this point, we’re ready to install some Arduino code into the Arduino. Copy the following Arduino sketch and upload into your Arduino. To learn more about uploading sketches using the Arduino IDE, check out the following video:

How does this code work?

We start by importing the “Servo” header and declaring the left and right
servos.

1234

#include <Servo.h>

Servo leftServo;
Servo rightServo;

The continuous rotation servo has a simple protocol for controlling rotational
motion using the frequency of voltage pulses. In the Arduino framework, the following
code stops the rotation of the servo.

leftServo.write(90);

To make the servo spin forward, use the following code:

leftServo.write(180);

To make the servo spin backward, use the following code:

leftServo.write(0);

With these ideas in mind, we define the following constants for the left and right servos.

In the loop function which is called repeatedly, the Arduino waits for a character
from the serial port. If the Arduino receives a “w”, the program sends a forward command.
If the Arduino receives a “s”, the program sends a backward command.
If the Arduino receives a space, the program sends a stop command.

In the Arduino IDE, press CTRL+SHIFT+M to open the serial port monitor. This window is used to send bytes to the Arduino. Try typing “w” and press enter. The robot should move forward. Try typing space and press enter. The robot should stop.

Looking for a fun weekend project? The Sumobot junior is a fun open source robot kit using Arduino and JavaScript. If you already own an Arduino, this kit can be an inexpensive way to tinker with robot building. (i.e. about $50) Since the plans for the chassis are open source, you can customize the robot as you see fit. The design can be completed using a laser cutter or a 3D printer. You might extend the base of the robot so that you can have room for a bread board or anything else you like! You can find complete instructions for building your Sumo Bot JR at http://sumobotkit.com/. The design uses continuous rotation servo’s which are pretty easy to program and re-use in other robot projects. You can purchase the servo’s here: https://www.parallax.com/product/900-00008

Civic hacking has become a potent movement for engaging coders, designers, and technology professionals in challenges that matter to the community. Computer hacking tends to have a negative connotation. Some call civic hacking “hacking gone good” since it’s really about community service and place making.

Some argue that civic hackathons have little value since it’s rare to find apps that find their way into full implementation and achieve impact. I, however, feel that civic hackathons offer our communities a number of benefits.

Building a tribe change makers: It’s great to meet like mind technologists who care about making a positive impact in their community. Hackathons enable you to meet new people, make connections, and learn about the deeper needs of your area. Through the experience, you learn about new tools, practices, and strategies for doing rapid prototyping.

Local Data, Local Impact: Democracy only works when citizens are engaged. I appreciate that the civic hacking movement helps us to learn about local concerns and empowers us to do something about it. Being a geek about data, it’s also fascinating to learn about the open government API’s and data sources that can support civic apps.

Voting with your code: It’s interesting to see what problems makers care about. In a typical hackathon, there’s a broad range of issues, data and topics to choose. The team tends to select projects based on skill level, their engagement in the topic, and challenge difficulty.

Building a community of support: During our hackathon event, it was cool to see how different teams mentored and supported each other. Everyone has different strengths in terms of design or technology. I can honestly say that everyone learned from each other. In our hackathon in Macon, it was nice to see the experienced hackers mentoring the new developers and helping them feel welcome.

In our hackathon in Macon, GA, one team created an mobile app serving Peace corp team members to help them to know about safety and security alerts as they travel to various countries. Another team of hackers helped propose and prototype applications that would help high school students with learning vocabulary for SAT/ACT .

We had some important discussions on the real impact of hackathons. In general, how do we care, feed, market, and grow various hackathon ideas? How do you care for the hacks from a software maintenance point of view? How do you intentionally organize the challenge ideas and data sets? The team from Spinen made some strong arguments for making a home for these concerns. I’m interested in seeing how this idea can grow.

Are you interested in contributing a challenge problem for future hackathons for SparkMacon Makerspace? Feel free to contribute your ideas here:

To help contribute to this conversation locally for Middle Georgia, I have compiled most of the challenge problems, data, resources, and links from previous SparkMacon hackathons and HackForChange events. At a minimum, it would be cool to create a backlog of challenge ideas that can be used in future Middle Georgia hackathons and SparkMacon Open Make events.

To close, here’s some links sharing the impact of civic hacking in communities. I think it’s work that matters. I believe it’s a cool way to innovate our communities and create engagement. What do you think?

http://www.coderbot.org/ – This project details open designs, plans, and software for building your robot with Raspberry Pi. The computer vision features and teaching resources are impressive.

http://sumobotkit.com/ – This is the first open source robot design I tried. I uses Arduino and continuous rotation servo’s. It’s a great weekend project.

Johnny-Five: Using JavaScript to Code Your Robots – I have been amazed by the community of JavaScript/Node programmers creating easy to use API’s for robot building. The Johnny Five community has great documentation and support for many hardware platforms.

How to stream video from Raspberry PI – I found an old web camera around the house. I tried to implement some video streaming from my PI using this procedure. Amazingly, it just worked! With the video streaming feature, my brother in another city can remotely drive my robot around my house. Lots of fun.

During my morning reading, I encountered this powerful quote from Theodore Roosevelt from his “CITIZENSHIP IN A REPUBLIC” speech. I just had to share it. Life is a gift. Life is short. Are we “daring greatly?”

“It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually strive to do the deeds; who knows great enthusiasms, the great devotions; who spends himself in a worthy cause; who at the best knows in the end the triumph of high achievement, and who at the worst, if he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who neither know victory nor defeat.”

Are you looking for a place in Warner Robins, GA to rapidly prototype a product or test a business concept? Are you looking for a community to learn technical skills and grow your business concept? Are you interested in learning more about the makers movement in Warner Robins, GA? If you’re a business leader or maker in Middle, GA, make sure to attend the FireStarter meetup on April 30th.

If you follow this blog, you know that I serve as a founding member of SparkMacon Makerspace in Macon, GA. Our community is VERY excited for the FireStarter community. Our leadership team is actively finding ways that we can support and grow this community of business leaders and makers. We hope to find ways for SparkMacon and FireStarter can collaborate. From reviewing their website and materials, I’m excited to see the focus and direction of this community.

What kind of benefits can makerspaces and fab labs have on the local economy? Check out the impact of another makerspace in Augusta, GA: Clubhou.se .

If you care about fostering the makers movement in Middle, GA, make sure to attend the FireStarter meetup. You won’t be disappointed.

Thanks to projects like Code.org and MIT Scratch, students can encounter ideas from computer science using rich puzzle interfaces. Using these puzzle interfaces, students grow their skills of creativity and critical thinking while building something fun. Puzzle based programming interfaces put emphasis on the student learning sequencing, loops, and connecting appropriate pieces together. In this post, I wanted to share my experiences with Ardublock, a puzzle based programming interface for the Arduino platform. Using the most recent beta of Ardublock, I found that I could create an Arduino program to control motors quickly. I’m looking forward to seeing how students in our makerspace will enjoy the software.

The Arduino platform enables makers and students to program experiences involving electronics or sketches. You can learn more about this platform from the following blog post. In our previous blog post, we used Arduino, Lego’s, and a few servo motor’s to create a small toy crane. In this sketch, the user can move the crane by sending a character to the Arduino through the serial monitor.

w – moves the crane up.

s – stops the crane.

x – moves the crane down.

a – moves the crane left.

d – moves the crane right.

In the crane setup, pin 9 of the Arduino is connected to a standard servo. Pin 9 will be used to move the crane left and right. Pin 10 will be used to move the crane up and down. We initialize our variable for the direction or angle of the crane. We also send an angle of 90 degrees to both servo motors to ensure that the motors stop moving.

In the Arduino platform, the programmer needs to define a main loop of functionality. In the crane control program, we start the process by accepting a character from the serial port and storing the character in a variable called “input.” If we receive the character ‘d’ for move left, then the system changes the angle variable and writes the angle to the servo motor. You can see the Ardublock code below. The character ‘a’ for move right operates in a similar manner. When we receive the characters x and w to move up and down, we write an appropriate value to the continuous rotation servo. (0 = move up, 180 = move down)

When using Ardublock, the student is not hidden from the C code generated by the tool. The student can be encouraged to change the C code. I see this as a nice learning advantage. I want our students to make the connection between puzzle pieces and traditional code.

If you’re interested in learning more about this free and open source product, check out the following link: