I'm Alessandro Papaleo and I was born in Sapri (Salerno) 30 years ago. I studied at the high school where I learned to love science.
10 years ago I started a communication agency and I was involved in web development. I learned to work in html, css, php, mysql and I developed many sites using wordpress and joomla. After a few years to work issues I went to Milan for an event and I saw for the first time a 3D printer in action. I'm loving it.
1 year later I started working with 3d printers and was co-founder of 3DiTALY, the first 3d-printing store in Italy. Now I deal with rapid prototyping and technical assistance on 3d printers. I also do research and development for my company. Two weekends per month I teach classes of 15 students how to use the 3D printing technology.
I love tecnologies and DIY.
One year ago I saw a robot that drew and I'm loving it. Since then I have always thought to build one, but due to lack of time and advanced knowledge of electronics and Arduino, I never did.
What better time of fab Academy?
A drawing robot (aka drawbot) is a simple machine, that draws picture using a normal pen, some motors, some strings and a software that convert bitmap images into polar coordinates.
The goal is to create a scalable system so I can draw big picture as I want without touching my project.
Below a small sketch of the system.
For my project I would use Arduino combined with a shield for controlling two stepper motors and one servo.
I want to use 2 NEMA17 and, on the motor shaft, I want to mount two pulleys designed specifically to accommodate the nylon thread. I need also a servo to lift my pen from the draw.
To hold the pen I wanted to create two arms connected together by a bearing in the middle and create an insert for the pen. In this way the movements will be softer. Under the pen I would place my servo. By rotating his arm, I can lift the pen from the paper so I can move from a point to another without leaving the sign.
I would like to close the electronic in a box that I want to draw and laser-cut. To make my drawbot scalable, I wanted to place the electronic on the ground and pass the thread in bearings I'm going to apply to the four corners of the wall where I'll draw.
For large drawing, I will need more wire, but the remaining parts of drawbot remain unchanged.
I would also like it to be easily transportable, so I will create a kind of carrying case
As software to convert images to gcode I found two very interesting opensource projects and I would like to try them both and then judge what more beautiful.
Below some art mede with a drawbot that I found on web:
The first assignment is to create a personal website describing me and my proposal for the final project.
To create this website I used "Dreamweaver" as editor. Dreamweaver is a commercial product, but I prefer it because of its very convenient interface.
Today more and more people are surfing Internet with their smartphones, so I want to make my site responsive but without use bootstrap (so I can learn more).
I write a simple stylesheet using divs with percentage dimension. For some tricks I use media query so I can check the browser dimension and pass the correct css for any device. For example:
@media screen and (max-width: 360px) {
.menu > a {
font-size: 10px;
}
}
I check that the browser have a width less or equal 360px and then I set menu link with a different font size.
I like effects on my sites so I used jQueryUI to show this popup and some simple script to smooth scroll and to control which menu was clicked and then apply my css class. Below the code:
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash;
var $target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function () {
window.location.hash = target;
});
$('.menu a').removeClass('active');
$(this).addClass('active');
});
All other effect are made using simple html5/css3 transitions. I've chosed to create one single page scrolling because is cool.
I also start using Mercurial to upload and update my site. In the beginning it was not so simple for me beacause I usually use visual ftp softwares but I understand that it is a very powerful software.
To update my site I use the main Fablab pc because it is already configured.
First of all I put my site on an usb pen and then copy it to the right directory under Documents/fab2015/europe/students/papaleo.alessandro.
Now I open the terminal and navigate to europe folder. Here I do
hg pull
This command can pull from the central repository and check the changes.
Now I have to sync my local repository with the central one:
hg update
hg addremove
At this point I can commit my modifications executing:
hg commit -m "some text to describe the update"
in photo below I'm updating my final project documentation. Now we can start with the real files update. In this step we can have an error message, because someone is updating his site too. Command:
hg push
If you have the error you have to fix it and do again the pull, then you have to call the:
hg heads
The response is something like you can see below.
Here you have to check who is working on the site and who commit lasts. So you have to read at his changeset number. At this point you have to execute the command:
hg merge 1859
where the number is the changeset number. Now you can commit and push again.
During last Wednesday, February 4th, we had a new lesson with Neil during which we had the opportunity to introduce ourselves. Afterwards Neil we introduced the topic of this week: computer-aided design.
We started analysing some software and after we focused on antimony. It looks very interesting but take a long time to be understood. I've never modelled anything and then start from scratch.
The assignment for this week was: model (draw, render, animate, simulate, ...) a possible final project, and post it on your class page.
To start I decided to work with Inkscape for vector drawing, gimp for working with images and 123d design for 3d design.
I started with Inkscape using a laptop with OSx Yosemite and I encountered many problems both in installation and during use. For example, I noticed a strange bug making a copy of a vector, that after paste, showed a picture grainy.
I have not lost heart and changed my machine. A hackintosh (a homemade mac) with osx 10.9 Mavericks. Here Inkscape worked much better and I immediately started to design the logo of my project. (below the final result)
I decided to represent "Drawbot" text with a pencil below. In place of the letter "a" I decided to make a drawing to represent the polar system of the machine. I started working at levels so I can more easily operate on every single letter.
To facilitate my work on letter "o" I copied and pasted the curve, I scaled and repositioned. Then I changed the stroke to make it correct.
To finish the project I tried various instruments, and I made sure that the carrier was a closed line for each letter so I can use the logo with the machine for vinyl cutting.
I found Inkscape very nice and interesting. Also functions to turn a jpg in a vector I found very interesting.
After inkscape, I opened Gimp. I knew it because I used linux for a period. For many years I am a photoshop user and switching to Gimp it was not easy. The biggest difference I found was the naming of the menu items: I was used to some names and Gimp are all different. So it took me a while to make the eye, some tools I find them far less powerful than photoshop, but otherwise it's just a matter of habit. I decided to play by a montage with a photo that I had on the computer. I had a picture of my work-team within our laboratory and I decided to transfer all on a beautiful beach. Then I started to cut out the picture.
Here I started to see the first differences with photoshop, where the contour is much faster. I cut out the parts I needed and I deleted the rest of the photo. At this point I googled some pictures that I could like and I chose this.
I imported the photos to a new level and I started working up of the contours. I used various tools to improve the result, including the rubber nuanced. I cleaned up the drawing and I switched the lights. I corrected brightness, contrast and saprazione, Well done: the photomontage is served. All in all a great software!
As last exercise I placed all the screenshots made during exercise, scaling and saving them in jpg with 90 of quality, so to make them lightweight and compatible with the website.
Now let's talk about 3d design. For 3d modeling I used 123d design. In particular, I drew some of the components that I will accomplish for my project. I started drawing the pulleys that will serve to accommodate the wire. then I designed the engines which will be applied and I checked that they were the right size.
Later I modeled a draft suitcase where I'll put all the components and i put my logo on it using my inkscape work. Finally I designed the box that will house the electronic with the hole for the USB socket.
After i use the command "material" to make a render of the project. So this is my final result:
I started to try and study also solidworks but to learn it well I will need more time. Is a very powerful software, and allows you to do a lot of things in particular I have amazed the many types of screws and gears that you can simply import. I think is a very good software for mechanical modeling and I really hope to succeed him to deepen.
UPDATE
After this week I always have to design 3d models or 2d design for lasercut. A lot of my work you can see for example on my final project, where I design a lot of things.
This week we have started with regional review. Unfortunately there was some network problems connecting with Jabber. In the afternoon, Neil did a review with some students and then introduced the topic of this week: Computer-controlled cutting. This topic is very interesting for me because I will need a lot for my final project. We analyzed different types of machines and machining. Thursday together with Lorenzo, our local tutor, we started to analyze the problems relating to the cut and their solutions. In particular, we have seen how the laser cutting eats the material inside and outside of the track so if we need to create joints is a good idea to know the values of cut. As an exercise we created a template with various cuts from 0.25mm to 6mm so you we try our joints prior to do to the assignment of this week: design, make, and document press-fit construction kit. So i start my design template using Inkscape (soon I will understand that I made a mistake). I start to draw the outline of the template but when I started to create my teeth with the projecting parts all the same size, I realized that a program such as Solidworks has been much faster. However, I continued to use Inkscape to do so further exercise. It took me a long time to draw the template. I worked on board using polylines and making a raw outline without badae size. Subsequently, starting from dental highest I started to manually enter the coordinates of each point with helping the calculator to be precise.
At the end of the work I double checked the dimensions and I wrote all the measures to cut next to each tooth in order to remember them. I then started to join the track and put everything on the same level. I copied the entire model and I made a second copy so as to have two templates to do the tests.
At this point I switched to export and here the problems started. Initially I exported in DXF keeping the default export Inkscape. Put the file in the machine, however, I noticed that the file unreadable and appeared with many errors. Rechecking the file with other software I've seen that the file was exported incorrectly and had an infinite number of segments instead of the curves (especially on numbers). At that point I rechecked export settings and put a check mark on the spline. I exported and checked the file and noticed that everything was ok. Happy I can take action on the laser-cut. After some test I found best result with speed 40% and power 60%. If I try to go faster my cardbord is not cutted, if I try to go slowest or cut with more power my cardboard burn (panic the first time it appen!).
And here the final result! :-)
I started to fit together the pieces and found the right joint to 5.5mm. Very Well!
But the work is not done here. I have to build my own press-fit kit. To do so I started thinking about simple forms and they could be snap together. I began to reason with the three basic shapes of geometry: triangle, square and circle. By the square I decided to find the cuts in the middle of the four sides. Same on the triangle I have made cuts in the middle of each side. The circle instead lent itself to receive more cuts and to be able to ensure joints with angles other than 90 degrees. I decided to make cuts in the circle every 45 degrees: so I did eight joints. Before proceeding to the digital design I decided to draw on cardboard and cut out by hand my idea so that you can see immediately the feasibility.
Found that everything worked as idea, I switched to the realization in the computer. For modeling this time I decided to use Solidworks so to do exercise and have a parallel file parametric and easily editable. I started with the square and the triangle were the simplest and then I finished with the circle.
The work goes fast in the implementation of the file. I love more and more this software. After my design I did not lose time and I immediately exported dxf to try it in the laser-cut. I cut the first pieces and saw that everything was ok and then I continued to cut them all.
In the end I decided to have fun with some decoration. I then downloaded from the internet logo fabacademy open Inkscape and transformed the image from jpg to a vector. I fixed some traits, improved the look and exported my job in dxf.
At this point I opened my project in solidworks, imported DXF, scaled and positioned the logo on one of my square modules and re-exported all in dxf. At this point I went back to the laser-cut. Cut the last pieces and now the best part: I started to mount them. Below some of the forms that I can create with my press-fit kit.
Finally I want to try to use the vinyl-cutter, so I have taken my previous assignment, exported in dxf and used the machine to create my final project logo sticker.
After some days I go to Fablab Sardegna Ricerche where I find some new machines and I begin to work with them. First of all I want to do some sticks with a big Roland vinyl-cutter.
This time I want to create the fabacademy logo that I have redraw for the press-fit kit. This machine is very easy to use, and there are very few settings, like page dimension, cut power and type of paper. When you turn on the machine the first thing to do is set the paper type, in my case is a roll. Then select the cut power (here I do some tests with different vinyls). Now I can open my file. In this fablabs they have Illustrator cs3, so I open my dxf with it, go to file, print, and adjust some few setting in paper size
I'm ready to start cutting:
And this is the final result:
Always in Sardinia fablab I start to study the engrave with jpgs. I discover a world. I need some picture for my new apartment, so I chose some photos af me and my girlfriend, I imported the jpgs to inkscape, set the lasercut to do the engrave for the raster and the cut for the vector I create on the outline, and.. the result:
Wonderful! A really simple technique with a truly beautiful result.
In my final project you can see also my case decoration with the lasercut.
This week Neil talks about PCBs. We learned how to produce it, the various construction techniques and materials used. Then he saw us how to solder and assemble the components. The assignment of this week was to build the FabISP in-circuit programmer based on the Atmel chip Attiny44.
To achieve our task, the first thing we did was to download the PNG circuit from this link and the PNG with the cut of the pcb from this link.
At this point I start to import into Inkscape and transform the bitmap into a vertor (Path > Trace Bitmap). Now I can start personalize my PCB trace so I import my company logo and I create my vector. Then I inserted it into my project. At this point I can export to DXF file format and switch to the milling program.
This time we use an interesting software that can inspect vector and create gcode for milling machine. Aspire by Vectric. When I opened this software the first action wat to import my dxf file, put the real dimension of my FR1 copper clad board (it's important to mill on a FR1 because FR4 is toxic). Very important is to put the copper board height so we can cut precisely. Now I've checked my file and select notch strategy for the cut. After I select my end mill tool (Engrave (20' 0.2mm Tip Dia)) and the depth of cut to remove only the copper part of the board. Now I exported the machine toolpath for the engrave and create the toolpath for the cut. Then I have 2 gcode: the first to create the PCB trace, and the second for cut the outline of my PCB.
It's time to cut!
First of all a need to put the right end mill to the router. To obtain a good trace, it's important to find the right Z position. The best way i find is to support the and mill on the board and then tighten the chuck. Now i open Mach3, load the gcode, turn the spindle and start the work.
After some tests and some sacrificed board I have reached my goal. Below the result.
Now I'm ready to solder my FabISP. Thye components I need are:
- 1 ATTiny 44 microcontroller
- 1 Capacitor 1uF
- 2 Capacitor 10 pF
- 2 Resistor 100 ohm
- 1 Resistor 499 ohm
- 1 Resistor 1K ohm
- 1 Resistor 10K
- one 6 pin header
- 1 USB connector
- 2 jumpers - 0 ohm resistors
- 1 Crystal 20MHz
- 2 Zener Diode 3.3 V
- 1 usb mini cable
- 1 ribbon cable
- one 6 pin connectors
I use the solder everyday but I never did microsolderings, so it will be a challenge. I started to solder fron the USB connector, probably the most difficult component to solder because of the small trace and connector. I used a conic end, a sponge and desoldering braid.
Next step the ATTiny 44 microcontroller and the crystal. To work better, here I used a chisel tip.
And after a while, my FabISP is ready to work (I hope). To finish with the hardware I cut my ribbon cable and put the connectors.
After using a magnifying glass to check the solder and a multimeter to check the connections, I start the smoke test connecting the board to the USB port. It all seems ok. I'm ready to program the board. Our teacher install the chip driver on ubuntu so I'm ready to compile the firmware. I put the ribbon cable of AVR to my FabISP (red wire on bottom right pin, the one marked with V). Using the console, I write:
make clean
make hex
make fuse
make program
Well done! Now I check the USB using lsub command.
Next step I try to make an other version of FabISP, the Andy one (FabISPkey). But still now I just reached to mill the board. Soon I want to end the work.
For the assignment of this week we had to model an object to be printed with a printer 3d and we worked with the scanner 3d.
I first used solidworks to model a box to store the FabISP made last week.
I started with the creation of the base. I then took measurements of the base board and created a rectangle. I then made a extrusion with offset 1.6mm outside so as to create a parallelepiped large enough to accommodate my circuit.
Then I created the notch using my basic rectangle. At this point I had a little box. I then measures the usb socket and its distance from the edges.
I then placed perpendicular to the face on the usb socket and I drew a rectangle the exact measurements. I then created the hole.
At this point I exported the file format stl. I opened it with CURA and configured for my printer (wasp delta 20x40).
I made sure to have all surfaces full so I set the shell thickness to 0.8mm (my nozzle is 0.4mm large then the machine will make me two steps to the shell). By doing so I will have the seats filled to capacity.
Same thing I did to the bottom / top thickness setting it to 0.8mm with layer height from 0.2mm.
The material I chose is PLA that is a bioplastic that not smell like abs but is quite strong. The only bad quuality is that it deforms to low temperatures (up to 50°C) but for my prototype is not a problem. I choose 160°C for estruder temperature that is perfect for small pieces. The hot bed can be off for small pla pieces but to be sure I set it to 50°C. The other settings are the ones right for the machine specification. I also activate the retraction because pla tends to leak arrived in temperature and this can dirty the pieces.
I have printed my prototype and I saw that I was wrong to some measure, and the card is not got stuck properly. I then reopened solidworks and proper measures. One of the nice things about solidworks is the very fact of being able to quickly change the three-dimensional model taking the sketch.
I corrected the hole of USB and widened slightly basic. I reprinted the file and this time was perfect. Then I switched to create the cover.
I then created a box as wide as the box and draw a rectangle on the corner of the edge distance of 1.6mm. At this point I duplicated my rectangle three times mirroring along the bisectors of the cover.
I then calculated the depth of the box and I subtracted the height of the board. So I corrected the height of my four rectangular joints that I will use as the cover.
I saved and created a new file assembly with solidworks. I then opened the two sides and I dovetailed. I did this test to see if the box and the cover fit together.
Satisfied with the result, I exported in stl and open CURA. For this piece to print the greatest difficulties are the correct implementation of the joints, because they are thin and long. To be able to print them correctly I set a temperature of PLA to 160° and I put the speed to 50 mm / s so as to allow the material to cool. After the print I assembled the pieces ... and this is the result.
At this point I switched to scan. To do this I used the Sense of 3DSystems. In the past I used the kinect with Skanect as software, but I know the limits in quality.
First I scanned my partner Antonio. For best results we have set up a photo shoot with different lights. The sense like kinect uses infrared technology to reconstruct the geometry of solids that scan, so it is important to work with the right light.
After the scan of Antonio, I asked my fellow to scan myself.
After scanning I saved to ply and opened the file with Netfabb. This is one of the best software to easy corrected the solid mesh. After scanning is essential to close the solid watertigh beacause frequently you don't reach to scan every point of the surface, so the scan has some holes.
Below the results of the scan I made, with the texture on it and the scan of myself.
After the mesh correction, I saved in stl and sent to Cura. After a rapid setting a sent to the printer.
Here is the result printed with PLA transparent on a Wasp Delta 20x40.
For this week assignment we have to study the microcontroller, redraw the echo hello-world board, add (at least) a button and LED (with current-limiting resistor), check the design rules, and make it.
So I started downloading Eagle, one of the software we can use for elettronic design. First of all I need the schematic source and the Eagle libraries . After installing I start drawing my board and after some steps I have my echo hello-world board with a led connected in series with a 220 ohm resistor to pin number 6 of attiny and a button connected with a 10000 Ohm resistor connected to pin 10. This is the result:
At this point I can export the board image so I can start create the vector.
After a while I transform the image to a vector and I insert my logo too. Now I try to export as DXF, but when I try to see the file in Aspire, I notice that the export fails.
Many other times I had this issue, but I can modify the vector in Aspire because of the number of wrong vector. This time is too complex to modify so I decided to try in onother way. Let's download Corel Draw Trial.
I had to transform the image again, insert my logo, export in dxf, open in Aspire and... magically all is right this time.
Now I can start with the optimization of the vector. To be onest, the vector exported by CorelDraw is very clean (there is a big difference with the vector exported by Inkscape) so that i could not optimize it, but I do the same. Two are the optimization I need: "Curve fit vectors" and "Join open vectors".
Ok, now seems ok, I can start create the gcode. I will use the same end-mill I use for the fabisp so the settings are quite the same. Again I decided to use Sergio's MechMate (yes, the big one!). I mill 2 board so I have a copy (unfortunately soon it will help me). After about 30 minutes the work ends and the board seems good. It's time to soldier. Now I'm faster solder, then after about ten minutes I have my circuit ready to be tested.
I don't have the resontor yet but I read that is not critical, it should work the same.
I connect the FTDI cable and the fabISP to the board, install all the drivers I need, and open Arduino IDE to burn the bootloader. Unfortunately I read this message:
Ok, no panic! I need to check with multimeter. Everething seems good. I try to create another board. So I use my milled copy, and start solder again. Checked with multimeter, but nothing...I can't burn the bootloader. Surfing on internet I find many solutions and I try all...no way for me!
I will try again next week..sorry!
UPDATE:
see week 7 where I talk about my first Arduino Uno prototype.
UPDATE 2:
After many trouble with the atmega 328p component in Eagle because each time I use I need to modify the vector because is not good to be milled (1/64 inch endmill is not small enough for the component), I decided to study how to create my personal library with the right dimension.
After reading some books and searching on internet, I’m finally able to create my library. Here il my little guide:
- Open Eagle and in the main window click on:
- file -> new -> library
- back to eagle main windows, find the library you want to modify and then right click on it, then copy to library.
- Do the same with the package you want to use
- file -> save as -> and give it a name
- view -> grid and set all value to finest
- click on the red button (SMD) in the left sidebar
- set the right size in top bar (you can chose from preset or write your dimensions)
- begin to draw your pads clicking in the place where you want to put it.
- finish the component
- now click on each smd pad and give it the right name.
As I explain last week I have some trouble with the echo hello-world board.
So to complete this week assignment I decide to do the jump: I try to make my Arduino Uno board. I know is not easy but I need it for my final project. So I look at Arduino uno specifications and I discover that uses an AtMega 328p microcontroller. So next step I go to this page and download the datasheet. It is very detailed and many information I read, I was not able to understand all well.
I focus on the external oscillator clock frequency that is up to 20MHz but it also has a 8Mhz internal clock. Moreover it has 4 reset sources (the power-on, the external (like a button), the wachdog system and the brown-out) and a capacitive touch sensing that use an Atmel library to work:
"The Atmel® QTouch® Library provides a simple to use solution to realize touch sensitive interfaces on most Atmel AVR® microcontrollers. The QTouch Library includes support for the Atmel QTouch and Atmel QMatrix® acquisition methods.
Touch sensing can be added to any application by linking the appropriate Atmel QTouch Library for the AVR Microcontroller. This is done by using a simple set of APIs to define the touch channels and sensors, and then calling the touch sensing APIs to retrieve the channel information and determine the touch sensor states."
Now I focus on the microcontroller pinout schema because I need it to design my arduino board.
After I study it for a while, I start open Eagle to begin draw my own Arduino. Soon I discover that I don't have the library for the 328p and I can't find it on internet. So I reopen my microcontroller datasheet and I find that the pinount and packet is the same of the Atmega168-au, and this one is on my Eagle library. Bingo! I can start my work.
First of all I want to connect all digital input to a pin block and all the analog to another block.
The schematic is the first step to work with Eagle. Below my first step with the analog block connector.
Working on connections I decides to have a 6 pin block with 3 digital pin and a vcc + gnd so I have a ready to use connection box for my experiments (at the end I find out that it is useless). The other digital input with 2 power pins I put in another block. Moreover I put on my board also the AVR-ISP connector so I was able to program. To he pin 17 (the one used for AVR-ISP SCK) I also put a LED with a 499ohm resistor so I can you it to test the first program sketch for this week.
Other step I want to do is standalone usb power cable so I can have 5v from an USB port or a power pack, without use the FTDI cable. To do that I put a mini-usb B socket to my schematic and use only the vcc and gnd pin. Also I need a regulator to have 3.3v stable, 2 capacitors and 2 diodes, so they can protect from short circuit. Moreover I insert also a LED that can light up when power is connected.
After the schematic I start working on the board. Here I have many trouble with the wire because I never work on a so complex board. In detail I have 2 main problems:
- first one the space between the paths, especially around the microcontroller;
- second one the method to wire all the component without cross I wire with the other.
To solve the second problem I decide to use a bottom cable to pass the reset wire to the microcontroller pin. So this is my final result:
So I export in png my board and i tranform it, using Inkscape, to a ventor image and save it as DXF.
Now I can open the last file in Aspire and prepare thr gcode for the milling machine. But first I have to check the tracks, because i'm going to mill with a 0.4mm endmill and I'm to check if the distance between eack track is correct. So I set Aspire to simulate the mill operation with the rigth mill tool.
At this poin I can check each track and I can adjust each vector to be at the right distance.
To end this operation, it took a long time but I finally got my final file with a graphic personalization (I name it AlexZone Brain Module).
Now I do 2 gcodes, one for the pocket and one for the cut, and then I prepare to mill. This thime I use a different milling machine (Mechmate is tooooooo big for this purpose).
Finished to mill it's time to solder. I strart from the microcontroller. Here I make many mistakes because of the proximity of the pins. So I need a lot of desoldering braid to repair. After about one hour I reach the goal. Now I can solder all the other components, but when I'm going to look for the regulator, I discover the are finished. No problem..is not so important, I can use FTDI cable for now.
After a while I finish my board and I'm ready to test it.
This week I updated the arduino ide and I discover that the the version is quite different from the previous so I have to import all my library and board again. On mac I found this method:
I go to Arduino, preferences and at the bottom field "Additional Boards Manager URLs I insert this link: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Then I restart the Arduino and now in board manager I can find all Atmel microcontrollers and I can download and istall it. At this point I'm able to burn the bootloader.
Now I'm ready to test my board with some sketch.
First of all I try a simple Arduino IDE example. So I go to File, examples, basics, blink.
The sketch is an example shows how to turn on and off a LED using the digitalWrite() function.
In my board, LED is connected to pin 17 which corresponds to the Digital Pin 13 of arduino.
So I can modify the sketch to set the led to the right pin. I also try to modify variables name and comments so to customize my code. This is the code. Below The sketch and the visual result:
Now I try to do something different and I use a little breadboard to add a Button to my Arduino. The idea is the same of the Hello Echo board. I put a button that if pushed give an High value to a digital pin and go to ground. I need a 10k Ohn resitor but I haven't, so I use 2 4900Ohm. Now the goal is to write a program that if I push a button Light on a Led. So if button value is High, the led go High. This is the code. This is the result:
Now I try to store the last action on the button so if I press it and release, the led goes on, if press again it goes off. To do this I use 3 variable, one for the current value read, one to store the last, and one to count the number of change. If change are multiple of two, then I have pressed the button again. This is the code. This is what I do:
UPDATE:
After this week I continue to study Arduino IDE and language and I use it in every week. Specially for my final project and "interface and application programming" I have to study a lot to reach my goal.
UPDATE 2:
I do a lot of arduino Brain Module versions. Below my last and best version: Last Arduino - Eagle files
This week was very amazing! The assignment is: make something big! Two years ago I change my apartment in Rome and I never finish to buy the fornitures because my dream was to create it. What better way! So first I need a library. I want to design a strange surface in solidworks and then transform it to the surface of my library. The first af all I open Solidworks and I draw three lines in a 3d sketch.
Using boundary surface on three curves I'm able to create my main surface (in this link you can find a simple guide).
After that I create a new plane and draw a rectangle on it. Now use surface loft to create the 4 surfaces I need.
At this point I solidify all the surfaces and I have the solid I want. I export to slt and open it with Netfabb so I can check that the stl is correct. In netfabb I also scale my solid to real dimension and rotate it. Now I export again to STL binary file and open it in 123d make.
Here I set the thickness of my wood and the dimensions of the table. I set to have 4 slide in vertical and 5 in horizontal. I make square corner because i want to adjust it manually in Aspire.
I export the file in dxf and I open it in Aspire. Here i check all the vectors and adjust some errors. At this point, I create a dog-bone fillets in each joint.
Now I create some circles in some point where I want to put the screws to anchor the wood at the base of the milling machine.
The last step is to insert some toolpath tabs that help to wood to stay down so the pieces cutted don't move.
At this point I put all the pieces on my plate to optimize the wood so I can create two toolpaths , the first to have a sign where put the screws, and the other to cut the wood. I use a 5.6mm endmill to do all the work. My tool settings are: pass depth: 6mm, spindle speed:12000r.p.m., feed rate: 3000mm/min, plunge rate: 1200mm/min, safe z:20mm.
HERE you can download the Aspire project and the gcode for MachMate.
At this point I start milling. The wood I choose is a 2cm plywood board.
After one hour I have finished to mill and I'm ready to sand the pieces.
At the end I'm ready to assembly all the pieces of my library.
The joints fit perfectly but I notice that if I move wrong, the pieces do much friction between them and it is difficult to be clamped.
Finally I have my result.
For this assignment I want to use food-grade silicone to make a tower of chocolate.
To complete this assignment first of all I have to design my tower.
Starting with Rhinoceros 3d I draw the tower profile in the right view and I revolve it. So I have the first solid.
Now to create the battlements of the tower I use the command extract isocurve to find the edge of the roof (a circle) and again the command offset to create a 6mm offset inside. At this point I Draw 2 lines from the center and I use ArrayPolar to have something like a pizza sliced.
So I can trim the two circles and all the 12 lines and obtain only the lines I need to create the battlements.
After that I do a boolean curve and a filletCorner of 2mm of radius and delete the no more used line. Now can extrude the curves for 13mm and do a boolean union between the parts.
Now have my tower completed but I want to simulate a 3d printed chocolate tower so I want to add a the typical lining of a 3d printed object. To do this I set the right view and go to Section to have the curves where I create the tubes. After a boolean union my 3d model is ready.
At this point I can 3d print my model. To do that I use a Wasp delta 20x40 and Cura for slicing. I choose brown PLA because is quite similar to the chocolate and the pla is a good material for this scope.
My print take some hours even though i set the machine very fast but the result is quite good. In parallel I design and print a cylinder closed on the bottom that will be the container for silicone mold.
The silicone I choosed has two components: the silicone base and the hardner.
First of all I use scotch tape to attach the tower to the bottom of the cylinder, in the center. At this point I take a balance and weight 10 parts of silicone and 1 of hardener and beginning to mix with a stick. Is very important to mix well for good results. Now I can pour the mixture of silicone inside my mold completely covering my tower. Here I made a mistake because I have mixed less silicon than I needed, so I had to do the operation twice.
Now I have to wait 24 hours to dry the silicone. The day after the only thing I have to do is detach the silicon from the mold. To do that I have to open the cylinder because I can't handle the silicone. To remove the tower I use the elastic properties of silicone. This operation is less difficult that I think because this silicon comes off easily from pla. This is the result.
Now I can prepare the choccolate. To do that I use tablets of milk chocolate that I do dissolve in a water bath in a saucepan, stirring often with a wooden spoon. When my chocolate is ready I just have to pour the melted chocolate into the mold and wait for it to cool. This is some of the results:
As you can see the chocolate has some white spots. This is due to bad temperature tempering which brings out the cocoa butter on the surface.
For this week we have to measure something. I'm not so good in electronics and I'm working a lot to learn something. Before the fabacademy the only thing I reach to do is to work with lamp or button. So this assignment is not so simple for me. I decide to work with a thermometer. But to do this I want to learn how some resistors can reach to measure. So I start form Neil lesson and from his board and began to search about how the voltage divider work. It is one of the most fundamental circuits in elettronics and it is a circuit that using two series resistors can give as output a fraction of the input voltage. To calculate the output we can use this equation:
Vout = Vin * R2/(R1+R2) where R2 is the last resistor soon after the point where I measure the output and before the ground. So the output voltage is direct proportional to the input voltage and the R1 and R2 ratio.
To measure something a common practice is to use variable resistor (measure ligth, measure temperature, etc.). In this case you have two possibilities: The first is to have a voltage divider with one of two resistor fixed and the other variable. In this case you ness to know exactly the Vin. But the input voltage is not always stable. So the best practice is to use two voltage divider, the first one voltage output is taken from two fixed resistors and would be used as Voltahe comparator. The other one is made by a fixed resistor (the same R1 of the fisrt voltage divider) and a variable resitor (with the same nominal value of the R2 of the first circuit).
So, coming back to our thermometer, we have a 10k ohms variable thermoresistor, so we can create a circuit made of 3 10K Ohms and the variable thermoresistor and we can use the 5v usb voltage as Input voltage.
After I understood this information I try to redesign the Neil temperature sensor. Theese are the schematic and the board I designed.
This is the Eagle project you can download.
Soon I can export the board as PNG and, as always, transform it to a vector DXF file using Inkscape.
Now with the dxf file I can prepare my Aspire file and then the gcode for the milling machine.
After a while my spindle starts and my board comes out a little at a time.
Seems good. It's time to mount my components. I'm gonna start from the microcontroller (attiny 45).
When all components are in the right place, it's time to make smoke tests and to burn the bootloader.
Perfect! Everything is going well. Now it's time to program my board to measure the temperature. First of all I download pyserial 2.7 and I setup it:
sudo python setup.py install
Other important software to download is the XCode for mac. This big tool provide all the necessary tools to compile and execute programs. The step to do now is to build the make file for the usbtiny and write into the microcontroller:
sudo make -f hello.temp.45.make program-usbtiny
The last operation I have to do to start working my board is to read the value. To do that Neil write a python sw with a graphic interface that read using pyserial the values aquired by the board. In mac I have to list all the py.usb port to have the exact name of the serial port wher the peripheral is connected.
ls /dev/tty.usb*
The response is something like:
/dev/tty.usbserial-A1030KBC
So now I know the name of the port and I can launch the software reading on that port:
python hello.temp.45.py /dev/tty.usbserial-A1030KBC
UPDATE
Now I want to try with onother sensor. I choose the light sensor that use a phototransistor to measure the light. The schema seems a little bit complex because I don't understand well how all the components works together. I need a photoresistor, an attiny45 microcontroller, two resistors (10k ohm and 46.9k ohm) and one capacitor (1uf). As always I start with eagle schematics and then the board design.
I always prefer to use the ratsnest to connect all the components to ground so I can optimize the milling time and the number of wire on the board.
Now it's time to open Aspire and work with the vectors. After some check on duplicate vectors or open vectors, I can start simulate the milling to see if my 1/64 inc endmill can pass everywhere.
This check is very important, for example below you can see my board without any checks
And theese are the milling results with errors
At thi poin I can export the gcodes for pocket, drill and cut
After the milling, I beginning solder all the components starting from the microcontroller. The attiny is less difficult than the mega328p so the work go faster. It's important to look at the photodarlington because it has a little mark that shows the polarity.
Every seems to go well but when I start to burn the bootloader using the C CODE of NeilI receive a bad message:
Ok no panic! Maybe some bad welds so I go with the solder to each component and double check the solder status. Nothing to do, the error come again. What is the problem? After many check I see that I used a 49.9 Ohm resistor and not the 49.9K Ohm. Happy for the discover I go to our resistors drawer and I detect that we haven't the 49.9K. I am very sorry for this because I wanted to finish my exercise.
To do this week assignment I think what I need for my final project. As you know my goal is to create a drawbot, so my need is to control two stepper motor and one servo. Many people to do this bought the Adafruit motor shield that is a board with 2 motor driver and a shifter on it. I want to create my own board and I want to use the L293 H bridge that is the same driver motor that uses the adafruit motor shield v1.
L293D is a traditional H bridge, that is an electronic circuit that enables a voltage to be applied across a load in either direction and is one of the common way to drive a stepper motor.
I read the datasheet of L293D and I found this important features:
- Supply-Voltage Range up to 36 V;
- Separate Input-Logic Supply
- Internal Electrostatic discharge protection
- Thermal Shutdown beyond 70°C
- Output Current 1 A Per Channel (600 mA for L293D)
Moreover this is the pinout for L293 D package:
With this information I can start design my board in Eagle.
Soon after I choose the component from st-microelectronics library, I notice thatI have a lot of pin to connect and I discover that is impossible to use one single face board (or is possible with a lot of ok resistors). I decide to mill double face (fear for this because everybody say me that is very difficult). To do that I design 2 holes on my board that I use as a dima for the rotation of the circuit. First I drill it, after I cut the board border, then I drill the pin holes and after do the pocket. Now I detach the milled board from the plate and using the holes and the cutted border, I rotate my board. In aspire I do a vertical mirroring of the B sides of the board and then start the B-side pocket.
After one hour this is the result:
As you can see in red I show all milling error (but in that moment I can't see).
Seems ok then I can start solder all the components. I finish and start with the multimeter to check all the connection and I see that I have a shot circuit on the board. Looking with a lens and a led light I discover the problem but it is under an L293d so it is impossible to remove. Moreover I soldered pins on the wrong side so I can't put my shield on my Arduino.
Angry about that, I do a breath and I get back on the milling machine to make a new board.
This time I check all more carefully and then begin to solder and the result was very good.
Now it's time to test it. Magically it works perfect. I'm very happy for this because my knowledge of electronics are zero and all my work comes from the fabacademy lessons so I am very proud of me!
I've tested my motor shield with both my drawbot (that works with this motor shield) and with my interface software. So please read more on the other pages.
This week assignment was: "design and make a 3D mold (~ft2), and produce a fiber composite part in it".
I never use composit but Neil explain us that many of the objects that surround us are made with this technique, from boats to everyday objects. When I started thinking about what I could do with this technique, the first thing I thought was a fishing rod in carbon fiber, so light and durable (in summer I often go fishing) , but unfortunately we did not have the materials to do it, then I thought of something to furnish my house (because recently I moved and I'm running to furnish my apartment). So I thought of making a coin tray, or if you prefer a container for candy. In our fablab we have fiberglass for this assignment so I decide to alternate layers of fabric with layers of fiberglass. After some research I found a thick red cotton cloth that could be perfect for my blacks forniture.
So first of all I have to design my project. This thime I try to learn a new cad software, because I learn that for every kind of non mathematic design, solidworks is not the best software. So I Try to use Rhinoceros 3D. Luckily for mac users is still free because it's a beta version. So I can download it without any problems. This sw is very different from solidworks and for me that I haven't no experience with design software, is a little bit complex. But my goal is to project a smooth design, not a geometric one. So soon I discover that Rhino is not too bad, in fact, after some day of basic training, I reach to design my coin tray in less than one hour (in solidworks I work about 3 hour to create my library). So this is my project:
I had to model my object in relation to the size of the polystyrene that had available, so it was not so hight. However next step is to mill the negatives of my model so the first layer would be great. Again in this case Aspire is fantastic because is able to convert an stl to mold in an easy simple way.
So I have to set my milling tool and to save my gcode. I use a ball nose 14mm diameter to work with polystyrene and I do a finish machining toolpath because polystyrene is a very soft material so I don't need to do a rough machining toolpath first. So I go to my milling machine and put the polystyrene on the plate. To anchor I used the double sided tape.
Finished this step is time to handwork: we must finish the model with sandpaper. I use a very fine one so my model can be very smooth.
After that I have to spray my model with a mold release wax. This is very important because after we have to use epoxy resin that paste a lot and is very difficult to detach. So I spray four layers of mold release wax and for each layer I have to wait for it to dry.
After that I start cutting the cloth and the fiber glass to fit perfectly my model. Luckily my model is not so complex and the clothes fit perfectly without cuts. Now I can start preparing the epoxy following the instruction: 100g of resins and 60g of catalyst. When I have my resin I use a brush to apply on my model. The first layer I have to put is the red cloth and it is very thick so I need a lot of epoxy. The brush help a lot to eliminate all the air bubble. In some point I use a roll to be faster. Now It's the second layer time: fiberglass. This material is very strange but at the same time fit very well to any kind of form. In this layer I don't need a lot of epoxy and I notice that part of the last layer comes up. After that I put another cloth (the yellow one) the is a a thin cloth of cotton. And so on..layer by layer.
I use 6 layers alternating cloth and fiberblass. Next step is to prepare the vacuum bags and we have the classic cloth ones. To be sure the all the air in the inside bag comes out, I put under my work some pieces of wood so the air can flows. To be sure In put also a bag filled with water above the vacuum bag and leave it so for two days.
After that I open the vacuum bag and I find that my coin tray is very strong, more than I expect. But my work is not finish: now I have to detach the composite from the mold..and is not so simple.
I have to work a lot to clean my coin tray because in some points maybe the wax is not enough. Moreover I have to cut all parts of cloth protruding to finally finish my composite project.
I need a lot af time to do this operation and unfortunately it is scratching the parts that were glued it began to also damage the surface of the object as you can see in the attach below. Now I now for the next time that detach wax is very very important for a good job. However at the end this is my result in action in my home, and soon I'm going to paint it so I cover the white scratch.
This was my worst week and the problems started right away.
I wanted to try the wireless communication and in our fablab we have 4 nRF24L01+ modules. This is a ISM single chip 2.4GHz transceiver (same frequency of wifi) suitable for ultra low power wireless applications and you can operate and configure the nRF24L01+ through a Serial Peripheral Interface (SPI).
The main features are:
• Ultra low power operation
• 1.9 to 3.6V supply range
• 5V tolerant inputs
• Community support with many libraries
• up to 250m transmission range
• ISM frequency band at 2.400 - 2.4835GHz
It uses 8 pins to connect with the microcontroller but for my scope I use only the first 7 (I don't use IRQ). Moreover I have to use a voltage regulator for my arduino "brainmodule" (it actually works only at 5v) or I have to use the 3.3v power output of a commercial arduino.
To work with this module I have to download some libraries. Looking on internet I found a lot of libraries developed from the community and reading on some forums I found that the bests for the nRF24L01+ version seems to be THIS (I used for my sketch) and THIS (I used for early communication test).
Starting connecting the wires to the arduino I decide to use an arduino uno as power supply and my 328p brainmodules for pins connections.
Now I have to test it! For a simple start I decide to use an example test coming with the RF24 library. In this sketch (Getting started it's name) there is a simple example of two node communication. You can switch from receiver to transmitter each node using T or R key and pressing Enter.
I upload the sketch to each board using my heroic and stoic fabisp and ftdi cable and open the serial monitor to look what is happening. Nothing seems to work.
Why? Double check every connection again and upload the sketch again, nothing works.
Ok, maybe my arduino does not work anymore. Let's try with two arduino uno original, connect all the wires again, upload the sketch e open serial monitor again.
Nothing again.
GRRRRRRR!!!!!
At this point I think also that internal arduino serial monitor can't works well when you connect 2 usb ports. So I start looking on internet to find a serial monitor app that can works well. After a while a choose to use Putty, a simple app that looks good for my goal. To install it I followed this guide.
So first I download macports, update it and then I install putty.
Once Putty is installed I try again my wifi connection, but the result is the same.
What is the problem? Read the datasheet again, double check connection again, and all seems ok.
Can be damage the module? I ask my teacher to give me an'other couple of wireless module so I can test if mine are broken. The results: nothing works but this time I found the solution!
While doing the tests by accident I touched the pin connection and for a moment it began to work: I've realized it was a bad contact.
Ok to not have problems anymore I decided to solder the wires on the wireless module pins.
Quickly reassemble everything and do a test. It continues to operate at times.
Maybe this time the problem is the contact with the Arduino. I try to double check all the pins one by one with a multimeter and seem to communicate well.
After many tests I reach to make it working.
Thinking of a solution to the bad contact (I'm sure that this is the problem) beginning to write my code to the test. Reading online I found several tutorials and information on how to use the library and the module. Starting from a sketch of example I wrote my two applications for the sender and the receiver using the libraries and SPI NRF24L01P.
The application is quite simple and well commented. The source filse can be downloaded here. The application simply send some messages to the receiver that responds in different ways according to the messages.
Now I want to test the code on my Wireless communication system. As always sometimes work some other not.
I try again with a real arduino but nothing change. What can be the problem? My colleagues think the the code is good and also the wires and the solders.
Dissatisfied with the result I'll jump on the wired communication. I want to try with serial communication using RX and TX pin on my Arduinos.
This type of communication is quite simple and need only 4 pins or 2 if each module has a power supply.
I connect Tx pin of the transmitter to the RX pin of the receiver and the TX pin of the receiver to the RX pin of the transmitter. In this way they can cummunicate each other. In my case I want to use the SPI to look at the serial monitor and to do that I use the FTDI cable that comes with a Vcc and Gnd connection, so in my case I don't need to power up a board with the other, but each board is self-powered.
And this is the result using both my arduino 328p:
For this week we have to "write an application that interfaces with an input &/or output device".
I see that is possible to use js and html to create an interface and it's very interesting for me that know this languages quite good. But I want to learn something new starting from zero. In my final project I will use a software entirely developed in Processing which interfaces with arduino. That software is very complex but I was inspired to create my project for this week. I want to make an interface to control 2 motors and set both distance and acceleration. What I do is to create a simil G-code string to send to the Arduino. After it do a parsing of the string and generate command for the motors. To do that I need to create the interface in Processing and the fw in Arduino IDE. I write all the comments on the code to make easy understand my program. Moreover I write both the fw code for my shield and for the adafruit motor shield (you can find both version in commented code).
I choose to use Processing because I discover that you can export the executable file both for Mac, Linux, Windows and Android.
This week, the task was to build a multi-axis machine and make it work. Me and our team we decided to build a hot wire cutter. As a first step we decided to read up on the board available to us and better understand how it worked and how it was connected. To help us a lot was the guide published here.
that will explain exactly connections and the circuit board. To start we then created on Eagle the electronic board that would allow us to easily link to the gestalt ftdi cable (USB-RS485-we) and the power source. At this point we soldered connector pins and cable wires ftdi. In parallel we took a bench power supply and positioned near the boards: we will need to power the motors via our board.
And now comes the real work. We have to study how program the gestalt nodes. First of all we need to install some programs. In our team we use both mac and linux but the instrucions are quite the same.
We need pyserial and pygestalt. The first one we used some week ago, so I don't need to install again. Pygestalt can be downloaded from http://github.com/nadya/pygestalt and both on mac and linux can be installed inside the pygestalt root, using the command:
sudo python ./setup.py install
Now we can start use the gestalt nodes. The advice that has been given is to start from the examples. You can find them on /examples/machines/htmaa. Here we have 2 examples, the firt one is written to test one single gestalt node, the other to use 2 motors.
To do better work and go faster we decided to divide the tasks so me and Sergio we dealt with the electronics and software, while Antonio and Tommaso they are dedicated to the construction of the structure.
At this point we have to edit an example to do a first test.
We decided to start from single_node.py example. We open the file with a text editor and begin to look at the code. I never use python in my life before fabacademy but I begin to understand a code reading it.
What I understood and that I think is important is this:
- At the beginning are imported libraries gestalt useful to execute code
- Immediately after the serial interface is defined on cable ftdi baud 115200 on a USB port. Here we must be careful because mac and linux have two different ways to call ports. Linux ports are like: / dev / ttyUSB0 and changes depending on the final number of connected devices, on mac ports are like /dev/tty.usbserial-FTXW4FZ4. To figure out which port is connected just type ls /dev/tty.usb* and read the exact name of the port.
- Going forward we found the nodes definitions and the unit (mm) used for cordinates
_ Soon after there is a very important block to calibrate the machine, because we are setting the rotation angle on each step (1.8 degree), the microsteps of the motor and the step of leadscrew of the motor. So in this block we configure each motor to move right.
- At he end we found stages.xyNode.setVelocityRequest(8) where is defined the speed of the machine.
- Last but not least here comes the coordinates of the movements to be made by the machine.
So first of all I have to modify the serial port and test the single node using 12v 1A max to power up the motor. Generally 500mA at 12V is enough to each motor.
To run the program the command to write in terminal is:
sudo python single_node.py
It's very important to use superuser privileges because without it don't work (to resolve this issue we take a lot of time).
Here the problem without sudo on a linux distro:
And here the problem solved with supeuser privileges:
Other important thing is to remove test.vmp from the directory because in that file is written the axis configuration of the last executed script. If you remove you can start again with the gestalt network configuration.
The first test works great so soon we try with 2 axis xonfiguration and again all woorks well.
Now what we want to do is to learn how create and read gcodes to make the machine working like a cnc.
I read that Massimo Menichinelli is working on an interface for gestalt and I decided to try it.
Looking his git repository (https://github.com/openp2pdesign/wxGestalt) I follow the guide to install all the requisites:
(for mac users: sudo easy_install pip)
pip install PySerial
pip install unidecode
pip install jsonpickle
Then you should download from here wxpython and install. Now you can install wxGestalt:
git clone https://github.com/openp2pdesign/wxGestalt.git
cd wxGestalt
git submodule update --init gestalt
After some trouble I reach to start the interface and seems very good.
Soon I try a four axis configuration because for the hot wire cutter we want to use 4 nodes.
Connections seems not works propely at the beginning but after I discover that is a know issue and that Massimo is still working on the machine. After some test this is the result:
Then I start thinking how to convert a 2d cad to code. First idea was to use aspire (a cam sw) to generate some gcodes for differents machines and found what code was easier to parse.
With Sergio we try different format for differents machines (roland, shopbot, mechmate, etc.) but we noticed that over the coordinates of movement there are a lot of code that do not serve our purpose.
So we have to change strategy. We start looking on internet to find a solution.
At one point I had an epiphany. I remembered that using the fabmodules and saving the svg file, the browser tried to save it as xml. I thought then that it was easy to put a file readable. I then tried to open an svg file with TextEdit and..voilà! The coordinates are in clear and easy to understand.
Perfect! this is a good beginning. So I try to draw something and save in svg format and look at the code. The problems comes with all polygons, because polygons are represented as mathematical formulas and not as a set of points as polylines. This limits me a lot in gcode generation. There is still a lot of work.
In the same times we talks with our team and decides the design of our hot wire cutter. We choose to use plywood as material because is more durable and cheaper than cardboard. As cad sotware we choose Solidworks that for mechanical design is one of the best software because is parametric an also can simulate.
When design is ready Tommaso and Antonio start lasercutting the plywood. In parallel I start thinking How to make a hot wire. I recently discover a wonderful material that is the nickel-chrome wire. This is very interesting because it converts all electricity into heat, so it's safe and perfect for the project. To figure out how many volts and amps serve to have the optimum temperature, I cut a piece of wire in the right length and I stuck to the power supply counter and started to vary the volts and amps that soured. After a couple of tests I realized that was a good solution 12V 1A.
Come back to code. With Sergio we designed some forms with polylines and we have analyzed the code.
In parallel we create our py code starting from xyplotter.py example and adding the right changes for our mechanic, adding 4 nodes and changing some parameters like speed and leadscrew steps.
At the end we manually put the coordinates generated in svg file. We choose a triangle for test.
In the same time Tommaso and Antonio assembly the frame and add some aesthetic details. When the machine is mounted we put the electronics on it and mount the hot wire.
And in the end, this is the final test fully working:
To license my final project I have no doubt: my project will be completely open source! This is almost a must for me because for its realization I have served in several open source projects including software polargraph. Also looking on internet I saw that, like any open source project, the entire community has helped improve the project making it more efficient. What I hope is that my contribution will provide new insights to other people and bring the project to improve.
For all these reasons that I have chosen for my project the Creative Common License. It 'a very simple and customizable license. In addition, cretivecommon.org, that is the site where you can create your own creative common licence, is very simple and very well done and it helps you step by step in the configuration of your license.
To better understand what it is I highly recommend you take a look at this link where you can find a video very eloquent on CC.
After I started creating my licence:
In summary I want:
- to permits others to create and distribute derivative works, but only under the same or a compatible license
- to permits others to copy, distribute, display, and perform the work for non-commercial purposes only.
Moreover I have to think about project dissemination. In my situation is very simple. I'm the cofounder of 3DiTALY, that is company working on 3D printers and rapid prototypes. My company has 7 stores in Italy and soon we will open the 8th.
Customers of my company are professionals but often curious and geek.
I think my target market for the sale of my drawbot are especially geeks and companies. Geek because it is impossible not to fall in seeing the drawbot draw, companies because one of the drawbot potential is to have the pens interchangeably and, replacing nails in the wall with suction cups, it is easy to apply drawbot on a shop window. Imagine the face of the customers to see a pen move alone on a glass. It could be a new way to attract customers and gain publicity.
My idea then is to finish the project from the aesthetic point of view and create the kit to put inside the 3DiTALY stores and see how sales go. Parallel as said before, I want to create a website where I put the story of my project and the experience of fabacademy and allow anyone to download, make and improve the project.