Diminutive, a small EDM prototype

For the last little bit I’ve been working on a small EDM prototype for use on large parts, pipe sections or for use in the field. While they do make and sell these things, the vast majority of them require the use of vibratory assistance, aren’t terribly accurate and are relatively low powered. I intend to make one that is accurate and could potentially be used as a ram EDM in a pinch. Also, I’d like it to be able to use copper and graphite electrodes so polarity reversal is necessary.

This is the linear drive of the small EDM. It has 8 inches of travel and is surprisingly rigid and play-free. I was going to use a gear motor on the top with a rotary encoder but since the loads are quite small a stepper should be OK, even at higher speeds.
This is the linear drive of the small EDM. It has 8 inches of travel and is surprisingly rigid and play-free. I was going to use a gear motor on the top with a rotary encoder but since the loads are quite small a stepper should be OK, even at higher speeds.

I’m currently trying to come up with ways to mount this guy on magnetic bases but also allow for small amounts of fine adjustment so that if there is a need for precision work, the unit can be dialed in. Right now the coupling is made of two pieces of steel. I’m going to replace one of them with nylon to reduce noise. I was going to use a spider coupler with rubber in between but I didn’t have one kicking around on the weekend when I was making it so I just made my own.

It's all made from 7075 aircraft aluminum. Pretty strong stuff. The movement was initially pretty stiff because the screw, which is just hot rolled, was a little bit out so I had to run it back and forth to wear in the brass acme nut. I may put two acme nuts into the travel block simply to take up play, as it stands though right now there is less tan .0003" of play, even with significant force applied.
It’s all made from 7075 aircraft aluminum. Pretty strong stuff. The movement was initially pretty stiff because the screw, which is just hot rolled, was a little bit out so I had to run it back and forth to wear in the brass acme nut. I may put two acme nuts into the travel block simply to take up play, as it stands though right now there is less tan .0003″ of play, even with significant force applied.

So next things next, the prototype electronics. Right now I’m simply going to use what I have laying around, so a TM1638 display, a cheap chinese stepper driver with a toshiba stepper driver and I opted for an Arduino to drive the motor. I will be making a full fledged PCB that will nicely fit in a box but I need to get the pulse generator and sensory circuits working first, then I can integrate them fully on to one PCB.

Just a rough testbed for the motion control and a simple interface. I would like this thing to be nice and easy to use.
Just a rough testbed for the motion control and a simple interface. I would like this thing to be nice and easy to use.

Well, anyways, I have quite a bit more work to do for this project. Even a single axis CNC can be a little more tricky since it’s doing more than simply positioning. A ram EDM is a dynamic machine that reacts to the sensory input to keep the cut running smoothly and with appropriate voltage and gap settings.

More later.

A goal challenged robot

I was thinking about cockroaches after seeing some sort of program on the subject. It brought me on to thinking about insect locomotion and the way complex moves are carried out by creatures without a central nervous system. It then started to occur to me that the reason that these creatures (or any other for that matter) function is that there are a great deal of stimuli. An insect’s leg, for instance, has thousands of sensory organs to determine touch, temperature an various other external events that aren’t processed anywhere centrally. The thought the occurred to me about the notion of how a nervous system might work. Hence my latest, yet ugly, creation. The Roboto v2.

Roboto V2. from the front
This is the robot from the front. Currently it has 6 ultrasonic range sensors. This was the best thing to test my idea.

I had a frame for a robot I had already assembled and really didn’t get anywhere with it until I had this idea. Basically the idea is to have a matrix of variables, in this case a 10×10 struct array. Sensors are ‘bound’ to certain segments of the matrix. The matrix elements also communicate with the adjacent nodes to relay positive or negative stimuli. These stimuli make their way to the motor controls which are bound to other matrix nodes, in my case, elements several nodes away on opposite sides of the grid. The values expressed in the node are translated into motor movement.

Roboto V2.0 from the top, A tremendous jumble of wires.

What I have right now is functioning better than I hoped. I made close proximity ‘painful’ and moving forward ‘pleasurable’. A close proximity on the side will cause pain on the same side. Currently the robot seems to find open areas but doesn’t stay in them. I did fudge some things which are.

  • Output to the motors is kind of jury-rigged to disallow stopping by ensuring that at least one wheel is at maximum motion based on a weighted average.
  • the sensory input is weighted at the nodes. This was needed simply to make it function correctly.
  • I have a constant ‘pleasure’ value plugged in to make the robot strive to move forward. otherwise it would probably just stay in one place.
Here’s a video of it in action, doesn’t do a lot but I think it’s neat because I can’t predict it’s reaction despite the fact that it’s perfectly logical.

Well, I’m going to try some other things and add more stimuli like IR sensors, compass, accelerometer and a gyro. We’ll see if I can get something interesting out of it. An in case anyone is wondering about the build here’s a point by point list of what I used.

  • Arduino Mega2560
  • A robot chassis that I bought off EBay. It’s not bad.
  • Built the motor driver board myself with an SN75441one and a 5A linear LDO reg.
  • 7.4v LiPo battery, 850mah for direct drive to the motors
  • A little cheap bread board
  • and LED-KEY module, based off the TM1638, very handy modules
  • lots of male to female wires!
Anyways, Let’s see how it goes.

Wiring S Review

Since I have so many units for physical computing now, I figure it’s time to review some of them. Perhaps somebody will find the review useful for when they are searching around for opinions about certain products.

The Wiring S board from Rogue robotics

Specs:

  • Manufactured by Rogue Robotics
  • Price ~$27 USD
  • Uses an Atmega644p (surface mount)
  • 64Kb of Flash (double arduino uno)
  • 4Kb if SRAM (double the uno)
  • overall size (2″ x 3″ x .5″)
  • 16 Mhz
  • 7-12v input or USB
  • 2 hardware uarts
  • 1 hardware spi
  • FTDI USB to serial interface

First thoughts:

I started off trying a few common things such as accelerometers, switches, sd cards and various other things. Most of the basic stuff from a standard Arduino will work except the SD card will you to program it through the SPI library. The form factor has changed a bit from Arduino in that they have used standard 100mil spacing. Also, they have separated the headers in to groups of 8, you can access each of these as ports instead of straight pins. you could do this with the Arduino but the pins were not always contiguous. Also, using the 644 is great because you get two hardware UARTs. very nice! Other than the changes mentioned, it is pretty much the same as an arduino and the software looks and functions almost exactly the same as the standard Arduino IDE. It all has very good fit and finish and is reasonably priced and functional.

Pros:

  • Better pin locations, based on a grid of 100 mill unlike and Arduino which has one row of headers off by 50 mil.
  • Better pinout usage. Ports are aligned along the header and power,rst and aref are on their own separate header, much better.
  • Easier to reach reset button if a shield were on the board.
  • more flash and SRAM than standard UNO, double to be exact.
  • inch based form factor (exactly 2×3 inches)
  • provision for pins or terminal for direct power feed rather than barrel or usb
  • reasonable cost, not super cheap or expensive, comparable
  • Switchover jumper for usb power and external
  • Canadian Made!

Cons:

  • Used huge USB connector like Arduinos. Most others stay away from these since they’re huge and most people don’t like the large cords.
  • For the same reason that the header placing is good also makes it bad if you like to use shields for the Arduino
  • sd library isn’t implemented but that’s not a big deal
  • slightly larger for factor (as per area) than the Arduino but not by much.

In closing:

This product is great for anybody who uses the Arduino or is learning. It’s better in almost every waythan an UNO and is offered for a  reasonable price.

Pop by robotshop or roguerobotics if you’d like to pick one up

Digital gage, Arduinos and Netduinos

Since my last update I’ve been busily collecting Arduinos and various other things. This is getting sort of expensive. Anyways, first off.

Digi-Gage

My Digi-Gage is coming along quite nicely. I spun a set of boards from Itead studio a couple of weeks ago, paid a bit extra for the ENIG and the black soldermask. very nice indeed.

Digi gage board

This board is for my digital gage. The board interfaces a PIC18F4685 to a LS7166 and thus counts ticks from a run of the mill glass scale. Hopefully it’ll work as well as I hope.

Digi gage board semi-populated

This is it semi-populated. turns out I forgot to buy the TQFP package MCU hence why the mcu isn’t present on the board. I’ll get the rest of the parts from Digikey soon.

Arduino – devboard collection

Devboard city

Well, I’ve been spending money on all kinds of things and perhaps it’s time to slow down a bit. Especially considering that I don’t use them. Here’s what I’ve got and some thoughts about them.

  • Arduino Uno – The standard arduino, handy, very handy
  • Arduino Mega 2560 – A bigger version of the standard. Good for extra pinouts.
  • Arduino Nano – Extremely handy, combining both the arduino usefulness with a breadboardable stick.
  • Chipkit Uno – A (much) faster 32 bit arduino. Only disadvantage is the 3.3 volt limit on IO. That said, it has double the IO of a standard arduino and uses the Arduino IDE
  • Chipkit Max – A larger version of the previous one with many more IO.
  • AVR Butterfly – Haven’t really played with it yet but it seems pretty promising for something cute and interesting.
  • Netduino Plus – Like an arduino but faster and able to be programmed in visual c#. I haven’t figured out how to program it in VB yet, perhaps it’s not even possible.
  • Netduino Mini – like the above but with a smaller form. Neat little device.
  • Duinomite Mini – another cool device with VGA out just like the Duinomite standard.
  • Beaglebone – Still haven’t used this much yet
  • Olimexino 328 – An arduino but built well. Great for industrial use. Gotta love olimex.
Anyways, here’s a gallery of the images.

Update time..

First off, something fun (if you’re boring like me)

I decided to record data in my car overnight and through the daytime. From 12:00am to 7:00pm thereabouts. I recorded the data every 4 seconds with the following sensors

  • NTC Thermistor
  • Low Sensitivity CDS (Resistor that changes when light hits it)
  • High Sensitivity CDS
  • Accelerometer X,Y,Z axis

Why did I do this? just cause. here is the resulting chart

Recorded data for Feb 1, 2012 in my car

Here is the legend: B = Temperature , C = Low Sens. Light, D = High Sens. Light, E = X axis accel, F = Y axis accel, G = Z axis accel.

All of these values are as the MCU read them, ranging from 0-1023. They are also logarithmic so as they approach 1024, the value is ‘squished’ so large changes appear small.  anyways, I thought it was neat to see the following things occur.

  • Temperature of the device goes down as the night wears on. There are some lights detected, probably people passing by in the alley behind my car. some drift is noticeable from the accelerometers (due to temperature change?). Also something to notice is that  X and Y are pretty much the same
  • The light appears to go haywire, this is me driving in the dark and going under streetlights. Also, the temperature increases, the accelerometers shake and show the duration of my drive to work.
  • As my car is parked you can see that I have parked crooked by the X and Y axis. Also, the sun starts to come up. As far as I could tell, it was pitch dark outside, the sensitive light meter says differently.
  • During the day, the overcast sky keeps the sky about the same light level, whereas with the less sensitive instrument, since it’s further from saturation, shows variations in the ambient light level through the day. Temperature also fluctuates.
  • The Drive home, very similar to the drive to work.
  • The car is level again and the light level drops as well as the temperature.

Anyways, I know it’s boring but it’s neat to see real world events (ones you didn’t know about) show up on the chart.

Arduino measurement

Update on the Digital Gage

Digital Gage

Things are proceeding apace with this as well. The rail and the encoder are attached together and they also slide together with the aluminum part I machined for that purpose. Now as for the board, this was a nightmare. Nothing but problems. I started out with a PIC18F46K80, the faster/cheaper versions of the high end 18f4680 and initially it was all OK. Until I tried to use the UART. For the life of me, I could not get the UART to stop spitting out junk. Once I started getting it to stop spitting out junk, it then output nothing at all. 🙁

RTJ gage board

Now, I’ve switch over to a standard 18f4680 but the LS7166 is giving me problems. aaargh! Anyways, things should improve with a bit of hard work and a fresh mind on the idea.

Many Dev Boards… what to do?

First, an update about the annoyo, it worked perfectly and maximized irritation while making itself difficult to find. Anyways, I just received my BeagleBone and I promptly thought to myself, what am I going to do with this? Then I thought, hmmm, I have a bunch of other boards too.

These boards aren’t including the mps430 board, the pic boards, the mikroelectronika board or the Friendly ARM. Too many boards, not enough time. I’m sure I’ll use them for something I guess. Tomorrow begins the fun of interfacing the LS7166, it shouldn’t be too difficult.

Ugluino, the ugly Arduino powered robot

So, even though I’ve built a wide variety of crap over the last few years, all of them with varying utility, I’ve decided to build a quick robot. With oodles of free time and the feeling of having to go back to work on the horizon after what feels like an eternity of holiday (1 week) I quickly grabbed a bunch of stuff I had sitting around and put this guy together with all the grace of a kindergarten macaroni art sculpture.

Ugluino Being Built

Based off of an Arduino Nano, this guy works just fine. I don’t like using Arduinos for the following reasons.

  • Perceived lack of control of what’s going on inside
  • Feels like cheating since it’s so easy
  • Arduino UI is kind of shitty, especially for larger source files.
  • When dealing with AI routines, making it difficult to use multiple files is a minus

Anyways, i plugged ahead and quickly pounded this out with the following IO

  • Input – The only one, the Echo pin on the ultrasonic sensor
  • Output – Trigger on ultrasonic sensor
  • 4 Digital output – for controlling direction on SN754410 Quad half h-bridge driver. These go to two gear motors which are attached directly to wheels
  • 1 PWM out for duty on motors
  • 1 attached servo out of the servo to turn the sensor
The back end of the Ugluino

Most everything worked out swimmingly until I fucked around with some wiring and produced a short. I hooked the robot on to the USB supply on my computer, I noticed after a few second that the power to the unit wasn’t running… hmmm POOF! Well, as it turned out, there was a problem with the wiring to the ultrasonic dealy and it blew what I beleive was a zener diode

I wasn’t able to figure out exactly what it was, I suspect that it is a zener diode that selects between main power and USB since it is on the output of the VReg. I could be wrong. Since I didn’t have any more Arduino Nano’s I simply tried to fix it and soldered a wire across the offending gap. The device seems to work fine…? Anyways, if anyone know what that part was on the Arduino Nano v3.0, I’d like to know ’cause I couldn’t find the 3.0 Schematics and the design has moved those parts around.

Anyways, The robot moves around based on a very simple algorithm.

  1. Stop Moving
  2. Scan from 40Deg Right to 40 Deg Left in 10 deg increments
  3. return appropriate movement from a function that analyses it
  4. execute proper movement (Forward, Backward, Right, Left, Hard Right and Hard Left)
  5. rinse
  6. repeat

It seemed to work reasonably well. I’d like to build a more sturdy version for shits and giggles so that I can play with the algorithms. I’m probably gonna build one with a PIC18F2685 instead of an Arduino. Also, instead of a single sensor, I will use IR proximity sensors to detect low lying objects. Moving the sensor with the Servo make the robot seem more intelligent than it actually is like it’s ‘looking around’. I quite like that. 🙂

Anyways, it’s my first post of the year, considering it’s January 1st and 3:52 am as I write this. maybe I should go to bed. Here’s a video of it getting around.

 

Some neat devices for the hobbyist

Ok, well, the year is coming to an end and I’ve seen a number of neat devices out there but here are some that I own. The next year coming up is a going to be an interesting year methinks especially since there’s gonna be some big changes in my life, not to mention the fact that I’ve quit smoking for some time now.

Anyways, here they are:

Arduino NANO

Arduino NANO

This nifty little device is the Arduino NANO. Now, me being me I believe that the arduino’s are something akin to cheating since you don’t need a programmer, it runs right off USB and communicated directly with the computer. The small size of this device and the ease of use make it truly a neat device. Call me lewis ’cause I am starting to like the arduinos. They sell for as little as $14 on EBay (they are probably knockoff but work fine) and are strangely useful for bashing out simple stuff.

Mini PIR Unit

PIR Sensor

This little guy can detect motion (heat difference) up to 5M away. it only draws .15mA and costs only about $4 on Ebay. The interface is simple with two trim pots, one to set the sensitivity and one to set how long the signal stays high when triggered. I bought a whole bunch of these for a project I never finished (A distributed monitoring system) and I might make something cool out of them.

2.4Ghz Transceiver

2.4GHZ transciever

This little guy seems to work really well. Based off the nRF24L01 chip, this transceiver will draw about 15mA at continuous load. If you’re using it intermittently, it’ll run at about 2mA. Alos, it was really hard to get an image of the pinout for this device since the seller kept saying they’d give it to me and never did. Here’s an image of the pinout.

transceiver pinout ripped from somewhere I don't remember (sorry)

You can get these devices for about $4-5 each. A real steal.

CP2102 USB to Serial out

CP2102 USB to IO

These guys are useful because you can plug a test device directly on to the usb port and not need a max232 or equivalent. It features a 3.3 and 5v port and works like a damn. Concievably you could use this with an intermediary to provide the SPI interface to the 2.4GHz Transceiver and use it to provide communication to other transceivers to the computer.

UltraSonic Transducer

Ultrasonic Transducer

This is the ultrasonic transducer. I was playing with it last night and it works really well. It measures anywhere from about 1 inch to 16 feet or so. Simply provide a short 10 to 100 us pulse to ‘trig’ and measure how long the ‘echo’ pin remains high. the ‘echo’ pin will go high after a delay once the trigger pin has been pulsed. I was able to get pretty good accuracy once I calibrated it and with some averaging routines I was abble to get resolutions of about .01″. Surely it wasn’t THAT accurate but it was close. These again were only like $6 each. It should be said, that with full measuring duty this device draws about 15mA.

Anyways, that’s what I’ve been playing with. Hopefully other people may purchase these little trinkets and have fun. EBay sure is an awesome place for the hobbyist like myself for weird knick-knacks!

Pre-Christmas things I’m workin’ on!

Well, it’s been a while since I’ve posted anything (I think every post starts like this) so I’m gonna document a few things I’m working on right now. Things that are both for work and some things that are not.

First off, the Mikro C compiler deal. A few days ago I went over the the mikroelectronika site and noticed that they had a sale on their compilers, a large develpment board for free if you get the compiler. I already have the PIC-C compiler but I figured it’s time to buy a new on since I haven’t actually purchased one for years.

So, for $250 you get both the compiler and the large development board.

Lot's of buttons and lots of stuff.

So there is the BIGPIC 6 board. It’s a well built board, .120″ thick and the parts and overall quality are top-notch. Granted, I haven’t used it much since I’ve only had it a couple of days, but if you’re going to try out a compiler and want a development board to test out your compiler, this may be your ticket.

The BIGPIC 6 in profile

The only thing I was disappointed about was the lack of inclusion of the displays. They’re not that expensive and from the site has them for way too much money. You can buy them off EBay and wire them yourself if you want though.

Ok, and now for another item of interest of things from the work front. Gages! RTJ gages, BX groove gages and RX gages.

I’ve been tasked with designing our new series of RTJ groove gages. My primary idea is to make it completely electronic and build a non-referential gage. Basically my electronics version is a linear bearing attached to a DRO slide

Digital Gage
My Digitial Gage Design. I have most of the parts and am working on the electronics

Doesn’t look impressive, it’s just a prototype really. Here are the actually slide and dro scale. Right now I’m working on interfacing the LS7166 quadrature interface controller but that’s going to take a while since I have to work on the dial indicator version of the gage since the old design has started to reveal problems.

Dial Gage for RTJ Grooves

Anyways, I have all of the materials and I am working on the varieties of things needed to complete these things.

Linear glass encoder
Linear bearing
Yes, an Arduino!

Anyways, these things are all coming along nicely and not in a vaporware kind of way. I shall keep things updated.

Stuff I’m playing with

Well, since I posted a bit of stuff yesterday I’m gonna post a couple of other things I’ve been playing with. Since I finally have a day off. may as well.

The FPS I’m making

I don’t know what I’m gonna call it, I don’t even like FPS’s anymore. I dunno. Anyways, heres a screenshot

FPS a la' Steve

Nothing spectacular.

Arduino and ChipKit

Like I mentioned yesterday, I’ve been playin with both the Arduino and ChipKit. Frankly, I need to get over my personal bias over these arduino based things. The way I feel about them is that it’s like cheating, where very little learning is required to make some sort of result.

I am however wrong. With the progress of technology we use technologies that are based off of previous technologies. Even using MCU’s would technically be cheating by my reckoning since we should be using a CPU and related chips. Then even deeper we should be using nothing but transistors in order to not cheat. So, by that reason, I am wrong. Using an arduino and premade shields shouldn’t reduce the feeling of accomplishment at all. Now that we don’t have to worry as much about hardware, application becomes top dog.

Anyways, Here are the Arduino and ChipKit

ChipKit and Arduino

Now, as it might seem, the chipkit is quite a bit more advanced. It uses the same arduino software for compilation. It is also substantially faster. There was a comparison done, here on hackaday. It is a really neat device despite the fact that the software isn’t optimized.

The only problem though, as I have already mentioned is the voltage difference. So, it can be said that many shields would not be compatible with the chipkit. They do have similar layouts though.

ChipKit and Arduino from the top

A problem I did have with the chipkit was that the software wouldn’t write to the chip. apparently I had to download and burn the new bootloader to the MCU that was on board. lucky thing I have a pickit3 and was able to burn it, otherwise it would’ve been a brick. I think it’s odd that they didn’t test for that (apparently it was a certain batch of pic32 mcus that had a problem)

Something I do like about the chipkit is the extra IO and the fact that it uses a miniB plug rather than a massive printer usb plug.

Wireless units

At 4$ shipped per piece, these are wireless units. they have a variable frequency selectable by software and have a range of about 100m. I was going to make some of the centerpieces with them but since people take them home, it’d be pointless.

Wireless modules

Well, I’ll keep on truckin’