Archive: Education

May 5, 2008

Cornell University's student microcontroller projects - Spring08

guidedrocket_20080505.jpg

Another semester's worth of cool microcontroller projects has come to a close at Cornell University and Bruce Land sent us the results for the Spring 2008 ECE 4760 course:

Students in ECE 4760 at Cornell University were given the responsibility of choosing, designing and building a project using Atmel Mega32 microcontrollers. Over 30 projects this year include a trumpet MIDI contoller, a motorized guitar tuner, a eyeblink/head-motion computer controller, Biometric Authentication system, and a rocket inertial guidance system.

There are a number of projects worth commenting on, but I really thought the rocket guidance system that one of the teams created was a particularly smart idea. It's a bit of a misnomer - it's not the rocket that's guided during flight, but the post-flight payload. The microcontroller, an accelerometer and two stepper motors are employed to steer a simplified parafoil-style parachute on the descent, ideally delivering the payload to a specified location, such as the launch point.

It sounds like this particular project had some launch-day engine malfunctions, but the idea is great. Something like this could someday be used to help direct food payloads and other cargo drops to a specific, controlled destination.

I think this marks 10 years worth of great work that's been documented online for this course. As always, these projects are incredibly well documented, both on the hardware and software side.

Cornell University ECE 4760 Student Microcontroller Projects
Rocket Inertial Navigation System

Posted by Jason Striegel | May 5, 2008 10:19 PM
Education, Electronics, Flying Things | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

March 29, 2008

Little drummer bot

drumbot_20080329.jpg

Yellow Drum Machine is a tiny musical robot who's sole purpose in simulife is to motor around looking for suitable surfaces to drum a beat on.

Notice how the robot first plays on the object it finds (or is forced to find by the angry cameraman), plays a small beat, and records the beat it plays on it. Then this recorded beat is played again, and it starts to play on the object (an belt tracks and everything else it has),and also playing this sampled beat :)

...

Why? Well.. I was sitting thinking what I should do for my next robot, what it should do.. Listening to music.. making a rythm with some robot-parts.. Thought; "Hey, I will make a robot that drives around and plays on stuff"

It's a pretty simple robot, which could make this a fun little weekend project. The main components are a Picaxe brain, an ultrasonic rangefinder for position sensing, and 6 gear motors for moving and drumming. It's funny how the simple addition of a speaker and drum kit transforms a simple obstacle avoider into a soul machine.

Yellow Drum Machine

Posted by Jason Striegel | Mar 29, 2008 08:22 PM
Education, Electronics, Music | Permalink | Comments (1) | TrackBack | Digg It | Tag w/del.icio.us

March 22, 2008

Easter egg anemometer

easteranemometer_20080322.jpg

Here's something fun to do with the kids tomorrow after they've finished emptying those big plastic eggs of jelly beans and malted milk balls.

The basic ingredients are plastic eggs, a small DC motor from an old CD player, and a cheapo multimeter. It's a quick afternoon project, and you'll be able to measure the wind's speed—a useful addition to your toolkit for backyard experiments.

Easter Egg Anemometer (Wind Speed Meter)

Posted by Jason Striegel | Mar 22, 2008 08:42 PM
Education, Electronics, Science | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

January 6, 2008

HOWTO upgrade the XO Laptop's operating system

Xo-Devbuilds

If you've visited the OLPC Wiki, you've probably noticed the box on the right hand side that shows the latest releases (stable and development builds). Although the current stable build listed is 650, there's a newer one (653) that you might want to upgrade to. But if you want the latest, greatest, bleeding edge XO builds, you need to check out the "joyrides". However, these can be extremely unstable, so be warned.
Before you upgrade, there are a few things to know:

  • You can have two versions of the operating system installed at any time. By default, you'll boot into the one you installed most recently. So if you start out with build 650, then install build 653 and reboot, you'll start up in build 653. If you hold down the O key (on the keypad to the right of the screen) as you boot, you'll boot the alternate operating system (in this case, 650). (At this point, I believe that 650 becomes the default and 653 the alternate.)
  • At boot time, the XO laptop maps a pristine (see /versions/pristine) copy of the operating system into the running system's filesystem. Any changes you make to the filesystem are in another location (see /versions/run), but it all looks like one filesystem to you. When you reboot into an alternate operating system, any changes you had previously made to it are revived.
  • When you use the olpc-update command to update to a new version of the operating system, the alternate operating system is wiped out (both the pristine version and any modifications to it)
  • Through all of this, your home directory (/home/olpc) is left unchanged.

Update: Todd Norris wrote in with some important information. Some models of the XO laptop shipped with a version of firmware that is susceptible to a significant bug: if the real-time clock battery is physically removed or otherwise runs out of power, the machine may no longer boot. Even if you don't have an affected machine, this firmware update includes numerous bug fixes and is recommended for current models of XO laptops. For more information, including installation instructions, see the page for firmware version q2d07. However, this firmware will shortly be replaced by a newer release, so be sure to check the OLPC Wiki and look for the highlighted portion shown in the screenshot above. This will show you the newest version of firmware and operating system.

If you're ready to install the upgrades, read on.

Read full story

Posted by Brian Jepson | Jan 6, 2008 03:33 PM
Education, Linux, olpc | Permalink | Comments (8) | Digg It | Tag w/del.icio.us

December 28, 2007

xochat.org: make new friends

Xochat-Org-In-Action-1

My friend Tom Hoffman has set up a Jabber server for XO Laptop users:

I'm having a feeling I'll regret having done this, but xochat.org is now up and running. If you've got an XO you can point it at my Jabber server by popping open a terminal and typing this:
sugar-control-panel -s jabber xochat.org

Then hit ctrl+alt+erase to restart Sugar. You should then see the other people logged in to the server in the "Neighborhood" view. That is essentially the widest view. You should be able to see other users and shared activities, and share your own activities with them, including video.

This is, however, the bleeding edge of the bleeding edge, so don't expect perfection.

This isn't group chat; once you've got it set up, start the Chat activity, share it with your neighborhood, and like magic, you'll find all sorts of people and activities in your neighborhood. Very cool! Link and update

Posted by Brian Jepson | Dec 28, 2007 08:22 PM
Education, Linux, olpc | Permalink | Comments (4) | Digg It | Tag w/del.icio.us

December 25, 2007

Lecturefox: free university lectures

I think MIT coined the term Open Courseware, but there are several other universities that are releasing lecture videos for free online. Now, tracking down a particular subject matter is made quite a bit easier because of a project titled Lecturefox. From the about page:

What is Lecturefox?

It's all about the joy of learning.

Lecturefox is a free service. You can find high-quality classes from universities all over the world. We collect without exception lectures from official universities, and we have a special interest in lectures from the faculties physics, chemistry, computer science and mathematics. In the category "faculty mix" you can find miscellaneous lectures from other departments like electrical engineering, biology, psychology, economics, history and philosophy.

I really like what they've done in collating these resources into a single index. Tracking the companion blog's RSS feed, you can get updates about new material that's become available. Video, audio and text courseware are included in the index and it appears to be actively maintained and comprehensive, especially for computer science and other math/science related courses.

Forget your other new years resolutions. You couldn't do much better than treating yourself to a free lecture every weekend.

Lecturefox: Free University Lecture Index - Link
Lecturefox Blog - Link
Previously: Bootstrap Education - Link

Posted by Jason Striegel | Dec 25, 2007 07:14 PM
Education, Life, Lifehacker, Software Engineering | Permalink | Comments (3) | TrackBack | Digg It | Tag w/del.icio.us

December 23, 2007

Run a nested X11 desktop on the XO Laptop

Xo-Laptop-X11
The XO laptop continues to be very hackable. If you haven't ordered one already, you really should because you only have a few days. I've owned some pretty sweet devices in the past, but nothing compares to this. At every turn, I find something new and cool about it, and there always seems to be a way to do the things I want to do. The only thing I need to worry about is using up all my flash drive space, but that's what USB drives are for, I guess.

Because the Sugar interface includes an X11 window manager, you can't fire up your favorite window manager without killing Sugar... unless you run a nested X11 server. The Xephyr server is available in the XO's default package repository, and it can run as a client and a server at the same time: as a full-screen client of the XO's X11 server, and as an X11 server that can contain its own session, window manager and all. (Xephyr is similar to Xnest, but supports more X extensions.)
To get it up and running, I started the Terminal activity, used su to become root, and installed Xephyr and blackbox (a nice lightweight window manager):

$ su
# yum install xorg-x11-server-Xephyr blackbox
Next, exit out of the root shell, and create a file in your home directory called xephyr.xinitrc that launches the window manager of your choice:
# exit
$ echo exec /usr/bin/blackbox > ~/xephyr.xinitrc

Now, each time you want to run Xephyr, use xinit to start up Xephyr on display :1 (if you want to run more than one Xephyr session at once, use :2, then :3, etc):

$ xinit ~/xephyr.xinitrc -- /usr/bin/Xephyr :1 -ac -screen 1200x900

You should see your window manager start up; the screenshot above shows blackbox with a few clients running. I ran into a few oddities that will eventually send me running to X11 documentation; for example, arrow-up and arrow-down don't bring up my history in the bash shell (but Ctrl-P and Ctrl-N work fine). And the screen is pretty hard to read except in reflective mode... but wow, it's nice to have 1200x900 pixels on such a small screen!!!

Posted by Brian Jepson | Dec 23, 2007 06:52 AM
Education, Linux, olpc | Permalink | Comments (10) | Digg It | Tag w/del.icio.us

December 21, 2007

HOWTO run Arduino on the XO Laptop

Xo-Arduino-Screenshot

The XO Laptop comes with the drivers you need to talk to an Arduino board, but you need to do a few things before you can run the Arduino environment. Once you get it running, though, it works just fine. The first step is to install Java. To install Java on the XO Laptop, check out these instructions (the version of Java that you download will be different from what's listed on that page, so you'll need to modify the commands slightly to take that into account).
Once you've got Java up and running, you need to install the GNU C and C++ compilers as well as the LIBC for the AVR chip that the Arduino uses. To do this, open up the Terminal activity, su to root, and install avr-gcc, avr-libc, and avr-gcc-c++ using yum:

$ su
# yum install avr-gcc avr-libc avr-gcc-c++

While you're root, you may as well make one of the changes you need to make; add the olpc user to the lock and uucp groups. To do this, edit the /etc/group file with the /usr/sbin/vigr command and add the olpc user to the end of the lock group:

lock::54:olpc

and to the end of the uucp group:

uucp::14:uucp,olpc 

After you exit vigr (which is just a script that starts vi to safely edit the group file), decline its offer to edit the gshadow file, and type exit to get back to a normal (non-root) shell):

# /usr/sbin/vigr
You are using shadow groups on this system.
Would you like to edit /etc/gshadow now [y/n]? n
# exit
exit
$ 

Next, make sure you're in your home directory, download Arduino (there may be a more recent version of it, so check the Arduino page to be sure. Extract Arduino in your home directory (you'll be running it out of your home directory as well):

$ cd
$ wget http://www.arduino.cc/files/arduino-0010-linux.tgz
$ tar xvfz arduino-0010-linux.tgz

Now, you're all Arduino-fied. To run it, cd to the arduino-0010 and run the arduino script:

$ cd ~/arduino-0010
$ ./arduino

There is one last trick: you'll likely find that the Arduino user interface misbehaves quite a bit. To get it to work right, press the screen rotate button four times to get a nice 360 degree rotation. Arduino will redraw and start behaving itself as shown in the screenshot.

Update: As Seth points out in the comments, the Update.1 build that is coming out this month will do away with the su command, so you should use sudo -s instead of su (or simply prefix each superuser command with sudo).

Update 2: If you use JRE 5 from the Java technology archive instead of JRE 6, you won't need to use the screen rotation trick. You'll need to add these two lines to the .bashrc file in your home directory, and then stop and relaunch the Terminal activity:

export JAVA_HOME=/usr/java/jre1.5.0_13/
export PATH=$PATH:$JAVA_HOME/bin
You'll need to install Java and modify your ~/.bashrc before you try running ./arduino

Posted by Brian Jepson | Dec 21, 2007 06:35 PM
Education, Linux, olpc | Permalink | Comments (14) | Digg It | Tag w/del.icio.us

December 20, 2007

Copy and paste (sort of) into the XO laptop's Terminal activity

Xo-Pbpaste

According to ticket #5376, you can't copy and paste text between Terminal.activity and other applications. This became a problem for me this evening when I tried to copy a script from a web page into a file on the XO laptop. Fortunately, pygtk gives you access to the clipboard, and it's really easy to create a script that blasts the contents of the clipboard to stdout. I named it pbpaste after the Mac OS X utility of the same name. Save this file somewhere in your $PATH, make it executable, and you're all set.

#!/usr/bin/python

import pygtk
import gtk
cb = gtk.clipboard_get(selection = "PRIMARY")
print cb.wait_for_text()

It's not as flexible as a middle-click button would be, but it gets the job done, as shown in the figure above. And if I need to insert the contents of the clipboard into a file I'm editing in vi, I can always use :r!pbpaste

Posted by Brian Jepson | Dec 20, 2007 01:58 PM
Education, Linux, olpc | Permalink | Comments (3) | Digg It | Tag w/del.icio.us

December 19, 2007

Record more than 45 seconds of audio or video on the XO laptop

240Seconds
If you go into the Record activity on the XO laptop, you'll find that you can only record a maximum of 45 seconds of video and audio. But since almost everything in this little green wonder is written in Python, it's very easy to fix this. Open up the Terminal activity, cd to /usr/share/activities/Record.activity, and then use su to become root:

$ cd /usr/share/activities/Record.activity
$ su
#

Now, make a backup copy of constants.py:

# cp constants.py constants.py.orig

Open constants.py in vi, and look for these lines:

	DURATION_15 = 15
	DURATION_30 = 30
	DURATION_45 = 45

Add the following line right after the DURATION_45 line (you can put whatever you want instead of 240--this is the number of seconds):

	DURATION_240 =240

Next, find these lines:

	DURATIONS.append(DURATION_15)
	DURATIONS.append(DURATION_30)
	DURATIONS.append(DURATION_45)

And add the following line right after the DURATION_45 line:

	DURATIONS.append(DURATION_240)

Stop the Record activity if it's already running, restart it, and you'll now have an option to record for more than 45 seconds.

Posted by Brian Jepson | Dec 19, 2007 05:05 PM
Education, Linux, olpc | Permalink | Comments (1) | Digg It | Tag w/del.icio.us

December 12, 2007

XO laptops starting to arrive

Xo Intro V2

Doug Johnson reports on what may be the first G1G1 XO laptop to arrive:

The small box included the computer, the power adaptor, 2 sheets of paper with minimal instructions, and the battery which had to be installed. The package was shipped FedEx from Libertyville IL on Dec 7 and arrived on my doorstep at exactly 4:30PM yesterday, Dec 11. I had no advance notice and did not need to sign for the package.

Doug fields some questions from visitors to his site, and has a few pictures up there. Let us know if you got one, too! [via] Link

Posted by Brian Jepson | Dec 12, 2007 06:42 AM
Education, Linux, olpc | Permalink | Comments (0) | Digg It | Tag w/del.icio.us

July 15, 2007

Hackety Hack: Ruby for kids

hacketyhack_20070715.jpg

In response to Friday's post about Scratch, the visual programming language designed for kids, Ryan Briones writes:

In the same vein there's also Hackety Hack. I found out about it via the Makezine Blog - [via] Link.

HacketyHack is a Ruby-based development environment and tutorial lessons designed to make it easy for kids age 13 and up to write useful software. The guiding principle is to "make the most common code very easy and short. Downloading an MP3 should be one line of code. A blog should be very few" (6 lines, in their example).

On the subject of hackerly passtimes for kids, you should check out The Little Coder's Predicament, an essay written by the author of HackeyHack back in 2003. In it, we're reminded about how accessible programming was 20 years ago. While we've come so far in terms of what can be created with software -- especially with modern languages, availability of source code, and more capable hardware -- I think it's actually gotten a lot more difficult for young people to get started.

In the 1980s, you could look up from your Commodore 64, hours after purchasing it, with a glossy feeling of empowerment, achieved by the pattern of notes spewing from the speaker grille in an endless loop. You were part of the movement to help machines sing! You were a programmer! The Atari 800 people had BASIC. They know what I'm talking about. And the TI-994A guys don't need to say a word, because the TI could say it for them! - Link

So, there's Mindstorms for future roboticists, and there's Scratch and HacketyHack for young coders. These all seem either too specialized or too fringe, though. What's the modern day C64? For those of you with kids, how are you teaching your little ones to hack?

Related:
Scratch: exploratory programming language for kids - Link

Posted by Jason Striegel | Jul 15, 2007 04:55 PM
Education | Permalink | Comments (1) | TrackBack | Digg It | Tag w/del.icio.us

March 2, 2007

SeisMac: Turn Your MacBook Into a Seismograph

seismac_20070302.jpg
"SeisMac is a Mac OS X application that turns your MacBook or MacBook Pro into a seismograph. It access your laptop's Sudden Motion Sensor in order to display real-time, three-axis acceleration graphs. Version 2.0's enhancements make SeisMac an even more valuable tool for classroom demonstrations of seismic concepts and techniques." -Link.

Posted by Jason Striegel | Mar 2, 2007 12:43 AM
Education, Mac, Science | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

February 22, 2007

Bootstrap Education

opencourseceware_20070221.jpg
I received an email today from an electrical engineering student who is looking for resources that could help expedite a hacker's education, especially with regard to computer science and operating systems. I know I've been on the other side of that email on several occasions. Strangely enough, it's usually been in search of E.E. resources.

To answer the immediate question, it seems that the greatest network and operating systems education must begin with a copy of Slackware, a three day weekend, and a bunch of Mountain Dew. Who can say where it ends, but I'm pretty sure it begins there.

This got me to thinking about bootstrap education in general, though. Of course, there's MIT's Open Courseware project, which has produced a wealth of publicly accessible course material on almost every imaginable topic. I'm definately excited for a world that can foster armchair astrophysicists and bioengineers, but I don't know that we're there yet.

What do you think? Are there particular fields of study that tend to be compatible with a bootstrap, self-guided education? What are the ideal study paths for tomorrow's hackers? Please share your thoughts and resources in the comments!

Posted by Jason Striegel | Feb 22, 2007 01:34 AM
Education, Life | Permalink | Comments (3) | TrackBack | Digg It | Tag w/del.icio.us

Bloggers

Welcome to the Hacks Blog!

Brian Jepson.Brian Jepson


Jason Striegel.Jason Striegel


Philip Torrone.Phillip Torrone



See all of the books in the Hacks Series!
Advertise here.

Recent Posts

www.flickr.com
photos in Hacks More photos in Hacks