Thanks Jeff for organizing another excellent Propeller Expo! Here's a video of my talk:
Here are my notes:
"Hi, my name is Hanno Sander. I'm a full time propeller developer. In the last 2 years I’ve worked on several fun projects, including the DanceBot, the PropScope, the IODreamkit, ViewPort, and 12Blocks.
2 years ago I breadboarded my first dancebot with a Propeller Chip, a gyroscope and an accelerometer. I succeeded in getting it to balance and move under programmatic control and dance interactively with a vision system. My latest robot was displayed as an art exhibit for 4 weeks where it balanced a flute of champagne.
To help me develop and debug dancebot I developed ViewPort. Viewport started as a tool to monitor and change variables- to help me understand what's going on while my program was running. I soon added an 80msps logic analyzer, a fuzzy logic engine with graphical control panel, and support for computer vision with a frame grabber and vision engine that runs on the Propeller and an integration with OpenCV. I recently added a visual spin code debugger that was compared favorably to Visual Studio in the September edition of Robot magazine. It supports stepping over single lines of spin code, breakpoints, stack trace, function profiler, a memory map, and a command interpreter- all tools invaluable to developers, but fun and easy to use for beginners
Ken from Parallax approached me a while ago to build the successor to parallax's usb oscilloscope. We're now very close to releasing a truly wonderful device at a great price. The propscope uses the propeller and the viewport platform to deliver all the capabilities of a quality oscilloscope, function generator and logic analyzer for around $200. It’s ideal for the student, hobbyist, and professional. It’ll ship with 1x/10x probes, a USB cable and a Getting Started Guide.
I’ve also been working with Brian from uController.com to bring the IODreamkit to market. This handy circuit board combines the Propeller with a high speed 104Msps ADC, a 26Msps high speed DAC, and several slower ADCs and DAC’s and drivers. It’s easy to perform simple experiments with this board by plugging components directly into the breadboard headers.
Now, let’s look at what you can do with 12Blocks. I started my latest project after failing to find a fun, yet powerful application to get my kids into electronics and robotics. 12Blocks uses the Parallax DemoBoard as a foundation to output sound, graphics, read sensors and control actuators. Programming in 12Blocks involves arranging blocks in the worksheet- let’s see what you can make with just a dozen blocks.
In this first example I’ll use 3 different techniques to blink the built-in led’s. I’ll blink the first led by continually toggling the led. Notice how I simply drag blocks from the library to my worksheet where they snap together. I’ll blink the second led by outputting a frequency on the led’s pin. And finally I’ll gradually brighten the last led by using a repeat loop index to adjust the brightness of the led with pulse width modulation.
The yellow areas inside the block are the blocks parameters. I can click and type into this area to configure the led’s pins and frequency parameters. To run my program on the Propeller I simply click the “load” button. Files are saved as normal spin files which I could edit by hand if I wanted to. I can view the pins activity using the “view pin” button and here I see pin 18 toggling once a second, pin 17 toggling at 10hz and pin 16 being driven by pulse width modulation.
In the real world there’s lots of led activity. The lowest is getting brighter while the other two are blinking at 1 and 10 hz.
Let’s see what fun we can have with sound. This program uses the “tone” block to output notes of a specified pitch and duration. It also does some speech synthesis and plays a wave file. I don’t like compiling and loading applications, so 12blocks allows users to change parameters on the fly- watch what happens when I change the pitch of a tone or the speech speed parameter.
Now it’s time to build a simple robot with a servo controlled by a mouse. Notice how all parameters accept text, blocks, or even a combination.
Here is my demoboard connected to a standard ps2 mouse. 2 Continuous rotation servos drive wheels while a standard servo rotates the lego car. When I scroll the mouse wheel, the standard servo rotates. Moving the mouse up/down will change the speed of the robot, while moving left/right will make it turn.
Finally let’s do some graphics. This program draws text, vectors, sprites, and shapes to the screen. Notice how easy it is to change vectors and sprites. Again, to change the parameter I just edit it- watch how the triangle moves to the new position when I change it’s position.
12Blocks, like ViewPort is easy to customize and extend. This excel spreadsheet uses macros to communicate with the Propeller through 12Blocks. I can read and write variables, get trigger updates and more. I’ve recently released a client kit that includes sample programs written in vb.net, c#, excel, python and matlab.
As you can probably tell, I love doing what I do. The Propeller is a wonderful processor that has allowed me to do some pretty cool stuff. Thank you Chip, Parallax, and all my beta testers and customers for your support! For more information on all of my projects check out: mydancebot.com
a free trial of ViewPort
- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!