retrointerfacing

- connecting past and future -

Archive for the ‘Arduino’ Category

MakerBot Thing-O-Matic

without comments

Ok, one could argue that it is cheeting, but before the PrinterPrinter is ready, I thought of taking a shortcut by building a makerbot first. The Thing-O-Matic works right out of the box (and about 200 m3×16 socket screws later):

Written by edwin

March 21st, 2011 at 4:05 pm

18-servo walker

with 3 comments

New A4 flat-kit design: a 18-servo 6-legged hexapod. It does not walk (yet) but servo control works and the mechanics look good:

r0013970

All parts can be cut from a single A4 sheet of acrylic glass. Other parts include 18 miniature servo’s (selling for 5EUR as TopLine mini-servo ES-05 JR (at Conrad Electronic)) and an ottantotto board

r0013969

The servo’s are controlled using a simple soft-servo library (for the timebeing) which can be found here.

Written by edwin

August 22nd, 2010 at 8:53 pm

Posted in Arduino, Robotics, fablab, fabrication

Tagged with

Standalone dial-a-song

without comments

Using a telephone retro-interface and Arduino wav-shield-derivative a box has been build which allows you to use an old rotary phone as standalone dial-a-song system. This makes an excellent CD-pre-listening device for our CD-sales stand at concerts.

r0013957

The system is fully documented (including schematics, software, PCB layout) on the wiki. Although numerous designs have been made where the innards of rotary telephones have been replaced by other electronics (birthday card sound chip, GSM telephone), this project has a completely different approach. No changes to the telephone have been made. The phonebox generates line-voltage, even the 90V 20Hz ringer voltage. A sound input/output is added for line level signals. The box is powered using 12V dc, so mobile operation is possible.

phonebox electronics

The idea (accidentally re-invented) is not new - so it is in two respects a retro-interface From wikipedia: Established by rock band They Might Be Giants (TMBG), Dial-A-Song consisted of an answering machine with a tape of the band playing various songs. The machine played one track at a time, ranging from demos and uncompleted work to fake advertisements the band had created.

So basically this design is your dial-a-song-in-a-box….

Written by edwin

August 22nd, 2010 at 8:03 pm

Flatpack Walker with Sensor

without comments

As presented for the first time on FAB6, using a Sharp gp2y0a02 sensor the flatpack-walker just got a little bit smarter. As long as the distance sensor is triggered, the robot walks backwards.

flatpack

The code is still pretty simple:

// avoid obstacles using Sharp G2P sensor on Analog 0
#include <Servo.h>
Servo frontservo,backservo;
char walkpattern[] = {60,100,100,100,100,60,60,60};
void setup(){
  frontservo.attach(9);
  backservo.attach(10);
}
void loop(){
  for(int n=0;n<4;n++){
    if(analogRead(0)>500){
      frontservo.write(walkpattern[2*n]);
      backservo.write(walkpattern[(2*n)+1]);
    }
    else{
      backservo.write(walkpattern[2*n]);
      frontservo.write(walkpattern[(2*n)+1]);
    }
    delay(200);
  }
}

Written by edwin

August 22nd, 2010 at 7:40 pm

Posted in Arduino, Robotics, fablab

Tagged with

Beamer autostart

with 2 comments

For a public display a beautiful LG HS200G LED beamer has been used which can play from USB data sources. However, no autoplay - autostart function was included. The beamer has been connected to a power source with timer switch. However, somebody still needs to push the on-off button, go trough the menu etc..

The projector is used for back-projection in a window, using standard LEE 216 filters ‘White Diffusion’ as projection foil.

A simple solution has been made using an Arduino Nano (any Arduino or Atmel AVR will do) and the Arduino IRremote library Using the example sketches and one TSOP17xx IR receiver chip, the codes used by the remote for powering on/off, starting USB, left, right, menu, ok etc.. were located. (In this case an NEC protocol). After that a simple Arduino sketch was made using IRsend commands and delay’s (for example a delay of 15 seconds between powering on and going to the USB menu). See wiki for full code and documentation.

#include <IRremote.h>
 int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
IRsend irsend;
 decode_results results;
// remote control definitions
#define on 0x20DFB54A
#define usb 0x20DF3EC1
#define ok 0x20DF22DD
#define down 0x20DF827D
#define left 0x20DF609F
// sequence to get the beamer playing:
typedef struct {
 unsigned long time;
  long code;
} remoteAction;

remoteAction beamerShow[17]={
  {5,on},{20,usb},{23,ok},{24,ok},{25,down},
  {26,ok},{27,down},{28,ok},{29,ok},{30,ok},
  {31,down},{32,ok},{33,left},{34,left},{35,left},
  {26,ok},{1000,on}};

int pointer=0;
void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(BUTTON_PIN, INPUT);
  pinMode(STATUS_PIN, OUTPUT);
 }
// and somewhere as play function:

void loop() {
  unsigned long timer=millis()/1000;
  if (timer>beamerShow[pointer].time  {
     digitalWrite(STATUS_PIN, HIGH);
     irsend.sendNEC(beamerShow[pointer].code, 32); //on-off-left-right-usb
     digitalWrite(STATUS_PIN, LOW);
     pointer++;
  }
}
// rest of IR remote example has been left out - see wiki for full code

The timer switch turns on both the arduino power supply and beamer power supply. On startup the Arduino sends out the required codes to start a slide show from USB disk. After three hours, the arduino sends the power off command.. a little after that the timer switch switches off power completely.

beamer

Written by edwin

May 26th, 2010 at 9:21 pm

Posted in Arduino, home improvement

Tagged with

Spark Creativity? Don’t get out of the box. Design your own box and think from within!

without comments

For years I have dismantled old printers, clocks, radio’s, disk drives, got all the screws out and sorted them in neat little boxes, taking the plastic gears, bearings, etc.. and storing them all separately. This all resulted in a workshop with a large amount of boxes, drawers, cabinets, all filled with a wealth of electronic parts, gears, motors. Strangely enough, coming to think of it, I have hardly ever used most of these parts later on. They always -just-don’t-fit-entirely- but ‘will do as placeholder for now’.

I’m currently in a luxury position that the projects I build are being paid by other people. In order to save time, I order parts from online suppliers and hardly touch what’s left on my shelves. It is quite risky to use salvaged parts in production, you can never be sure that you can order replacement parts within a day. (Instead you have to go out on a Ebay-hunt for that one specific type of plotter you remember taking these nice gears out)

As engineer your problem solving space is mostly defined by performance on the one hand and time + money on the other hand. Technically and creatively, virtually no boundaries apply. Just get the best parts you can find for sum X and build your machine in time Y. Interesting observation is that these constraints do not go well with hobby work (which most of the time is lacking both time and money) Perhaps a good definition for distinction between hobby and professional: lack of deadlines?

Recently I started giving physical programming courses in a Creative Technology bachelor track. The assignments that spark most creativity are the assignments with on the one hand a clear goal (make something that does this or that) and on the other hand a severe limitation (but use only these parts). One nice example that yielded most creative solutions this year was designing a drawing application using Processing/Arduino. The only input that could be used for this drawing application was one light-sensor (LDR) connected to the Arduino. No other inputs could be used. At first students were complaining. It could not be done. It was way to limited. What? was I really serious? There must have been a mistake in the assignment-description… and so on. After a while they accepted the challenge and were getting into it. I have never seen so many different outcomes of one (simple) assignment that work all differently. Not that they were all good or usable, but all solutions were different, working, creative and most important of all, fun. This assignment worked by far better than ‘make a nice animation using shapes and images’ - which leaves far more room for creativity (you would think so) … but does not spark imagination at all, apparently.

picture-2 picture-3 picture-5

Some time ago the spark of Personal Fabrication, or desktop fabrication caught me too. I need a 3D printer! Yes. I wants one! I started out searching and found most of the designs on internet that are neatly listed in Make Volume 21. Then I immediately hit the engineering boundaries of optimization. If you want a really useful machine, you need the fastest, most accurate and preferably not too expensive machine you can get. If you want CNC on your desktop, you need a system with backlash-free trapezoid spindle rods with ball-nuts. Nice linear sliders.. Oh. and standard Nema23 size stepper motors with micro step control. The easiest way is to order a kit, or get quality parts at a distributor - and after some 500$ to 1000$ you are the proud owner of a machine that will work for you..

I had three old dot-matrix printers lying around, which contains sliding rods, timing belts, stepper motors.. the basic ingredients for a Cartesian (XYZ) robot. My first approach was the classical one. Dismantle the printers, get the sliding rods out, salvage the bearings and stepper motor, start designing a base plate with nice brackets to mount the rods, get correct gears, get better stepper motors. I started reading on internet again. How somebody started out with printer parts, but regretted this, because he should have bought linear bearings from the start. How someone tried to use threaded m5 rod as spindle drive and failed miserably. No-one was even THINKING of using the crappy 50-step low resolution stepper motors that normally inhabit old StarLC-10’s, but immediately got themselves a decent set of some 400-step hybrid motors.

This project was going nowhere. I constantly found myself optimizing the design, trying to think of better parts, more accuracy, order good parts, order a kit. Perhaps abandon the printer junk completely. Hours on the project were mostly spent surfing internet, finding other CNC DIY designs on Instructables and maker’s blogs, browsing through kit distributors’ sites and manufacturers of spindle rods. All bouncing back and forth between the engineering criteria of performance vs. time and money.

Then I chose to severely limit my options. I was going to make a repstrap (3D fabricator) only from printer parts and salvaged computer Junk. No spindle rods, expensive bearings or high qualtiy stepper motors. All of a sudden the goals and the problem-solving space were very clear, and the project took off like a rocket.

The initial steps were simple. I took three printer head mechanisms and bolted them together to form a two-axis machine. I cut the printer-driver boards to leave only the stepper motor drivers, used the printer’s power supply and took out an Arduino board to control the steppers. Key ingredient here was that I choose to leave intact as much of the original mechanisms as possible, saving me from the tedious work of making high-precision bearing mounts etc.

The initial tests were very disappointing. The resolution of the print-head was way too crude, and, above all, the stepper motors were by far not powerful enough to reliably power the construction. I was on the verge of abandoning the project again. Then creativity really kicked in. Using the gears that were normally used for driving the paper rolls, I made an extra gear reduction in the printer-head mechanism. With the rods available from various clamp rolls, I made an axle synchronizing the movement left and right. The optical interruption switches were retrofitted as end-stop detectors.

r0013736 r0013686 r0013691

So.. the project is still underway. Conclusions till so far: store (and use) mechanisms, not just parts. Try to use as much as possible from original mechanisms as possible. This will save time, money - and also important - saves waist!

Conclusion number two: if you want to spark your creativity, severely restrict your problem-solving space. It sounds counter-intuitive, but it works!

Written by edwin

May 26th, 2010 at 8:53 pm

Locative media - phone

without comments

Although most modern telephones have GPS installed - this project takes things a little differently. An old rotary phone is connected using the phonebox to a GPS antenna. Stories are being recorded and stored with location data in the device. When the device re-visits the location, it will give a phone call using the earlier stored message. See the phone in action on the ‘kunstfietstaxi’ in the following clip:

The electronic system has been used in a stand-alone ‘voicemail-box’ and in this GPS-enabled taxi phone. The voicemail box (’phonebox’) is on display at the ‘MultiSolo’ exhibit. More links on the taxi are the following: ‘kunstfietstaxi’. - see also youtube or this clip and TVenschede.

sany0096 sany0093 sany0102

Written by edwin

April 23rd, 2010 at 7:00 pm

Posted in Arduino, retrointerfaces

Tagged with ,