Tuesday, December 15, 2015

Embossing print in bookbinding

As these are the dark winter months I am going to give you a great tip on my second hobby: bookbinding. And do not worry. Bookbinding is an ancient craft but we are going to mix it with high-tech here.

One of the most difficult things to do as a hobby bookbinder is to make a cover with relief (also called embossed). I made some of them and it was a tedious job whhich I never really got right. The best I ever made in the past was a bas relief like the picture shows you.



I made this by carving out the letters with a knife. Then I glued the artificial leather on the carton and pressed it in using the letters I carved out. It was minituous work and a mistake was easily made. besides that my carving isn't the best so to say the least: the result was lousy.

However time has passed on and techniques have evolved. So I just invented the best way to make a cover with relief. I am going to show you how this is easily done with a 3D printer.



The first step is to find a typeface you want to use for the job. Best way to do that is just to search free fonts with Google. Mind you a picture can be done in the same way.
In a text processor or DTP package place your text in the desired typeface as large as possible in the middle of a page with plenty room around it.



I used Open Office and the font Janda Elegant Handwriting. This font is freely available on the internet. Just search for Janda Elegant Handwriting in Google and numerous sites emerge from which you can download it freely. However there are many more usable free typefaces which you can download. Just search for 'free fonts' in Google.

Now make a screenshot from the text (or picture) in Open Office. In Windows you'll make a screenshot by pressing Control-Printscreen.


Next step is to open Paint and paste the screenshot in. Then cut out the text as tight as possible and save it under an appropriate name as a JPG file.


Now open your browser again and search for a service that converts JPG images to SVG images. An easy to use site that gives you this service is http://image.online-convert.com/convert-to-svg. Feel free to look around on this site as it offers more converters like audio and video converters. All free to use.

When the file has been converted move it to your project folder on your system.



Now go to Tinkercad in your browser and open your account. Create a new design. Next choose  import and import your SVG file. Now scale your subject and make sure that you adjust the height to a maximum of 2 milimeters. You can experiment with this but the hight needs to be in pace with the elasticity of the material you are going to use to make your cover with.

That's it. Now download your STL file and the first part is done.


Import the STL file in your favorite 3D printing program, slice it and print it.


Next glue the printed text or picture to the carton that is going to be your board. Let it dry 24 hours before we go to the next step.


When the text glued to the carton is completely dry put glue on the complete plate. make sure you do not forget any corners or curves because we want the leather to stick very well to the carton.


Now put the (artificial) leather on the glued surface.


Next put your pressing foam on.


And last put a pressing plate on top of that. As you can see I am using laminate as a pressing plate. The material is cheap and very strong.



Now put this hambruger in your press and press it really tight. As tight as possible. This means off course that you will not be able to use this technique without a press.

Again let this sit in your press for at least 24 hour.


And behold the fabulous result.

As said you can use this with fonts, frames and drawings. Use it on book covers, boxes, gift cards etc. Use your imagination.

As this is the last posting of this year I whish you all a very Merry Christmass and a Happy, Healthy and Inventive new Year


Until next time.
Have fun.

Luc Volders

Tuesday, December 1, 2015

Lua and Neopixels

I had to learn several programming languages in a relative short time. I learned to program in Python, C++, Mit App inventor, and I learned some HTML. And now I had to learn LUA.

LUA is one of the programming languages used in the ESP8266 boards. It is the standard language for the NodeMCU boards.

So as I had to learn so many languages in a short time I struggled a bit with it.

The Problem:

I wanted to control a bunch of Neopixels (WS2812 leds) with my ESP-8266-01. Luckily enough there is a driver incorporated in the Lua language. The drivers description is as follows:

ws2812.writergb()

Description 
Send the RGB Data in 8bits to WS2812

Syntax

ws2812.writergb(pin, string.char(R1,G1,B1(,R2,G2,B2...)) )

Parameters

pin = Supported all the PINs(0,1,2...)
R1 = The first WS2812 though the line's Red Channel's Parameters(0-255)
G1 = The first WS2812 though the line's Green Channel's Parameters(0-255)
B1 = The first WS2812 though the line's Blue Channel's Parameters(0-255)
... You can connect a lot of WS2812...
R2,G2,B2 is the next WS2812's Red, Green and Blue Channel's Parameters 

  
Looks easy enough. So what I did is I send a snippet to the ESP8266-01 looking like this:

ws2812.writergb(3, string.char(120, 25, 80):rep(7))

And all 7 of my Neopixels displayed a nice white/purplisch color.
Note that the first I/O port of the ESP8266-01 being I/O 0 is attached to pin 3......

But that is not what I wanted. I wanted to adress all Neopixels seperately. I wanted each WS2812 to have a different colour.

That made things a bit more complicated.
The syntax for adressing all 7 pixels is:

 ws2812.writergb(3,R1,G1,B1,R2,G2,B2,R3,G3,B3,R4,G4,B4,R5,G5,B5,R6,G6,B6,R7,G7,B7)

This looks easy and that is right. However programming it is a bit more complicated.

Solution.

Here is my solution. 






I start with defining the colors.
Note that the higher the values, the brighter the Neopixels will be. You can make as many different color combinations as you want.

I made an Array which is as large as the number of Neopixels I had attached. In this case 7 pieces. And then I filled the array with the RGB values: first 3 with blue (b), the next one red (r) and the last 3 with green (g).

And the actual line to set the pixels is:

ws2812.writergb(3,n[1]..n[2]..n[3]..n[4]..n[5]..n[6]..n[7])

So this makes it very easy to adress the individual Neopixels which makes it easy to control them in various projects.


Till next time.
Have fun

Luc Volders