Posts Tagged ‘How to make’

Easy way to make Photo Canvas Box Frames

box frames

I like the idea of having canvas photo prints on the wall but I also have enough of an ego to think that I can take a photo good enough to warrant printing my own canvas. Also I think it’s a bit more personal too when it’s your own photo/ art.

I take alot of photos and never do anything with them, I always think about framing but to get the benefits you need to print big or do a series of panels, which is what I’ll be showing how to do along with a bit of printer/ photoshop advice. Just so you know Photoshop CS3 has some excellent tools for stitching photos together to make panoramas.

There are alot of shops that will print and box frame your photos on canvas for you and you can get canvas framing kits to help, so no worries if you don’t have a capable printer, it will probably just cost a bit more. I genuinely think anything over A3 you’ll want to pay to get printed anyway – because I doubt you’ll want to spend £1,000+ on an A2+ printer just to print one picture.

However, I am lucky enough to have worked for Epson so I own a Stylus Photo R1900. It’s fairly cheap I guess for what it can do but it’s limited to A3, so its just on the edge of the realm of large format printers. But doing your own framing is only cheap if you already have the printer – I doubt any decent shop will charge you more than £25 per A3 canvas print so don’t buy a printer specifically to do one print!

The right printer, media and ink

Whether using Epson printers or not to print canvas you need a decent printer and it’s all about the type of inks used, your average inkjet ink won’t stick to canvas and you need a printer that can also deal with thicker media and roll feeds. The R1900 can do that and it’s the cheapest one that you can get from Epson (around £400) – also look for the R1800, R2400 and R2880 as good ones to try. I would recommend the R800 but the smallest canvas roll you can get is A3 (13inches/ 330mm wide), there is a cheaper A3 one, the 1400 but don’t bother as its inks  (Claria) will just flake off canvas. Not sure about whats out there from Canon, HP etc… but I guess what I’m saying is check what your printer can do any decent manufacturer or shop should do you a test sample regardless.

Ok so you got the printer, now remember that I have worked for Epson, so please take what  I say as slightly biased and with a pinch of salt: Get the genuine Epson ink and media! (or the equivalent for your printer). You will honestly see the difference, in the case of the Epson stuff all the media is coated specifically for the inks and printer, so cheaper non-Epson paper/ canvas won’t work as well and you’ll see prints fade, smudge, chip off and blur – same for HP, Canon etc… If you use refills on these inkjets you’ll see the same kind of thing but you’ll also jam up your print heads – its the biggest cause of issues with the photo printers – that and continous ink feed systems. So if you use the shitty materials for this then expect the shitty results that’ll follow!

For the R1900 you’re talking about £95 for a full set of inks and £35-40 for the canvas roll. The £140 media outlay might seem high but this will let you do around 12 A3 panels, so works out about £10 per A3 panel with plenty of ink to spare to do other stuff, if like me you do A4 panels then I’ll easily get 20 on a roll – either way using this stuff is going to get you good results, even on auto settings. My only gripe with the R1900 is that it cains the inks so you have to be sure not to waste any prints – if I could, I would have the R2400/R2880.

Anyway so you get the idea: good printer, good media, good ink. Or just get your canvas printed by someone else – I’ll do it for you if you pay for the ink, media and postage!

Making the frames

Now you can spend some money and buy the wood, glue, tools etc… to make your own frames but you can get frames for around £2-3 for A4, maybe less (any good sources please let me know). Take a trip to your local wilkos, poundland etc… and find some existing box canvas prints (or cheap wooden photo frames). Check the dimensions to make sure your canvas will adequately cover the entire frame, the sides and some of the back for the best results, if you’re using a roll feed on the printer then the frame can be as long as you want just as long as the canvas can cover the frames width. I took a piece of canvas with me and a tape measure to ensure I got the best frames and odd looks from fellow consumers and store staff.

Pull out the canvas and staples

That’s it! Your frames are built – just strip off the existing canvas using some needle nose pliers and pull out the staples and you’ve got your frame ready in far less time and effort as constructing one yourself. Don’t worry about damaging the old canvas, chances are if you were cheap like me the picture on there was crap anyway.

3 A4 Frames for £9

Setting up to print your canvas
Whether or not you’re printing your canvas these instructions still apply. We need to create a template to help us print, crop and frame the canvas – please scroll down to the framing section to get an idea.

First measure up the width and height of the frame from edge to edge, now measure how thick  the frame is and finally measure the width of the wood used to make the frame.

For example my frame is 30 cm x 20cm, my frame thickness is 2cm and the width of each piece is 3cm. So my material needs to be at the very most 30cm x 40cm to get the best results. If you want to try and use as much canvas as possible for your print then just ensure that it covers the sides of the frame and around 1cm on the back to give you something to staple into and tension.

My printed area is going to be the area of the frame (30 x 20 cm) plus the sides, so that’s 34 x 24 cm.

For folding the canvas and getting a nice fit you’ll need to cut the corners off so make sure to add lines to your template. If you scroll down you’ll see why/ how this is done.

I used Photoshop CS3 to do my print templates but you should be able to  follow the steps and do this in any basic application that lets you draw a few guides and lines over a photo. I guess if you’ve got a decent photo printer then you’re using Photoshop – CS3 and onwards has a much better print interface.

Create a new document, from the measurements of the frame and make sure its at a minimum of 300 dpi resolution and use RGB colour.

Next show your rulers (CTRL + R) make sure you’re setup for mm or cm (Edit, menu then Preferences to change).

Drag guides to mark the sides of the frame.

Draw lines for cutting the corners off.

Create a white frame around the outside in a new layer – to save wasting ink on the material being stapled to the frame.

Now you can put your photo in this document for printing and it will be perfectly positioned for you. This works also if you’re doing multiple panels. I won’t go into colour correction here, I’ll assume that you’ve done all this.


First to save wasting paper do a very small test print to make sure your print heads are aligned and nothing funky is happening in your images.

OK so we’re ready to print. You’ll need to first load the canvas roll typically at the back of the printer – this can be a pain to do as the printer won’t feed the roll unless its absolutely straight. To remedy this before clipping the canvas roll on the printer feed it first into the printer and press the roll button on your printer. It’s hit and miss but eventually it will take it, you just need to feed the paper in straight.

Now clip the roll on to the back of the printer and you’re ready to go. When printing you just need to set a few basic things, the media type (Watercolour paper – radiant white), to use the roll instead of sheet and to set the paper size to user defined (size of your document).

I always tick photo enhance and best photo options, also using the gloss optimiser. I leave the printer drivers to render the best colour conversion it can, generally few colours in my prints are out of the gamut. To get better results spend time playing with these setting but be prepared to waste some ink.

Click print and thats it. Once you’re done, press the roll feed button on the printer to feed the canvas out so you can cut it – the R1900 can attempt to cut the canvas but it’s  too thick. Once you’ve cut it (It only needs to be roughly straight) then press the roll feed button again to retract the leftover canvas ready for the next time – for doing panels I printed all of them and then cut the roll after the last print to save canvas.

3 panels printed

Framing your canvas

OK, you’ll need a staple gun with 6-10mm staples to do this. Its pretty easy to do and takes about 5-10 minutes per frame.

Cut off the corners

Remember the corner lines I added in my template first cut these off.

Mark the sides of the frame.

Now mark and measure in the depth of your frame on each side of your canvas, so on mine, I mark the edge at 2cm and at 22cm for example – you need these marks to make sure you get your frame in the right place.

Fold the canvas.

With the canvas face down fold back along the edge of the picture.

Staple the canvas to the frame

You should be able to line up the edges of your canvas with the frame, put in a staple to secure.

Pull the canvas tight, and staple the opposite side.

Fold the top

Tuck the corners in at the top and staple down, repeat at the bottom making sure to pull the canvas tight.

Finished stapling the frame

Finish off by stapling all sides down – can be as messy as you like, no one will see.

You should be left with a nice end result! 🙂 Please feel free to ask if you need a hand or something explained – or if you want me to print your photos!

First box frame attempt

Obstacle avoidance Arduino robot – build your own larryBot


So after 5 previous versions that had various flaws, I now have an Arduino robot that actually works and although basic is very cheap – although there a probably a few more flaws so please point them out to me but this is a good start on how to make your own robot.

In order to catch up, please see my previous posts below, describing the problems that the other 5 versions had, how the h-bridge chip works and using the SRF05 ultrasound distance sensor.

larryBot – Arduino robot versions 0.1 to 0.5 lessons learned
Control a DC motor with Arduino and L293D chip

Arduino SRF05 Distance Sensor

Now that you’re up to speed, lets start by fixing the flaws in the previous version, this was the case that my motors were drawing way too much current and the L293D chip from ST Micro couldn’t output enough current for each motor.

So, I replaced the chip with the snappy named ‘SN754410‘ from Texas Instruments. This has EXACTLY the same 16 pin layout as the L293D chip and all of the same features except that it can output 1.2 amps per channel rather than the now tiny 0.6 amps of the L293D. Pin configuration diagram below is the same for the L293D as it is for the SN754410, I recommend the SN754410 Arduino comination.

L293D Pin layout

Great I’ve now got more current to my motors, but their stall current is still at over 2 amps, I could add a heatsink to the chip and pass more current through it, but instead I got some more efficient motors than the Mabuchi FA-130’s that came with the Tamiya gearbox. These motors are made by Solarbotics and are their RM3 series which fit perfectly, can handle 4 times the voltage but use a fraction of the current – typically at 9v they use just over 1 amp. Perfect.

Having corrected this, larryBot v0.6 was go! I still faced a lack of power to the DC motors – either because my batteries were running low or not able to supply the current. But since my new motors could run up to 12 volts (instead of the puny 3v of the originals) I decided to use a 9v battery to power them instead of my 4 AA’s.

Watching larryBot move is great, even on carpet and with the tank tracks 9 times out of ten he can climb small obstacles or has enough traction to shunt them out the way. Anyway enough waffling – here’s how he’s made…

The Arduino Robot Tracked Chassis

You could use anything you want really – construction sets, your own custom fabricated chassis etc… But since I’m cheap I managed to get a pile of foamboard for my chassis. I can waste and reuse as much of this as I want so its no problem if I make a mistake or want to improve it. Also in theory this leads to rapid prototyping, so when I do decide to fabricate a chassis I know exactly where the best places are for holes, mounts etc…

The robot chassis parts and tools:

Small Phillips/ cross-head screwdriver
Craft knife
Assorted nuts and bolts – A good set of M series nuts and bolts
Foamboard 5mm thick – 1 A4 sheet is plenty
Tamiya gearbox 70097 – assembled in mode A
Tamiya track and wheel set 70100
Elastic bands (normally dropped by the postie)

Sizing up the robot base

First of all the size of our chassis design is dictated by a few things. The axle length: our tank tracks need about 5mm clearance so the space on the axle is roughly 65mm wide that I can mount on. Next we have the length of the tracks and how many wheels will be used, I kept my track footprint small so my chassis length didn’t need to be much bigger than the gearbox. Which leads on to gearbox positioning – the Tamiya gearbox I have is roughly 75mm in length and the shape of the tracks will dictate where to position the gearbox as the driving wheels are attached to this. The final consideration of course is mounting all the sensors, battery packs, breadboard and the Arduino board.

In my attempts so far I have a base that is just longer than twice the length of the gearbox (175mm) which gives me space at the front for sensors and space at the back for batteries. I then mount a smaller piece of foamboard on top of this that then houses the gearbox and spaces it far enough above the running wheels for the tracks at the bottom – also giving enough tension in the tracks for them not to slip off (unlike larryBot v0.4). From here I can continue to bolt on additional structures to position the breadboard and so on.

So using this knowledge you should be able to size up and cut the foamboard to the dimensions you need – a craft knife will be more than enough to cut this board. To make the holes needed for your screws and bolts just use a small Phillips/ Cross-head screwdriver to bodge a hole through – it won’t take any effort, then you can drive the screws through this guiding hole. If you have washers then use them but the foamboard seems to be able to support all the hardware fine.

Attaching the running wheels and tank tracks

First mark out the position of where you want your wheels, very important as you don’t want them wonky!


To mount the running wheel axles on to the chassis I used a couple of small hexagonal bolts for each side of the axle and then used the glue gun to fix them to the chassis – the best way to do this is to put the bolts on to the axle, use a small amount of glue to hold the bolts in place and then use a shit load of glue over the bolts to secure them properly.

When adding the wheels to the axles, don’t push them all the way on as these axles are slightly shorter than the Tamiya gearbox which will cause you problems with the tracks.

Mounting the Tamiya gearbox, DC motors, sensors, breadboard, Arduino and batteries

To attach the gearbox I just used the screws supplied with the gearbox and bolted this to my smaller piece foamboard. I then in turn bolted this to the main chassis using 4 long bolts and a series of spacers and nuts in between the layers to given the correct spacing and adjustment for my drive wheels.

For the SRF05 distance sensor I just used some blu-tack/ modelling plasticine to hold it in place for now.

The breadboard I mounted above the gearbox, which for this I just fixed it on top of 4 long bolts which then in turn attached the gearbox base. The Arduino board currently then sits on the breadboard held on by the multitude of wires running from it and the power supply cable.

And for the batteries, since I scrapped using the 4xAA’s to power the motor I only had to worry about two 9V batteries, 1 of which was my DC power supply for the board. I fixed them to the chassis just using an elastic band, since I’d want to get to them easily enough.


Simple Arduino Robot Circuit

The parts list doesn’t differ much from my other tutorials for motors and L293D. But I did find it was troublesome to get the parts from the same supplier, so be aware that you may need to look at multiple suppliers and postage may get expensive.

Robotic parts list

2 x Solarbotics RM3 motors
SN754410 motor driver chip
SRF05 Ultrasonic distance sensor
Arduino Deumilanove w/ ATMEGA328
Breadboard / Prototyping board
Jumper/ Connector wires
2x 220nF multilayer ceramic capacitor (Y5V)
2 x 50V 10uF Capacitor (although I’ve not used them here)
2.1 mm coaxial DC jack
2 x PP3 9Volt battery
PP3 9Volt Connector
9Volt battery holder


You can see that the circuit is pretty simple, nothing actually that fancy, I have the SRF05 using the +5v, GND and digital pins 12 and 13. The SN754410 then uses the digital pins 9 and 10 to control each channel – these can use PWM to do speed control, then there are the switch pins on the h-bridge that go to digital pins 3,4,5 and 6. The spare GND is used to join the GND connection between the motor power and Arduino power supply. Here are the instructions for the 9v battery DC supply. If you want to use the extra 50v 10 uF capacitors then these sit on the power supply for pins 8 and 16 on the SN751140 respectively.


Arduino Robot Code

Nothing much has changed from the larryBot v0.1-0.5 sketch except that I’ve altered the detection distances as I have a much faster response time from the robot.

const int numOfReadings = 10;                   // number of readings to take/ items in the array
int readings[numOfReadings];                    // stores the distance readings in an array
int arrayIndex = 0;                             // arrayIndex of the current item in the array
int total = 0;                                  // stores the cumlative total
int averageDistance = 0;                        // stores the average value

// setup pins and variables for SRF05 sonar device

int echoPin = 12;                               // SRF05 echo pin (digital 2)
int initPin = 13;                               // SRF05 trigger pin (digital 3)
unsigned long pulseTime = 0;                    // stores the pulse in Micro Seconds
unsigned long distance = 0;                     // variable for storing the distance (cm)

int motor1Pin1 = 3;                             // pin 2 on L293D
int motor1Pin2 = 4;                             // pin 7 on L293D
int enable1Pin = 9;                             // pin 1 on L293D
int motor2Pin1 = 5;                             // pin 10 on L293D
int motor2Pin2 = 6;                             // pin  15 on L293D
int enable2Pin = 10;                            // pin 9 on L293D

void setup() {
  // set the motor pins as outputs:
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(enable1Pin, OUTPUT);
  pinMode(motor2Pin1, OUTPUT);
  pinMode(motor2Pin2, OUTPUT);
  pinMode(enable2Pin, OUTPUT);
  // set enablePins high so that motor can turn on:
  digitalWrite(enable1Pin, HIGH);
  digitalWrite(enable2Pin, HIGH);

  pinMode(initPin, OUTPUT);                     // set init pin 3 as output
  pinMode(echoPin, INPUT);                      // set echo pin 2 as input

  // create array loop to iterate over every item in the array

  for (int thisReading = 0; thisReading < numOfReadings; thisReading++) {
    readings[thisReading] = 0;

void loop() {
  digitalWrite(initPin, HIGH);                  // send 10 microsecond pulse
  delayMicroseconds(10);                                // wait 10 microseconds before turning off
  digitalWrite(initPin, LOW);                   // stop sending the pulse
  pulseTime = pulseIn(echoPin, HIGH);           // Look for a return pulse, it should be high as the pulse goes low-high-low
  distance = pulseTime/58;                      // Distance = pulse time / 58 to convert to cm.
  total= total - readings[arrayIndex];          // subtract the last distance
  readings[arrayIndex] = distance;              // add distance reading to array
  total= total + readings[arrayIndex];          // add the reading to the total
  arrayIndex = arrayIndex + 1;                  // go to the next item in the array                                 

  // At the end of the array (10 items) then start again
  if (arrayIndex >= numOfReadings)  {
    arrayIndex = 0;

  averageDistance = total / numOfReadings;      // calculate the average distance

  // check the average distance and move accordingly

  if (averageDistance <= 10){
    // go backwards
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);    


  if (averageDistance <= 25 && averageDistance > 10) {
    // turn
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
  if (averageDistance > 25)   {
    // go forward
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);     


[ad#Google Ad in content]

Some problems you may face – if like my you don’ t have a spare 9V battery connector to hand check this connection if nothing is happening – I used blu-tack to hold my wires in place so it’s a bit temperamental.
Check that your motor wires are properly in contact with the motor terminals if you haven’t soldered them again using some blu-tack or tape is handy for getting a good connection.
Motor’s are under strain – your tracks are too tight.
Tracks come away from the wheels – check your tracks are not too loose and that your running wheels are in line with the drive wheels – the Tamiya gearbox is slightly wider than the Tamiya track and wheel set axles.


I’ve gotten a fairly cheap robot that avoids obstacles, next plan is to extend it to sense various things – for instance detect motion and move towards it, or a light/ heat source. The robot costs are quite high if you factor in the Arduino board and if you don’t have any of the parts – but this can be broken down and used for many other projects so you’ll get a lot of reuse out of these bits, but I reckon that the total cost is around £70-80 in total, so fairly cheap when compared to other bots. Of course if you don’t want tracks (?) then you can just use wheels instead, Tamiya do also make wheels that will fit the gearbox.

Just in case you have trouble getting parts, here’s a small list of people that can supply the various bits – although none of them will have the full set. Shipping from the states is an option, but check the shipping costs as it may negate the cost savings. Please let me know of other sources, the list is in no particular order.

Sparkfun – USA: motor controller and Tamiya parts
Pololu – USA: Tamiya parts and motors
Techbotics – UK: Tamiya parts – just about cheaper than getting parts from Sparkfun/ Pololu in the USA
Active robots – UK: motors, SRF05 but generally overpriced on everything
Rapid Electronics – UK/EU/USA: most component parts and hardware
Farnell – UK/EU/USA: SN754410 chip and most components but shit for orders if your billing and delivery addresses are separate
Mouser – UK/EU/USA: SN754410 chip and most components
SK Pang – UK: SN754410 chip but dodgy VAT calculations (charges tax on shipping as well) few other parts here.

If you need an Arduino board, I reliably found a seller on ebay from Hong Kong that will sell and ship you aboard for far less than paying for it the UK – downside is it takes about a week to arrive.