Saturday, December 31, 2011

Robot calendar available at Barnes and Noble



Dog lovers may have dog calendars, same goes with cat and car fanatics, but what if your a robot junkie. The answer is simply, a robot calendar. At Barnes and Noble you can purchase a calendar called, "ROBOT." It has a different robot for each month and each robot has its own cardboard cut out/foldable. The price for this nifty little thing is $14.99 and you can see it in my video above!

Friday, December 30, 2011

That's it for another year....

Plenty going on over the Xmas period but sadly not a lot of time to post about it, so look out for some updates in the New Year. Most excitingly, we've got a working version of an electronic Blood Bowl board game (well, one that you can download player data onto and it recognises which player you're moving, and can even perform some basic game mechanics).

We've also had quite a bit of interest in the microband miniature instruments so we're hoping to ramp up development on those in the new year too.

But all in all, over Xmas, we've eaten too much, made too little and blogged even less.
It's off to the other side of the country tomorrow for a New Year party so don't expect much for the next few days. In the meantime, have a great weekend, and a Happy New Year!


Thursday, December 29, 2011

Review of the vex starter bundle



This year my big Christmas gift was a vex robotics starter bundle. This kit is great for any kids that like to build robots, but I do recommend it for older kids. The robot is radio controlled and the kit includes erector set metal, servos, battery packs, and everything needed for radio control. Nuts and bolts are also included too; along with tools. The first bot I built was a 4 wheeled UGV (unmanned ground vehicle). Everything's sounds great with this robot, however it requires 14 aa batteries to run, and it also costs 300 USD. Overall it's a great robot for kids that enjoy robotics and an intermediate level.

Wednesday, December 28, 2011

Rediscovered Projects From The Past

  During my yearly Christmas routine of putting up and taking down ornaments, trees, and various decorations I came across a folder with a lot of old photographs in it.  What made this find even worth looking at was the fact that the photos were of projects that I had worked on decades ago.  I thought the photos were long gone and forgotten.  So to show off some very early designs long before the Tinker's workshop even was a fleeting thought I present them to you here now. 







  The four photos here are of the airplane that I built from 1982 to 1984.  A long two years in a workshop of a friend of mine that I just recently have been in contact again with.  The plane is a Mitchel U-2 and was a real project to say the least.  It had a 35 foot wingspan and was of wood and cloth construction.  With the wings folded up it was still eighteen feet across. The engine was a converted Zenoah snowmobile engine. Complete with instruments and electric start.  A lot of people had asked me if the plane was a kit.  It was a kit only in the littlest sense.  If you can call a pile of wood and a set of blueprints a kit than I guess that's what it was.  The only thing that I did not build on the plane was the engine, wheels, instruments, and bubble canopy.  Everything else was built by hand with little or no support from the company that produced it.  Was a pain at times but also one of the best projects that I ever took on.  I learned a lot about airplanes and how to build them. 
  I never flew the plane.  I just did the ground testing on the plane and then donated it to an aircraft school in southern Iowa.  A lot of people are surprised that I never flew it.  I simply got burned out on the project before I got that far.  That and the costs to just keep it were getting higher each month it just sat in an open hangar at an airport 30 miles away from home.
  I read some place about guys who build airplanes and the statistics about the subject.  It stated that if 100 guys each started building an airplane only 20 of them will ever complete it.  So just the fact that I accomplished that much in this project I felt good about.





  This project turned out very well and took a lot less time than the airplane.  I still have this beautiful cedar chest at home and have had more than just a few people want to buy it from me.  The chest is four feet long, two feet from front to  back, and around three feet high.  It is all solid cedar that I hauled all the way from a mountain in Tennessee to Iowa and then planed down to one inch thickness. It is heavy!  It takes two people to pick it up and move it. 
  This was built in 1985 and still looks as good as it does here. Under each wooden button is a wood screw.  Over 300 were put in.  A lot of drilling to say the least.





  These two photos are of my drafting table that I designed and built in 1993.  My son at the time was four years old and is a good indication as to how big the table is.  I still have it but now is collecting dust in a storage room in my home.  It is solid oak and can be completely dismantled so that it can be moved from one place to the next without a lot of hassle.  
  I used the table to do engineering drawings for my brother for a couple of years and then later to create British sports car pen and ink drawings for a business that I ran for seven years.  That was another very successful project that actually made real money too!



  This photo is of my king sized canopy waterbed that I designed and built in 1979.  It took an entire day to put the bed up or take it down.  So you had to figure out where you wanted it and then measured the room very carefully because you would not even want to think about moving it once it was in place. It stood seven feet tall and was made out of pine stained in oak.  The waterbed as I said was king size which measured out at six feet by seven feet just for the mattress. So with the framework it now measured closer to seven feet by eight feet.  It was a beautiful bed complete with a mirrored canopy but very big to be sure.  I had it for a lot of years and then moved on to something a lot less time consuming to move.
  
  All of these projects were a lot of fun to build and now that I have the Tinker's Workshop up and running it just gives me a lot more chance to work on even more and exciting projects.  So keep checking in and hopefully you'll be even more entertained and encouraged to work on some ideas that you have been putting off in your own workshop.

Monday, December 26, 2011

I've Brighten Hearts And Living Rooms With My Christmas Angel Light Display

  
  Now that Christmas has come and gone I'm able to get this post put together and show off another project that I had worked on for a couple of Christmas presents.  I didn't want this shown until my sisters each had gotten a Christmas angel light.  The angel image I created using Corel software and it was engraved into a 1/4 inch piece of acrylic plastic.  I then cut it out using my band saw and sanded the edges smooth.  Also the bottom edge of the acrylic was heated with a butane torch to clear the plastic of the foggy effect you get when you cut it or sand on it.  This allows the light to shine through the finished piece better. In the rest of this post you see how I put everything else together.



   I started this project with a very nice piece of poplar wood.  I selected this simply because it is a very easy work to work with and as you can see it has no knots in it.  I machined the three wooden parts using my CNC machine to allow placement of the light and the electronics to run it and engraved the word "Peace" on the top face of the outer cover.

  
Here you can see how I clamped the two bottom pieces together to  drill out the hole for the light switch using my drill press.  The pieces were  held on the drill press using a small vise. This made it a lot easier to hold the parts tight enough to make the perfectly straight clean hole.  Another smaller hole was added to allow the wire for the power cord to be feed into the base of the display.




 A small slot was cut out of the center top groove that is used to hold the acrylic angel.  This allows the light to shine through the clear plastic.


The two lower pieces of the base were glued together at this point and allowed to dry.  I realized after I had drilled the holes for the switch and wiring that I could have glued these parts together first and it would have been a lot easier.  Live and learn.



 Two small wooden pieces made from 1/4 inch plywood were drilled out to accept the small led light that was used in the display. 


  
The light, light mounts, power switch, and a small 12 volt transformer were then installed into the base of the display. I set up grooves on the outer edge of the large pocket to accept the wooden light mounts.  This made for quick and easy assembly of the electronic components. 




Once I was satisfied with how the electronics were going to fit into the base I removed all of it to go onto the next step in the assembly. The top lid was screwed on to the light base using wood screws that were recessed into holes on the bottom of the base unit.  This made for a very clean look when the base was completed.  The parts were left assembled and then sanded smooth on a drum sander on my drill press.  




 The wooden parts at this time were removed from one another and four coats of polyurethane varnish was applied to each piece.  Between each coat I sanded it very lightly to get a good clean smooth finish.


  
The electronics were then reinstalled into the base unit and tested.  At this point I could breathe a sigh of relief as I am just a day one rookie when it comes to electronics.  Even if I only had to solder a couple of wires together.  Like every other tinkerer I am learning new things every day in my workshop.  Just have to put a little effort into trying something new once in a while.  I think my efforts have paid off very nicely.  My sisters think so too!

Friday, December 23, 2011

Blood Bowl Digital

It's almost Xmas and time to down tools for a while and get all Christmas-y (despite what some people will tell you, tinsels and baubles still lead soldering irons and wire strippers in the Xmas stakes).
But before we wind down for the holiday season, we've been busy working on a website for our Digital Blood Bowl game board. We've called it Blood Bowl Digital.

A preview of the site can be found at http://www.nerdclub.co.uk/bloodbowl
You can create teams and build online rosters and assign attributes and skills to all your players.
The idea behind this is to have a gateway between an online team/games manager and a way of getting player data into the game board.

Hopefully - if we manage to keep on the "nice list" for the next few days - we'll have some spanky 20x4 character displays to actually demonstrate something come Boxing Day.....



Thursday, December 22, 2011

Christmas break

During my break I have not been posting. However,tomorrow I will continue the robo roundup posts. Thanks and happy holidays.

Thank You!

  As Christmas is close approaching and the New Year will be here soon I wish to say "Thank You" to all the visitors that have taken the time to check out my little blog site.  You have given me a lot of encouragement over the few months that the blog has been up to continue working, designing, and dreaming up new projects for the workshop.  May you all have a very Merry Christmas and a Happy New Year!

Wednesday, December 21, 2011

Christmas clocks

It's beginning to look a lot like Christmas...... everywhere you go. Ok, it's not. I don't know what it is this year - the doom and gloom peddled on all the news channels, the recession, austerity measures or what - but it just doesn't feel Christmassy.

Maybe it's just because the weather is still quite mild and all the spring bulbs are popping up.
But there's something particularly un-Christmassy this year. There are a few lights about and a few shops have made a half-hearted nod towards Xmas, but in the main - and talking to other people, I'm not the only one - we're still waiting to be hit full in the face with Christmas Cheer.

Which is probably why I've left it so late to get making Xmas gifts this year. Normally, come December 1st, the first little door on the advent calendar gets opened and it's straight into maker-mode, planning and making for everyone. But for some reason, this year things have been left a little late.

Back in November, I was helping Jason with his toy cars and lights controller. But since then, not much on the Xmas front. So last night I fired up the laser cutter and got designing some novelty clocks.
Most of the time was spent on the designing and drawing rather than the actual manufacture (which meant sending to the cutter, waiting a while, then some basic assembly afterwards) but the end results are quite pleasing:

[photo here]

Here are the design files should anyone fancy having a go -
Send the dxf to your laser cutter and carve out from your favourite coloured sheet of A4 acrylic (loaded in landscape).


Links to files:



To finish the clock off (and mostly, to hide the clock movement from behind) I cut out some shapes from a second colour and fitted them inside some of the cut-outs from the main clock face. By turning the clock over they could simply be held in place with some tape. I used double-sided tape, then stuck a piece of card over the whole arrangement, to keep the shapes from falling out once the clock was on the wall.

[photo of reverse]


Here's a slightly different clock, requiring a little more assembly.
At first I wasn't too sure about the design but the more I look at it, the more it grows on me. At first I thought about making the smaller coloured numbers as inserts (so they mounted flush with the surrounding shapes) but now I think I prefer them as relief shapes, sitting on top of the basic number shape.

[photo of second clock]

I think it's the clear acrylic ring that makes this clock work so well. It means positioning the numbers is relatively easy (it would have been a nightmare trying to stick just the very edges of a few numbers to the centre disc to hold it all together) but when the clock is on the wall, the final effect is quite striking!

Here are the design files if you fancy making one of these yourself:

this is the clear acrylic ring that some of the numbers mount onto

with some clever layout, you can get all the numbers onto a single A4 sheet

optional extra - inset characters for the numbers 2,4, 6, 8, 10 and 12

Links to files:


Lastly, here's a simpler version of the second clock that requires much less assembly, designed smaller to fit on a single A4 sheet of acrylic (or wood or whatever you're making your clocks out of!)

this clock has all the numbers connected to make a single solid piece

using the previous clock as a base, this clock can also have raised numbers placed on top of the base design, or you can cut the inset figures out and use different coloured acrylic (wood, whatever) to fill the gaps

Links to files:
http://www.nerdclub.co.uk/files/clock1_single_piece.dxf
http://www.nerdclub.co.uk/files/clock1_with_insets.dxf
http://www.nerdclub.co.uk/files/clock1_inset_numbers.dxf


Tuesday, December 20, 2011

Bust sculpture created by a robot

Ive seen robots walk, run, and even draw. However, this robot can create three dimensional sculptures of people. The process starts out when a human scans an object and the robot then scans its sculpture material. After that, the photo of the object (preferably human) is then uploaded to the robot, this enables it to start sculpting. It uses strong motors, a saw, and and nice arm design for precise movement to create the sculpture. In the video below you can see this robot sculpting a women's upper body. Thanks for reading and please follow us on feed burner!



Info source: video listed

Monday, December 19, 2011

When I say "Action"...... Roll Camera!

  It's been another busy week here at The Tinker's Workshop with another fun project and trying to get ready for Christmas and all the hustle and bustle that it brings.  This week I've completed something for all the people that are into creating video for the fun of it like me.  
  In professional movie making the big guys like Spielberg and Lucas have unlimited budgets and they get to use the latest and greatest gadgets to make their movies really something special. This week I've completed a video camera dolly that is small, lightweight, inexpensive and easy to use.  It can be used on a table top and makes difficult video scenes a snap to make.  


 The video camera dolly was partially created using one of my favorite tools.... The Makerbot 3D printer.  The red axle supports between both sets of wheels were printed using this 3D printer.  Each section took about an hour to print.  


  The arm for the little dolly comes from a company named Pico and is purposely built for a dolly like this.  They sell their version of this dolly online (without the arm) for $100.  This was way more than I wanted to shell out for this little gem so I designed and built my version using the Makerbot for $22. The skateboard wheels I picked up on Ebay for $12 brand new complete with double sets of bearings no less and the rest of the hardware I found at Lowes for another $10. Quite a savings don't you think?

  
The arm for the dolly is special built and I did not even want to attempt to duplicate it as it is very unique in what it can do.  This and the fact that it only cost $28 to buy which I thought was a good deal.  To adjust the arm all you have to do is turn the knob with the "PC" on it and the arm unlocks.  It then can be positioned in almost any configuration that you can dream up to get you video camera pointed where you want it.  The arm is eleven inches long fully extended and is very well made and worth the money.



  
Here's a video demo that I put together showing you how the video camera dolly works and looks in action.  So pull up an easy chair and get your popcorn and soda ready.  All I have to do now is call up Spielberg and Lucas and tell them to stand back as I make my next epic video!

Sunday, December 18, 2011

Stripping paint from Blood Bowl miniatures

Yesterday morning the postie delivered a whole team of (second-hand eBay bargain) Orcs to Nerd Towers and - as is normal with most things when something new arrives - we immediately dropped everything and spent some time getting all excited about the newest thing to be working on!

They're the "older" - 2nd or 3rd edition - style Orc team called The Orcland Raiders, not the American Football style team we've mentioned in a previous post, but they were (relatively) cheap with the added bonus of already being painted.


An orc team from Games Workshop. We're not expecting ours to be painted to anywhere near this standard!

 None of us here have painted (or even shown any interest in) miniatures-based board games for nearly twenty years or more, so having a pre-painted team seemed like a good idea. Until they arrived....

The paint job on each miniature is ok-ish.
The basic colours are in the right places, and sometimes even the details are quite nicely done. But the colours seemed a bit "muddy" and not all the finer details were picked out in quite the way we'd have liked, so we've all decided to buy each other a set of Citadel paints (or similar acrylic-based colours) for Xmas and have a "getting-re-aquainted-with-painting-miniatures-again" session in the New Year.



Which means stripping all the miniatures we have and starting again.
We tried the usual tricks of Dettol, Fairy power spray and a whole heap of other detergents (there's no excuse in not keeping the place clean and tidy any more) but each was quite fiddly and required lots of soaking, scrubbing, re-soaking and so on. So we put on some rubber gloves and dropped the miniatures into some industrial strength paint and varnish remover. This is a white jelly-like substance, but the miniatures are ready for scrubbing after just 30 minutes soak.



The stripper causes the acrylic paint (and top coat varnish) to become a slimy coating over the entire model:



A quick scrub with a toothbrush and most of the paint comes off in just a minute or two under a running tap. Not all of the paint came off in one go, with some of the paint proving quite stubborn in the deepest of recesses. However, this does help show up some of the finer details of the model, which may have got lost under the previous paint job.



After each model is stripped, we leave to soak in a bottle of clean water, to remove any nasty chemical residue left by the paint stripper, then dab dry with a towel and leave to dry out for a few hours in front of the fire.

We're going to take reference photos of all our stripped models, so that we can see where the finer details are after we've splodged paint all over them - it's very easy to miss the little bits and bobs, but it's these tiny examples of attention to detail that make the miniatures so impressive in the first instance - it'd be a shame not to show off the exquisite modelling to its best, which means painting and highlighting these parts that could otherwise go un-noticed.



Saturday, December 17, 2011

Hexbug larva battery problem

I know that I have already written a post on this topic, but i have something important to say. It seems that most of the consumers off amazon.com that have bought this think that the batteries are dead when you first get the hexbug larva. I proudly disagree. It doesn't take a genius to figure out that the batteries are inverted! First of all, Innovation First shipped out all the larvas like this so no one in the stores could turn on the hexbugs and waste the battery life. I just want to let consumers realize that the hexbug larva's batteries are not messed up in any way. Thanks and I hope you enjoyed today's post!

Thursday, December 15, 2011

PR1 cleans a room

It may seem that robots doing our chores is a concept for the future, but after viewing this video you may just change your mind. In the video, PR1 is cleaning a room using its dexterous hands and agile movements. Not only is this amazing for the field of robotics, but the robot is PR1 and not its advanced brother, PR2. The downside to all this is that these robots cost over 200,000 USD. Maybe in a few decades we may have a giant leap in robotics, and these prices will descend quickly, meaning that these robots will be available to just about anybody. Thanks for reading and please feel free to comment below!



Info source: video listed

Wednesday, December 14, 2011

Serial character LCD driver with Flash eeprom

No sooner had we got our serial character LCD display working than we were moving on to the next stage of the project - reading text from an Atmel AT45DB041D Flash eeprom chip to decide what to display on the screen.

We're already familiar with these chips, from our multiple servo controller board from back in May.
The idea is to store strings of text in these chips, then simply set a pointer (to tell the PIC where to start reading from) and get the microcontroller to read the text back and display it on the LCD.

We did look at I2C and other serial eeprom alternatives (at �1.20 each these Atmel chips are quite expensive for eeprom and at 4Mbit, are much bigger than we're ever going to need!) but most other (non-Flash) chips run at 100kz, or 400khz at best (yes, that's kilohertz, not Mhz). This will obviously make drawing text on the LCD run really slowly which is something we're keen to avoid.




These little Atmels can work up to 20Mhz. Which by happy coincidence is how fast the master chip will be running anyway, so hopefully we won't lose too much time reading and displaying text to the screen.



We wired our Flash eeprom chip up to PORTD on an 18F4550 (using RD.0-RD.3) and hacked some code together to read and write data to/from the chip. Amazingly, it worked first time!



AllDigital
Config PORTC = Output
Config PORTD = Output
Config PORTD.2 = Input

configuration:
       Symbol enablepin = PORTC.0
       Symbol clockpin = PORTC.1
       Symbol datapin = PORTC.2
     
declarations:
       Dim tmp As Byte
       Dim i As Byte
       Dim lcdi As Byte
       Dim lcdbyte As Byte
       Dim lcdbytetosend As Byte
       Dim rs As Bit
       Dim flag As Byte
       Dim mask As Byte
       Dim pageaddr As Word
       Dim byteaddr As Byte
       Dim byteswritten As Word
       Dim bytesread As Word
       Dim streamwrite As Bit
       Dim streamread As Bit
     
init:
       WaitMs 200
     
       Define SPI_CS_REG = PORTD
       Define SPI_CS_BIT = 0
       Define SPI_SCK_REG = PORTD
       Define SPI_SCK_BIT = 1
       Define SPI_SDI_REG = PORTD
       Define SPI_SDI_BIT = 2
       Define SPI_SDO_REG = PORTD
       Define SPI_SDO_BIT = 3
       SPIPrepare

       Gosub initialiselcd
       Gosub initialiseeeprom
     
       pageaddr = 1
       byteaddr = 0
       Gosub readanddisplaydata
            
loop:
     
       pageaddr = 1
       Gosub readanddisplaydata
       WaitMs 4000
       lcdbytetosend = 0x01 'clear screen
       Gosub writelcdcommand
     
       byteaddr = byteaddr + 16
       If byteaddr > 60 Then byteaddr = 0
     
       WaitMs 1000

Goto loop
End

writelcdnibble:
       Low enablepin
       Low clockpin
       If rs = 1 Then High datapin Else Low datapin

       Gosub toggleclockpin
     
       'shift in 4 bits
       mask = 8
       For lcdi = 1 To 4
              flag = lcdbyte And mask
              If flag = 0 Then Low datapin Else High datapin
              Gosub toggleclockpin
              mask = ShiftRight(mask, 1)
       Next lcdi
            
       'now strobe the clock one more time because ST+SC are tied
       Gosub toggleclockpin

       'toggle the enable pin to "flush" the data into the lcd
       Low datapin
       High enablepin
       Low enablepin
     
Return

toggleclockpin:
       'toggle the clock pin
       High clockpin
       Low clockpin
Return

writelcddata:
       rs = 1
       Gosub senddatatolcd
Return

writelcdcommand:
       rs = 0
       Gosub senddatatolcd
Return

senddatatolcd:
       lcdbyte = ShiftRight(lcdbytetosend, 4)
       Gosub writelcdnibble
       lcdbyte = lcdbytetosend And 15
       Gosub writelcdnibble
Return
     
initialiselcd:
       For i = 1 To 3
              WaitMs 50
              lcdbytetosend = 0x20
              Gosub writelcdcommand
       Next i
     
       WaitMs 50
       lcdbytetosend = 0x28 '4 bits, 2 lines, 5x7 font
       Gosub writelcdcommand
     
       WaitMs 50
       lcdbytetosend = 0x0c 'display on, no cursors
       Gosub writelcdcommand
     
       WaitMs 50
       lcdbytetosend = 0x06 'entry mode auto-increment
       Gosub writelcdcommand
     
       WaitMs 50
       lcdbytetosend = 0x01 'clear screen
       Gosub writelcdcommand
     
       'send a space character to the display to test
       WaitMs 50
       lcdbytetosend = 32
       Gosub writelcddata

Return

initialiseeeprom:
       Gosub set256pagesize
       Gosub chiperase
     
       pageaddr = 1
       byteaddr = 0
       WaitMs 100
     
       Gosub startstreamwrite
       For i = 0 To 63
              tmp = LookUp("Blood Bowl Griff Oberwald Varag Ghoulchew The Mighty Zug "), i
              SPISend tmp
       Next i
       Gosub endstreamwrite
     
Return

startstreamread:
       streamread = 1
       SPICSOn
       SPISend 0xe8 'stream read (legacy mode)
       SPISend pageaddr.HB
       SPISend pageaddr.LB
       SPISend byteaddr
       SPISend 0x00 'four don't care bytes
       SPISend 0x00
       SPISend 0x00
       SPISend 0x00
       bytesread = 0
Return

endstreamread:
       SPICSOff
       streamread = 0
Return

startstreamwrite:
       SPICSOff
       SPICSOn
       SPISend 0x82 '0x82 'write THROUGH buffer1 command
       SPISend pageaddr.HB '5 don't care bits + 11 address bits
       SPISend pageaddr.LB 'is the same as sending page address as hb/lb
       SPISend byteaddr 'last eight bits are buffer start byte
       byteswritten = 0
       streamwrite = 1
       WaitMs 5
Return

endstreamwrite:
       SPICSOff 'this causes the flash buffer to automatically get written to memory
       WaitMs 5
       streamwrite = 0
Return

set256pagesize:
       SPICSOn
       SPISend 0x3d
       SPISend 0x2a
       SPISend 0x80
       SPISend 0xa6
       SPICSOff
Return

chiperase:
       SPICSOn
       SPISend 0xc7
       SPISend 0x94
       SPISend 0x80
       SPISend 0x9a
       SPICSOff
       WaitMs 100
Return

readanddisplaydata:
       lcdbytetosend = 0x01 'clear screen
       Gosub writelcdcommand

       Gosub startstreamread
       For i = 1 To 16
              SPIReceive lcdbytetosend
              'for testing
              tmp = byteaddr + i
              Write tmp, lcdbytetosend
              Gosub writelcddata
       Next i
       Gosub endstreamread
Return



Note that in the initialiseeeprom routine we actually blank the Flash chip and write some data to it. In the final version of this code, we'll transfer data to Flash eeprom via a USB connection, but read it back just the same. Although this is just a basic test, it proves the idea of us storing character/player information in eeprom and calling it up and displaying it on a character-based LCD. All with just a few extra wires from the master microcontroller.

 [photo or video goes here]

Note that in this example we're using a rather tiny 2x16 character LCD (because we had some hanging around). We've got our fingers crossed that Santa will bring some larger 4x20 displays, like the one below which uses the same Hitachi 44780 controller chip, so the code should work for both.


With four lines of twenty characters, we can split player names over two lines (to allow really long forenames/surnames) and write player stats (MA, ST, AG, AV) on a single line - each stat (0-9) would take up four characters (XX-digit-space) so the output could look something like


 GRIFF
 OBERWALD

 MA4 ST5 AG8 AV9


Or, if we can get the player's name on a single line, something like:

 GRIFF OBERWALD

 MA   ST   AG   AV  
  4    5    8    9  


Serial-to-parallel LCD display driver

Amazingly we managed to get a working serial character LCD in under an hour today!
Just followed the schematics at http://embedded-lab.com/blog/?p=30 and converted the code example they gave into Oshonsoft Basic. Fired it up and there we go - a blinking "Hello World!" message using just three pins on the microcontroller.



The only real issue we had was that the contrast isn't brilliant; instead of a 10K linear pot, we've gone and used the first potentiometer that was to hand (a 1M logarithmic pot!)


If, like us here at Nerd Towers,  you're an Oshonsoft fan, here's the code listing to get everything working:

AllDigital
Config PORTC = Output

configuration:
       Symbol enablepin = PORTC.0
       Symbol clockpin = PORTC.1
       Symbol datapin = PORTC.2
     
declarations:
       Dim i As Byte
       Dim lcdi As Byte
       Dim lcdbyte As Byte
       Dim lcdbytetosend As Byte
       Dim rs As Bit
       Dim flag As Byte
       Dim mask As Byte
     
init:
       Gosub initialiselcd
     
loop:
       lcdbytetosend = 32
       Gosub writelcddata
       lcdbytetosend = "H"
       Gosub writelcddata
       lcdbytetosend = "e"
       Gosub writelcddata
       lcdbytetosend = "l"
       Gosub writelcddata
       lcdbytetosend = "l"
       Gosub writelcddata
       lcdbytetosend = "o"
       Gosub writelcddata
       lcdbytetosend = 32
       Gosub writelcddata
       lcdbytetosend = "W"
       Gosub writelcddata
       lcdbytetosend = "o"
       Gosub writelcddata
       lcdbytetosend = "r"
       Gosub writelcddata
       lcdbytetosend = "l"
       Gosub writelcddata
       lcdbytetosend = "d"
       Gosub writelcddata
       lcdbytetosend = "!"
       Gosub writelcddata
     
       WaitMs 4000
       lcdbytetosend = 0x01 'clear screen
       Gosub writelcdcommand
     
       WaitMs 2000

Goto loop
End


writelcdnibble:
       Low enablepin
       Low clockpin
       If rs = 1 Then High datapin Else Low datapin

       Gosub toggleclockpin
     
       'shift in 4 bits
       mask = 8
       For lcdi = 1 To 4
              flag = lcdbyte And mask
              If flag = 0 Then Low datapin Else High datapin
              Gosub toggleclockpin
              mask = ShiftRight(mask, 1)
       Next lcdi
            
       'now strobe the clock one more time because ST+SC are tied
       Gosub toggleclockpin

       'toggle the enable pin to "flush" the data into the lcd
       Low datapin
       High enablepin
       Low enablepin
     
Return



toggleclockpin:
       'toggle the clock pin
       High clockpin
       Low clockpin
Return



writelcddata:
       rs = 1
       Gosub senddata
Return



writelcdcommand:
       rs = 0
       Gosub senddata
Return



senddata:
       lcdbyte = ShiftRight(lcdbytetosend, 4)
       Gosub writelcdnibble
       lcdbyte = lcdbytetosend And 15
       Gosub writelcdnibble
Return



initialiselcd:
       For i = 1 To 3
              WaitMs 50
              lcdbytetosend = 0x20
              Gosub writelcdcommand
       Next i
     
       WaitMs 50
       lcdbytetosend = 0x28 '4 bits, 2 lines, 5x7 font
       Gosub writelcdcommand
     
       WaitMs 50
       lcdbytetosend = 0x0c 'display on, no cursors
       Gosub writelcdcommand
     
       WaitMs 50
       lcdbytetosend = 0x06 'entry mode auto-increment
       Gosub writelcdcommand
     
       WaitMs 50
       lcdbytetosend = 0x01 'clear screen
       Gosub writelcdcommand
     
Return

Back from Berlin

We've not really spoken much about our few days away in Berlin. Neither online, nor between ourselves. Which is a shame because we were really excited about going there and visiting a few of the different hackspaces. The problem was that the Kreuzberg region of Berlin where we were staying was pretty rough. And the so-called "hostel" we'd be invited to was little more than a doss-house squat.

After just a few days of living in squalor we changed our flights and came home. We never got to see any of the different 'spaces we'd planned on visiting scattered around the city (we'd arranged to visit the betahaus the morning after we'd arrived, which is also in Kreuzberg but got lost trying to find it!)


Graffitti is everywhere in Berlin - and especially so in Kruezberg. There are very few pictures or pieces of artwork (as shown in this photo) mostly it's mindless scrawlings, tags drawn in marker pen, and political slogans written in English.



There's a difference between "post-punk-industrial-style" and just filthy squalor. Coupled with a three-day "festival" during which thumping drum-n-bass played from midnight 'til around 10am (meaning no-one slept for the duration of the trip) we'd had enough after just a few days! Needless to say, it'll be some time before we endure another EasyJet flight to Germany's capital city!

Serial-to-parallel character LCD communication

We're getting close to hooking up all the component parts and testing our Blood Bowl game board. The master chip uses UART/serial to talk to the slave, so we've no easy means of talking to the master chip (in a lot of our 18F-based development we usually hook the chip up to a PC using USB to read data directly from the registers - even if USB won't be used in the final design - but this won't be possible in this case, since we can't run UART and USB together)

Since our game board will include two LCD character displays, we figured we could hook those up and use them to write out debug information during testing. In an attempt to keep as many pins free on our master chip, we're looking at converting an HD44780 parallel display into a serial LCD as in this article:
http://embedded-lab.com/blog/?p=30


So before we go plugging everything together and spending hours wondering why things aren't quite working properly, we're going to make a separate project which concentrates on just displaying the information we want on a 3-wire serial LCD (in our final project we'll be using two 20x4 character displays, one green, one blue. But they're on Santa's Xmas Wishlist and not likely to arrive before the big day, so we'll try things out with an old 2x16 that's lying around in the toolbox).

Tuesday, December 13, 2011

Blood Bowl miniatures

Back in the late 80s, Blood Bowl was all the rage, even with the cool kids who didn't even know that it had anything to do with Warhammer Fantasy miniatures, nor that Dungeons & Dragons was a game and not just an animated cartoon series on kids' TV.

Sadly none of our miniatures survived many house moves over the years (we've been nerds for a long time) - and maddeningly, the earlier, rarer pieces are commanding quite a price on eBay these days! Rather than pay over �30 for a team of original pieces, we've been looking for something a bit cheaper....

The original Blood Bowl teams were heavily armoured, with each character having lots of spikes, pads, over-sized shoulder pads and the like. The miniatures in the different teams looked very much like their Warhammer fantasy war-gaming counterparts (only without weapons).


The original Games Workshop Blood Bowl miniatures followed in this line.
But for us, Blood Bowl is first and foremost a strategy game of fantasy football that happens to include goblins and orcs and elves and other fantasy races. It's the game of football that makes the game fun and interesting to play, not the creatures that make up the different teams.

So it was really quite refreshing to find a team that were not only relatively cheap to buy (albeit second-hand) but they look more like a football team than a murdering crowd of goblins from Dungeons & Dragons:



Of course, for testing our electronic game board we can use copper discs (two pence pieces are the perfect size) but the whole thing would look much more like a board game with the correct pieces on it! Unfortunately it's that time of year again where buying stuff willy-nilly off the internet is out of the question, as friends and family members are on the look-out for gift ideas; so we'll just have to sit tight and see what Santa brings in a few weeks. In the meantime, there's the board to finish so we'll post some more updates here soon......