Flying Robots At Hive

Yesterday we had the Philadelphia Robotics Group (PHROG) stop by for their monthly meeting. We demoed a few robots, talked other projects, and we also talked about the possibility of having classes and workshops in the future.

This robot requires 4 rotors to compensate for the amount of torque it generates.

The coolest part of the night was when Glen Adukas demoed his flying quadrotor robot. It still needs a few tweaks here and there, but he was able to get it off the ground.

Our next meeting will be October the 13th. Feel free to join us!

Monthly Monday Microcontroller Madness: Motors!


After speaking to a few folks that expressed an interest in the MMMM workshop, it became apparent (a) most folks were newbs who want to learn the basics and (b) everyone wants to control motors.  Excellent!  We’ll do that.

Although motor control is potentially a vast and complex topic, with highly specialized branches, the basics are fairly easy to learn — and they’ll take you pretty far.   So … we’ll be prepared to present the following items:

  • DC motors
  • H-bridge circuits — these let puny microcontrollers run fairly powerful motors
  • Stepper motors — just a little more complex to program than DC motors and they use H-bridge circuits too
  • Quadrature Encoders — these are a  simple and accurate way to read the position of something

We’ll also try to discuss some organizational items — like the logistics of future workshops and the use of the MMMM GitHub, so that we can build up assets collectively, share them with the world and manage changes and contributions in a free-and-easy-but-organized way.

If you are coming , please bring:

  • Yourself — If you’re a newb, welcome — If you’re an MCU Yoda, then attend you must and wisdom to newbs impart
  • Some ideas
  • A laptop if you have one
  • You may want to install VMWare Player or VMWare Fusion before you arrive
  • An MCU development kit if you have one or …
  • Some money if you don’t.  We’ll have some development kits that you can buy.  Plan on at least $10 for the kits and some parts that you can use for small learning projects.
  • A bread-board if you want to build some live circuits to keep.  We’ll have breadboards to loan, but if you want to take one home, it has to be one that arrived with you.
  • That’s about it — see you all Monday.  To whet your appetite, there is some prototype code below for reading a quadrature encoded position detector (not really elegant enough for a final effort, but it’s a start).  We’ll have you writing stuff like this in no-time.

    Continue reading “Monthly Monday Microcontroller Madness: Motors!”

    Workshop: How to torrent

    Rule #1: Don’t steal stuff.
    Rule #2: Always be seeding.
    Rule #3: Always have 3 rules. (I guess)

    The more we use the internet, the bigger the files we move around get. There was a time when I carried around a 1.44MB floppy with all my important garbage on it. Then ZipDisks! 100MB of storage. omg. Well, now when I want to share a day’s worth of webcam footage, I need to find a way to get 4GB of video to 12 different people. This is where bittorrent shines.

    We want to show you how to torrent!

    • Workshop: How to torrent
    • Tuesday, 9/13, at 6pm
    • at Hive76, 915 Spring Garden
    • Free!
    • Bring a laptop with this installed: µTorrent
    • Please leave a comment to RSVP

    Here’s a tiny vid to explain how it works. Basically, everyone downloads one piece of the file at a time until they have the whole enchilada. Then in theory, they continue to share their copies with other’s that don’t have it yet.

    This makes it easy to download huge files from large groups of users. It’s true that most torrent traffic is used for sharing pirated work. But we won’t be telling you where to get any movies or anything. We want you to know how to share your own stuff with bittorrent!

    Hive Cleans Up

    As mentioned previously, on Sunday, the 5th of September, members of Hive76 spent time cleaning up the street at 915 Spring Garden St. The work proved to be hard but rewarding. While there are still significant areas of garbage and weeds, we made a big impact on the areas in which we worked, paving the way for future improvements.

    As the coordinator for this particular activity, I really want to give my deepest thanks to our members Mike Hogan, PJ Santoro, and Dan Toliaferro for coming out and busting their asses in the 80+F weather. I also want to thank Dave Sharp for providing some supplies as well as one of our fellow tenants at 915 Spring Garden St. for bringing us water while we were working.

    More cleanup efforts are still to come, we really want to develop the garden box and maybe add more garden boxes around the building. We’d also like to spiff the place up a little it with some local art, any sort of standing sculptures that can live permanently in our new garden. If you would like to donate to our cause, with plants or dirt or trees or money to buy such things, then please contact us at hive76@hive76.org.

    In the meantime, check out the before and after pictures:

    The sidewalk had weeds poking through the cracks and lots of cigarette butts and broken glass.
    More sidewalk weeds

     

    A completely overgrown garden
    The garden from another angle
    So we got to work!
    PJ was ready!
    And jumped right in
    All of the weeds are gone from the sidewalk
    And the garden is now cleared out of all of the weeds.
    Ready for some flowers or maybe some grass

    Cast-resin 3D printer parts

    Red resin gear closeup!
    The materials you'll need: resin (left), silicone mold material (colorful buckets), mold release, paper towels, cups, stirrers (for mixing the molding material)

    At Hive, we spent part of this summer making a bunch of cast-resin 3D printer parts. So instead of printing these parts up as we’d normally do, we made molds out of silicone mold material, and then filled these molds with resin whenever we wanted a new set.

    The materials for this are cheap to acquire and easy to handle – some kind of resin (e.g. Smooth-On 326), and also material for making the silicone masters into which the resin is poured. We used Oomoo, but there are other materials out there. Other than that, you need standard stuff: mixing containers and mixers, napkins, etc.

    Why would we do this? Well, in theory it’s easy and cheap if you can do it right, or if you aren’t too hung up on quality. And the parts end up looking extremely cool, especially if you use some tinting in your resin mixture. We created a couple parts sets with this tinting, which looked amazing.

    However, we did run into some problems. For example, if you don’t have very elite molding skillz and materialz, you end up having to finish all the parts manually – this means deflashing, and also drilling the dozens of holes that your printer’s rods, bolts, and screws will go into. This takes a lot of time, and is very tough to do correctly. You also run the risk of breaking the parts when you drill them, which means… more molding. There are lots of other things to deal with too – what do you do if one of your master molds breaks? How do you acquire high-quality original parts to base your molds on? Etc.

    Interested in trying this out for yourself? Here’s the RepRap Wiki page on the subject, and I’ve also written a lot more about our experiences here.

    Monthly Monday Microcontroller Madness @ Hive76

    Pile of Arduino things. by Andreas Wetterberg
    Pile of Arduino things. by Andreas Wetterberg, on Flickr

    Starting at 7 PM on Monday, September 12, Hive76 will be starting a new ongoing monthly workshop focusing solely on the wonderful world of microcontrollers.

    “What’s a microcontroller,” you ask? Let’s take a quick glance at the Wikipedia page!

    “Yeah, so?? Why should I care?”

    “What if I’m familiar with microcontrollers, and I’m just looking for a place to talk shop, jump-start a stalled project, or help other folks learn a thing or two?”

    • Come on down!!! (up, or over also apply here)

    Great! Now that you’re coming, what can you expect?

    You can expect to be welcomed into a friendly environment and you are encouraged to bring your ideas, aspirations, projects, and most importantly, your questions! Individual projects, group projects, build challenges, basic skill instruction, hardware buying guidance, and experts on hand! I would like to emphasize that this workshop is open to complete beginners. No prior experience with electronics OR programming needed! We’ve all got to start somewhere!

    PIC, Basic Stamp, MSP430, Arduino, etc… no microcontrollers will be turned away! This is an all-inclusive, open workshop to promote learning!

    The Fine Print: Materials will be available for use within the space and a limited amount of hardware will be available for purchase. If you’ve got a laptop or netbook handy, please bring it along. Instruction and guidance will be available free of charge!

    (Donations are always appreciated)

     

    This workshop is brought to you by: KBI, Inc.

    DIY Photo Studio at Hive76

    Adam and I have been talking for a while about a little collapsible photo studio for posting images to the blog and to instructables. Well, its here now, for all to use!  All I did was take a roll of photo background paper and mount it semi-permanently above our main workbench.  To use it, pull down a length of paper to cover the desk, then turn on the fluorescent work-lamps. The paper rolls back up out of the way when you aren’t using it.  Here are some spiffy test shots I took of one of Chris’ sculptures.  Neat, huh? 

    DIY Scratch I/O Board Using Arduino

    Scratch Project that I used to test the DIY Scratch Sensor Board

    I downloaded Scratch to play with it after a presentation on E-Textiles at UPenn back in April.  I found it kind of interesting, and I was particularly interested in the “Scratch Sensor Board“, which provides a way to send physical signals into Scratch scripts and have Scratch respond to them.  It’s a pretty simple protocol, and I filed away “build a Scratch sensor board” as one of those projects that I might do … someday.  Well, nothing like being stuck at home during a major weather event to crank up the boredom level to the point that ya gotta do something.  So, courtesy of Hurricane Irene, here’s a DIY Scratch Sensor written as an Arduino Sketch.

    This sketch uses information that you can download here.  You may need to use the Scratch Board Watcher to get things cooking 100%.  For example, this is how I learned that the sense of the Button input is inverted.

    /* 
    This code emulates a Scratch Sensor board
    */
    
    // --- sends serial bytes corresponding to a signal with value given by "data"
    //     coming from the channel designated by "channel"
    //     data is in the range 0 .. 1023 inclusive and generally gets mapped to the range 0 .. 100 by Scratch
    void sendScratchData(int channel, int data);
    
    int buttonPin = 2;   // Change this if you want to use some other pin for the Button input. Just don't use pins 0 or 1.
    int ledPin =  13;    // LED connected to digital pin 13. I used this just to monitor the request/response traffic
    
    void setup() {
      pinMode(buttonPin, INPUT);
      pinMode(ledPin, OUTPUT);   
    
      // Set baud rate expected by Scratch sensor:
      Serial.begin(38400);
    }
    
    void loop()
    {
      int inByte;
      // if we get a valid byte, send the scratch data
      // Technically, we should check that the value is a 0x01 byte,
      // but, meh ...
      if (Serial.available() > 0) {
    
          // toggle the LED so that we can see the request/response activity
          // this is optional, really
          digitalWrite(ledPin, ~digitalRead(ledPin));
    
          // get incoming byte:
          // we really should test the value, but meh++
          inByte = Serial.read();
    
            sendScratchData(0,analogRead(0)); // Resistance "D" is mapped to Analog 0
            sendScratchData(1,analogRead(1)); // Resistance "C" is mapped to Analog 1
            sendScratchData(2,analogRead(2)); // Resistance "B" is mapped to Analog 2
            sendScratchData(3,digitalRead(2) * 128); // Button is mapped to Digital 2
            sendScratchData(4,analogRead(3)); // Resistance "A" is mapped to Analog 3 
            sendScratchData(5,analogRead(4)); // light is mapped to Analog 4 (signal is inverted)
            sendScratchData(6,analogRead(5)); // sound is mapped to Analog 5
            sendScratchData(7,0); // slider did not map slider, but any analog input could be moved here.
            sendScratchData(15,4); // version info The current version is 4
      }
    }
    
    void sendScratchData(int channel, int data){
       byte highByte;
       byte lowByte;
       data = data & 0x3FF;
       highByte = 0x80 | (channel << 3) | (data /128);
       lowByte = data & 0x7F;
    
       // --- send the data
       Serial.write(highByte);
       delayMicroseconds(400);
       Serial.write(lowByte);
       delayMicroseconds(1000);
     }

    Neighborhood Cleanup 9/5

    le broom

    The block on which our building for our space sits is a bit of a… wayward soul. There is a lot of garbage tumbleweeding through the street, giant weeds poke up through the sidewalk everywhere, and a smattering of graffiti makes someone’s presence known.

    Well, we’ve decided to clean it up. All of it. Next Sunday, September 5th, from 12pm to 5pm, we’ll meet at the space and just start doing. We originally planned to do it this weekend, but the IMPENDING DOOM NAMED IRENE has forced us to postpone.

    Bring what you can, plastic garbage bags, shovels and rakes, brooms, leftover paint, etc. Don’t forget some heavy gloves, there are a lot of broken glass and other sharps in the area.

    If you can’t make it to this date but still want to help out, we will have other dates in the near future, so stay tuned to the blog for future announcements.