Create custom vector maps

I want to document some of my travels in a better manner. After looking around for a few map design inspirations, I came across the following example from a trek across Iceland.

0_0

I spent a quite a bit of time over 3-4 days before I found a solution. I was able to create custom maps within Google Maps, Google Earth, and Open Street Maps but they all had issues. I did not like the busy look of all base maps and the Google services don’t export custom maps in a vector format. Open Street Maps can export vector maps but the my requested area was too large.  I tried a few JavaScript libraries as well but they all use the above mentioned services for map tiles and I wanted an independent file on my local machine.

So, I decided to create a map myself. I downloaded the following .SVG map of Scotland from Wikimedia.

0_1

Using Inkscape, I deleted other countries, external water bodies, and remote islands. I thought about a unified border color but I ended up really liking the representation of water versus land boundaries.

0_2

Looking better already! Now, I did not want to sit down and manually trace my journey. Since this file doesn’t contain any geographical information, my best bet was to somehow get my path in a vector format and manipulate it into the same scale, plane, etc., as map above.

I started by recreating the trip in Google maps engine. The train and bus journeys were easy to plot – it’s just like looking up directions in Google maps. Plotting a hike was a little bit more complex since I did not record my GPS location. I was lucky to find a .KML file from a better prepared hiker through a Google search and imported it into Google maps engine without any issues. I exported the .KML file when I was done.

2

The file was saved as a zipped .KML (.KMZ ) file so I used Google Earth to save it as a .KML. This is starting to sound like an ad for Google. I swear I am not a shill – Ask Jeeves is a much better search engine, see!

3

The .KML file was processed into an .SVG using my new best friend, Indie Mapper.

4

Since I only cared about the lines, I deleted the description and points using the menu on the left. Remember kids, always, and I mean always, read documentation. I spent a whole day scaling, rotating, skewing, bargaining, manipulating nodes, punching walls, trying to match the path output to the map from above. If I had simply read on the Wikimedia page, that the map had a Equirectangular projection and was scaled 170% in the N/S direction, I wouldn’t be writing this at 4AM in the morning. You can change the projection within Indie Mapper. Scaling was easily done in Inkscape later.

5

Export the file as a .SVG.

6

Yay! on three everyone yell, Compatible! Compatible! Compatible! Make sure you are alone.

Upon path import, the first step was to scale the height only by 170% to match the map’s relative coordinates. Then, the height and width were scaled proportionally till they “looked right.” I compared the relative location of the path to ocean and lakes (I really should say “Lochs”) in Inkscape versus Google maps so make sure everything looked right. Since I had the right relative dimensions, it only look a couple of minutes and Voila!

7

I manually colored the hike in green and motorized travel in red. If I decide to laser cut this file, I’ll vector “burn” the border and water bodies on lower power versus the path. I’ll keep playing around with the design and maybe add day hikes as well but I am happy with the results for now!

 

The never-ending 3D printer project

MegaMax has been and continues to be my main project for the last 2+ years.  I am currently working on some upgrades that will make him more Mega and even more Max.  The Y axis is being converted from belt drive to screw drive and the round guide rails are being replaced with linear guides and bearing blocks.  The X-axis will also get converted to linear guide and bearing block and change from 5mm pitch belt to 2 mm pitch belt drive.  I feel confident saying that once these modifications are complete the flaws/errors in prints will be due primarily to the nature of liquid plastic squirting through a nozzle, not positioning system errors.

I recently updated my web site with a sort of historical look at the project, including all the mistakes I’ve made along the way and the often failed attempts at correcting them.  Here is the page that shows how it all started, how it has ended up, and where it is going.  http://mark.rehorst.com/MegaMax_3D_Printer/index.html

Don’t ask me why I do this-  I have no choice.

MegaMax beginning

From this…

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MegaMax present state...

To this…

Rainbow Lamp

A student from a local university reached out to us earlier this year to create a light based object for a class project. I volunteered to help her and after many iterations, we decided to build a diffused RGB Lamp.

The finger-jointed acrylic body was designed using makercase.com and laser cut.

Rainbow_Lamp_Acrylic

I used the addressable RGB LED strip from Adafruit, called Neopixels, to provide the lighting effects.  The LED strip was wrapped around a PVC pipe in a spiral so it could provide light on all four (4) sides. The spiral spacing gets tighter near the top to either to vary the lamp density for a cool effect or I got lazy since this was done at 1AM on a Monday morning – I’ll let you decide.

Rainbow_Lamp_NeoPixel

A Teensy 3.1 controls the strip using the Adafruit Neopixel library. Two (2) sets of three (3) rechargable NiMH batteries were used. At full charge, a bank provided 3.82 Volts. While the micro controller was running happily, the LEDs were noticeably dim. While the vellum paper diffused the lights effectively, the distance to the acrylic was relatively small, so brighter LEDs would have decreased the desired gradient effect anyway.

Rainbow_Lamp_Teensy

We cut the vinyl logo and border using a Silhouette CAMEO. The final design had to be mirrored since it would be adhered to the inside of the acrylic case using transfer paper. The text on the top did not cut very well so we’ll re-cut that bit with more optimized fonts. After seeing the results, I think I’ll create a lamp for myself as well.

paneltest-01

 

Weekend Project: Wine Rack

Last weekend I made a 60 bottle wine rack from some 1″ pine.  I sized it to fit on a counter top in my basement, under the upper cabinets. I was pretty happy with the design of a somewhat smaller Belgian beer rack I made in the past, so I copied some of its basic style. I really like the strong vertical lines of this design, as it contrasts with the strong horizontals of most wine racks.Wine_Rack_Assembled4

With the compound miter saw and table saw, I transformed three 6′ long pine 1″ x 12″ boards into the necessary 150 pieces! The rack holds 60 bottles, so I cut 120 10″ x 9/16″ x 3/4″ pieces. These are connected to 26 uprights that measure 18.1″ x 3/4″ x 1.5″, which are connected to 4 horizontals that are 52″ x 3/4″ x 1.5″.  Note that a spacing of 3.1″ is sufficient for wine bottles, but 3.35″ is the minimum for most champagne bottles.  The 3.35″ width also holds half bottles and just barely holds 12 oz beer bottles.  Also note that for strength reasons, the 10″ long pieces need to be cut along the grain, not across it.  Here are all the pieces, just before I nailed them together:

Wine_Rack_Parts2

It took about 1.5 hours to cut the pieces, and 1.5 hours to assemble them. Note that I used a nail gun and 1″ long, 18 gauge nails for most connections, except the uprights to horizontals, where I used 2″ long nails.  Check out the completed wine rack, made from $25 of wood and nails, in use!

Wine_Rack_Full2

Sense 3D Scanner

STL Tissue Box

Let’s say you want to 3D print a scale model of that box of tissues on your coffee table because you want to commemorate being sick last week. You can do that. We can do that. Yes, Milwaukee Makerspace can now scan 3D objects, thanks to our friends at 3D Systems who sent us this lovely Sense 3D Scanner.

Scan Selection

When you launch the software, it will ask if you want to scan a person, or an object. (I would have scanned a person for the first test, but everyone was sleeping at 6am.)

Scan Selection

If you choose object, it will then ask you what size the object is. I chose ‘Small Object’ for the tissue box.

Scanning

When the scanner sees the object it will highlight it. You can then click the start button to start scanning. I ended up holding the scanner and my laptop in my hands and walking around the table looking at the screen, trying to keep the object centered.

Scanning

Here’s our object being scanned. It takes a little bit of practice to walk around with the scanner and laptop. Whenever I’ve seen people get scanned (their heads anyway) they usually sit in a swivel chair and spin while the scanner stays stationary. We may want to try building a turn-table for small objects.

Lost Tracking

If the tracking gets lost, you need to try to realign things… or start over. It doesn’t take very long to do a scan, so starting over isn’t the worst thing in the world.

The Tissue Box Scanned!

Here’s our scan! We now have a 3D model of a tissue box. Exciting!

Cleaning it up

You may need to do a bit of editing. The most important thing is to ‘solidify’ the model. It needs to be ‘water-tight’ or manifold before you can 3D print it. Solidify fills in the holes.

Cleaning it up

You can also erase things. The erase tools lets you draw around things with a red line, which it will then delete.

Enhancing it

There are a few enhancements you can perform if needed… otherwise, it’s time to save it!

Saving it

The files are saved as ‘Polygon File Format’, with a ‘.ply’ extension. Typically I use STL files, so we’ll convert to that next.

MeshLab

MeshLab can easily import a PLY file and export it as an STL.

Resizing

I like to use Pleasant 3D to view and resize STL models. (It’s Mac OS X only, but there are options for other operating systems.)

Resizing

After making our model a bit more reasonably sized, it’s ready to print! Who wants a hard plastic tissue to blow their nose with!?

Douglas – Update 3

All previous updates can be found here

As I mentioned last week, the project to build a dynamic scuplture using 480 balls is now called Douglas. What does Douglas stand for, you ask? It is Dynamic Objects Under Gravity Linearly Accelerating in Space. It took 2 minutes to define what the acronym means – perhaps we should have taken longer. Yes, in true Milwaukee Makerspace fashion, we found an acronym first, and then found a definition for it. In addition to this huge accomplishment, we made some other progress too!

Chris sent the slave controller boards pictured below to OSHPark for fabrication. Six (6) boards were ordered as a proof of concept. They should be here by the 30th.

 

board

 

I made a bending jig to get more repeatable acrylic motor mounts pictured in the last update. It’s made out of two 1/2 inch pieces of mdf connected together with a hinge. The two adjustable screws determine the bending angle. Currently, they are set for 90 degrees. But bent acrylic usually “snaps back” as it cools, so it will have to be bent more that the desired final angle. Further experimentation will yield that angle and the adjustable screws will serve as stops for the mdf board. In the picture below, you can see parallel pencil lines indicating depth of the bent “arm” of the mount. The acrylic will butt up again a fence to be placed along one of those lines.

 

IMG_0803

IMG_0802

 

One of the goals of this project is to get kids interested in making by actually building parts of installation. This past Thursday, kids actually cut, stripped, and crimped connectors for RJ11 cables! These four (4) conductor “telephone” cables will be used to communicate between the control boards. I hope to have pictures of this awesome event in the next update.

Awesomeness in the Making – it’s the Holiday Make-A-Thon

holidayMakeathonBanner

Since 2010 Milwaukee Makerspace has partnered with Bucketworks to host a Holiday Make-A-Thon on the Friday following Thanksgiving. What do we do at the Make-A-Thon? We make things of course, but more importantly we make things for the holidays and help children of all ages make holiday items for gifts, decorations or donations.

Typically this event was held at Bucketworks. In 2013 Bucketworks was moving into their new space so the event was held at the Milwaukee Makerspace in Bayview.

The question for 2014 is “where are we going to hold the Holiday Make-A-Thon” or is it Make-A-Thons?

The answer is we can have multiple Make-A-Thons at different locations, hosted by different groups on the same day.

Please join us for the Holiday Make-A-Thon happening at the Milwaukee Makerspace and the Mini Make-A-Thon happening at UberDork Cafe on Friday November 28th, 2014 from 1:00pm to 6:00pm.

This event is competely free and we ask for donations to help cover the cost of materials.

Activities
Some of these are tentative and will rely on people to volunteer to make them happen!

  • Decorate a laser-cut ornament
  • Design a laser-cut ornament
  • Learn to solder a tie-pin
  • Design & 3D print a cookie cutter
  • Make a necklace / bracelet
  • Make a rose pin
  • Decorate your own gift wrapping paper
  • Fold a paper diamond ornament
  • Make a woodcut print

Refreshments
Want to bring something delicious to share? Please do!

  • Cookies
  • Pie
  • Leftovers!

Dynamic Sculpture – Update 2

The first update can be found here.

The dynamic sculpture is affectionately called “Douglas” till we come up with a better name. Lance, Chris, and I have been working on different pieces of the project concurrently.

Chris has been designing the slave controller PCB. Each PCB will have a PIC micro controller, which will drive (2) stepper motor through a ULN2803 chip. The PIC controllers will communicate to a  chipKIT™ WiFire over SPI. The WiFire has built in SD Card and WiFi. Since Douglas will be hung in an atrium, this allows us to send new animations wirelessly to a SD Card.

Lance has been working on the PIC firmware and the communication protocol. The firmware interprets the “G-Code” like commands and drives each stepper at the specified acceleration and velocity.

I have been designing the motor mount and frame in Inventor. A few pics below.

mount_1 mount_2 mount_3

The bent acrylic mount will be mounted on aluminum extrusions. The limit switch has been integrated into the mount as well. I built the first prototype a couple of days ago.

IMG_0788

Next, I will create a bending jig to replicate the mount accurately. Additionally, we will be doing some measurements to figure out power consumption. Currently, it looks like we will need two dedicated 120V, 20 amps circuits. We would like to do some real world combined power consumption tests to see if we can lower that requirement.

MegaMax is Too Noisy

As part of my effort to reduce the noise and vibration in the Y axis, I am going to try using a screw drive instead of the 5mm pitch belt.  I rescued a screw drive assembly from a big XY table but it uses a 200W servomotor for which I have neither power supply nor drive electronics.  Never fear!  The motor was a NEMA-34 size, so I designed an adapter to mount the NEMA-23 stepper that MegaMax uses in the NEMA-34 motor mount.  Next I needed a shaft coupler- the screw has a 9mm diameter attachment and the NEMA-23 motor has a 1/4″ shaft.

Adapter plate on NEMA-23 motor

Adapter plate on NEMA-23 motor

 

 

 

 

 

 

 

 

 

 

 

 

 

I used DesignSpark Mechanical to design the motor mount adapter and  flexible shaft coupler.  I uploaded the motor adapter to Thingiverse (http://www.thingiverse.com/thing:526424) and it proved surprisingly popular so I designed another that adapts a NEMA-23 mount for a NEMA-17 motor (http://www.thingiverse.com/thing:526443).  I had to make two attempts at the flexible shaft coupler- the first design proved a little too springy and flexible, so I tried again with a more beefy design.  It turns out it is pretty easy to design this sort of thing in DSM.  I probably spent 30 minutes on the first one and about 10 minutes on the second one.

I sliced in Cura because Slic3r was having some problems.  The prints look a little rough because of all the support material required to print the springs, but they work fine.

Flexible shaft couplers

Flexible shaft couplers- not-so-springy and super-springy.

 

 

 

 

 

 

 

 

 

 

 

 

Adapter and shaft coupler on motor

Adapter and shaft coupler on motor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Motor mounted on screw assembly

Motor mounted on screw assembly

 

 

 

 

 

 

 

 

 

 

 

 

I’ll post an update when I get the screw mounted on the machine.

 

 

Video Wall of Terror

This weekend, I helped decorate for a Halloween Party at my sister’s house. There’s an odd hallway that connects their main large public room to the rest of the house. It’s used for storage, and has shelves on both sides.

This year, I decided to decorate that area by creating a video wall effect. Something like a Television Control Room of Terror!

To start with, I simply filmed my brother-in-law with a video camera – only from WAY TOO CLOSE! I shot macro video of his eye and mouth. Then I edited the footage to create a custom looping DVD.

In the hallway, I set up multiple monitors. These are old monochrome standard definition monitors that were on their way to the recycling center. They were professional monitors, which means that they can pass a video signal through from one monitor to another, making it easy to daisy chain several monitors.

Next to the monitors, I set up three DVD players (including one car DVD player – hey I use what I got!) to play the three different custom DVDs – Right Eye, Left Eye, and Mouth. Each of the three videos is a different length, so they will continue to drift out of sync. That way, as they loop, the visuals are a continuingly changing experience through the whole evening.

Above the monitors, I set up a video camera on a tripod and fed it to some of the monitors. That way, when party-goers look at the monitor, they also see themselves. Having feedback on some of the monitors adds a sense of interactivity to the project.

After the monitors and DVD players were all set up, I covered the rest of the shelving with black paper. In a dark hallway, lit only be black lights, it’s a great effect of creepy images floating in the hall.

If you want more details on this project, I made a full step-by-step write-up on Instructables.