I am a co-founder of Artilect FabLab and Toulouse FabLab Festival. Artilect was the first FabLab create in France in 2009. I like to give access to people who like create things.
I am also a researcher in a lab of aerospace in Toulouse.
My Ph.D. was about evolving robot in 3D simulation. My post-doc was about how to build physical robots from modular bricks. For these research, I use a genetic algorithm to evolve: morphology, controller.
Why I do the Fab Academy
I would like to take the time to develop open hardware tools to democratize digital fabrication, iot device and robotics for everyone. The fab academy is the opportunity to learn, to share, to create and to document projects.
The goal of this project is to create plug & play electronic modules and rigid structures to build any type of robots, iot devices or machines.
Inspirations
Inspiration from others projects :
What it will do?
Plug and play, auto detect topology: self detect the electronic modules and display the modules and the physical connections (topology) on an application.
To prototype quicky and easily electronic or IOT devices
To build cnc machines
To build modular robots
Who will use it?
It could be use by maker to make new thinks.
Children to learn robotics.
FabLab to make modular cnc machines.
Startup to prototype IOT devices
Bill of Material:
- wood 10$-50$ for 1 to 5 modules
- acrylic 10$ 20$ for 1 to 5 modules
- electronic ~10$
For the licence, I think I will protect the name ORCAS, "Open Robotics Cross Achitecture System" like Arduino does. I will keep open source the design.
The protection will be also the website to load designs, applications, documentations, tutorials to how to build modules... Very similar to Arduino Website.
License :
- Design licensed under a Creative Commons Attribution Share-Alike license
- Name protection for ORCAS, "Open Robotics Cross Achitecture System"
git@gitlab.fabcloud.org: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Solution:
check if the key is inside your .ssh directory
Minimun of git's commands to know and to use at the beginning to upload files on gitlab:
Excute first a git status to know which files are new or modified or ..
$ git status
Add the new files to your git repository with the command add, neither they will be not uploaded:
$ git add namefile
Select what you want to upload with commit (-a for all the file) and comment your upload with -m:
$ git commit -a -m "your comment"
Upload the files on gitlab with the push command:
$ git push
Finish with a git status to know is every is fine and you upload everything:
$ git status
nothing to commit, working tree clea
Problem:
If you add files with the command add do commit : you will only commit the added files and not the modified files.
Don't forget the option -a to commit all files.
Additionnal Git Command
To rename a file or a directory
$ git mv oldfile newfile
My plan and ideas for my fabacademy webpage
Make a website like a file explorer: each directory and file will be displayed like inside Explorer or Finder with an icon or a block of texts or images.
The order of the items will be described by three numbers x,y, and z inside the name file x_y_z_name.extention. X.Y is the numbers to describe the order outside blocks. Z inside a block.
A block can display a gallery of pictures, a text of documentation, a step of a project, a plan, an idea, a problem. etc
What I learned?
I use to program in C, C++ with Emacs on Linux. I am less familiar with web development but I am very interested to learn javascript to develop web application and website.
I know a little HTML, and CSS but I am not a specialist. I would like to try to code from scratch to understand how HTML and javascript interact.
For the code editor, I plan to use Atom as the main editor. For the command line editor, I would like to learn to use vi. vi is very useful on Linux but I never spend the time to use it.
Vi editor
Vi is a text editor in text mode that can be executed in a terminal. It is very useful when you operate on a server or you want to edit quickly a config file.
The difficulties and the advantages of Vi are that you could not use a mouse and you need to know keyboard command.
Here the minimum commands to know to use vi:
i to insert text (insert mode)
ESC to leave insert mode
:w to save
:q to quit
Atom editor
Atom is a very modern text editor. I used to program with emacs text editor that is very nice far highlight code and completion. Atom has the same characteristics but more user-friendly.
What I did for the website?
I did the website from scratch in HTML and javascript. There are two javascript main functions: One is to format the style of the icon and another one to format the page. I don't use CSS because my goal was to learn javascript.
And I wanted to keep the possibility changed dynamically the design of the website.
Responsive website?
The website is in part responsive. The icon keeps the same size but its reorganize when the width of the page is smaller. Still some problem with the text block.
Some pictures need to be inserted here...
To inspire me I used the following website: http://jsbin.com/utupuw/5/edit?html
How to reduce or convert the size or the format of many images on MacOS X?
To convert pictures, screenshots or photos, I find sips. A command line tool very usefull. Here the command to convert all the png images from a directory with a width of 1024:
$ sips *.png --resampleWidth 1024
How to reduce or convert the size or the format of many videos on MacOS X?
To convert videos on Mac OS, the best is to use ffmpeg.
The next step will be to generate locally the tree structure of the website to know where the files are. This is not possible in HTML because you need to execute code on the server to do it. One way could be to generate from the yml file (To test).
The following command displays all the files and directories from the current directory that begin with a number and all the files inside these directories excluded the hidden files:
To Computer-Aided Design I propose to test OpenScad, FreeCad and Solidwork as a 2D and 3D tools.
2D
The goal is to sketch a part of our hexagonal module for the final project. Each module could be a fixe on a 3D structure. For this, we need small bumpers on the slide of the face.
FreeCAD
FreeCAD is a Wysiwyg open-source similar to Solidwork. The software is easy to install but it difficult to use for me. It's not enought an intitive software.
In this example, I tried to have a parametric design with variable like on OpenScad.
First, I designed a hexagone primite I add dimensions I try to add variable for parametric design I see to add contraint also
Conclusion FreeCAD:
I think FreeCAD is a nice alternative if you like interface software and solid 3D sofware design like Solidware or Catia. It is necessary
to spend more time to learn all the commands. Personnaly, I prefere command line software like Openscad
Photoshop
Photoshop is a very easy software to use. There is many tutorial on the web.
Resize a photo with PhotoshopFinal presentation with Photoshop
Openscad 2D
There is the possiblity with Openscad to do projection from 3D to 2D. The project generate a DXF that could be use for laser or CNC.
3D
Openscad
Modular design on OpenScad with inculed files (arduino, wheel, sensor, motor).
Here, a arduinoUno desing on OpenScad The Arduino could be add to a Face Module and a support. A servo Motor. A sensor SFR04 A sensor SFR04 could be add to faceSfr04 A battery module A empty module A full assembly reboot
Learning I learn how to use photoshop
I try FreeCAD.
I improved my knowledge on OpenScad.
Achievements I did my final project presentation with Photoshop.
I did modular parametric modelisation of a robot on OpenScad.
Assignements characterize your lasercutter's focus, power, speed, rate, kerf, and joint clearance
Design, lasercut, and document a parametric press-fit construction kit, which can be assembled in multiple ways. Account for the lasercutter kerf.
For extra credit include elements that aren't flat.
Learning Design a press-fit kit on OpenScad.
Use vynilycutter.
Achievements
This week the goal is to use a laser cutter and a vynil cutter.
Realisation of a 2D construction kit with a laser cutter
My idea was to find a way to build any types of solids: cubes, pyramids with the same construction kit laser cut. For this problem, I start to find a solution for a simple cube. To assemble each face of my cube, I propose to use some connectors. The connectors are designed with OpenScad with a parametric code. The laser cutter used for this kit is a Chinese laser cutter machine from Columbia's University Makerspace. (Thanks, Mo to allow me to use this machine). Usually, I use a Trotec or an Epilog laser machine. So this is nice exercise to use different machines for the same job.
Parametric design on OpenScad
The connector model is parametric. You can add connectors with parametric angels, chamfer. The thickness of the material could be changed also with various other parameters.
segmentSize=50; //mm
tickness = 3; //mm material
resolution=50; //number of segment $fn
connectorLength=10;
deepBump=0.5;
widthBump=0.2;
chamfer=1;
chamferOffset=0;
chamferConnector=1;
chamferConnectorOffset=0.5;
offSetLaser=-0.05;
First test on the laser cutter
The first test is to calibrate the laser offset and to check if our model works. To test, we need to export our 3D model in 2D vectors. With OpenScad, we can use the function projection() to get a 2D vectorial projection and the function export as DXF from the file's menu. Import your dxf file, with your laser cutter software and apply the material to cut your matérial. Depending on the thickness and the machine but to cut acrylic, we use:
My parameters on Trotec speedy 500 120Watts
power: 100%
speed: 1%
frequency : 10000
My parameters on Epilog 40Watts
power: 100%
speed: 12%
frequency : 5000
Adjustment of the parameters
After a first assemblage, we can see that the connectors are moving and do not fit. In fact, after control, the thickness of the acrylic is not 3mm but 2.85mm. After an adjustment of the thickness, the result is much better.
Final Results
For the final cut, I chose a transparent acrylic. The width was first not correct. I adjust two time before to get the good value.
Improvements
The last change was not the good one. The laser offset was too much increase and too large to be assembled nicely. A lot of connectors were broken before to get a correct assemblage.
This could be improved. The code could be improved too. The last version of the source code: OrcasConstructionKit_7.scad.
The vinyl cutter I used was the Roland Camm-1.
The goal is to realize a sticker with the logo of Artilect FabLab Toulouse. The logo from a jpg image. The first step was to convert the raster logo into a vectorial representation. The conversion is getting with a tool that converts the logo in black & white by contrast.
The second step is to setup the vynil cutter and cut the vynil. I apply two times the process to be sure the vinyl is cut correctly. Slowly I removed the negative par. Be careful, some small letters can move. Remove the small part with a small knife. Clean the surface where the sticker will be applied and use the transfer paper to do it. To get the expected results I repeat all the process three times but with the experience, you find the good way to do it.
Parameter:
To parameter the knife, you can try to cut manullely some vinyl. Adjust the size of the knife until you cut correclty.
The vinyl cutter I used was the Roland Camm-1. (see the photo)
Assignements
Characterize the design rules for your PCB production process
Make an in-circuit programmer by milling the PCB, program it, then optionally, trying other processes.
I produce my Fab ISP I am inspired from the page of Brian. To design the Fab ISP I used eagle.
A 0.2 mm universal cutting tool
A micro cutter 0.1 mm to 0.15 mm
0.8mm , 1.0 mm and 2.0 mm end mills
2mm contour routing tools
Characterize the design rules for your PCB production process
Make an in-circuit programmer by milling the PCB, program it, then optionally, trying other processes.
I produce my Fab ISP I am inspired from the page of Brian. To design the Fab ISP I used eagle.
To produce the board, I used a LPKF CNC machine. I did 4 tests to find the good paraemeters.
Problem :
My pcb was not engrave enougth.
solution:
At first, I remove only 18microns of copper but remove 40microns was necessary
Problem :
The pcb was to large to be plug inside a usb port.
Solution:
I redesign the PCB to have a smaller usb connector.
Finaly, I was able to assemble my PCB. I used an attiny85V and try with an attiny45v.
Problem :
I spend many days to program my Fab ISP with an arduino as ISP. My board was not reconize. I dont why...
solution:
First I add some pins connect an external oscilator. Finaly this was not necessary. But I keep on the pcb the possibily to add it.
I tried again and again from scratch... I think my problem come from of one of my head pins.
The command line, I used to finaly programm the FabISP.
Assignements
Test the design rules for your printer(s)
Design and 3D print an object (small, few cm3, limited by printer time) that could not be made subtractively
3D scan an object (and optionally print it)
Learning
Scanning an object with a phone is possible but it is difficult to exploit the objects.
I tried different application on Iphone to 3D scan a small plane : QLone, Capture and 3D ScanR.
QLone
This application is very easy to use. You just go around your object with your camera. A VR mention the missing part. The scanner uses a matrix to scan object. The main difficultie is to get a complet object (under the object). The resolution is good enougth to print but not without reparation of the file. You get all the mapping.
The scanned object could be upload to SketchFab.
Qlone use a matrix to adjuste parameters and to scan an object
Capture
Capture uses the IR scanner from the Iphone XR, same technologie as Face ID from Apple. It is still difficulte to scan a complete object with this application.
3DScanR
The last application use only visual camera to track the object and build the 3D. Same as before, we dont have a complete object and it is difficult to keep the tracking when we slowly move around the object.
Printing
To print we used a Up printer. The parameter of layer thickness is 0.1. Quality: fine, Infill: Average The module of the mechanical machine could be done only additionnally The modules were printed because they can be done subtractively.
Assignements
Use the test equipment in your lab to observe the operation of a microcontroller circuit board
Redraw the echo hello-world board, add (at least) a button and LED (with current-limiting resistor), check the design rules, make it, test it.
Extra credits: Simulate its operation. Render it.
Learning
I select Eagle to Design my PCB. It is very easy to install. I did'nt know how to use it before the Fab Academy. It was the first time, I used a software like Eagle. I still need to learn lot of things from it.
I just use component from libraries. The next step is to learn how to integrate new component inside the library.
First window appears after the inslation of EagleThe schematic of my FabISP inspiered by the one of Brian. I add the possiblity to connect Pin3 and Pin4 for an oscilator.I reproduce the board FabISP of Brian and I adjusted the USB connector.
For my first Hello World PCB, I wanted to use an attiny85 instead of attiny44.
The goal of my PCB is to be programmed by a Fab ISP. For the communication, I plan to use I2C instead FDTI to communicate with a raspberry PI or a PC.
The schematic of my board. I design one node board with an attiny85 and 4 I2C connector. The board is very small and some hole are too small to use them manullely.
Here the realisation on the CNC LPKF
My goal was to have to side board with 2 PCB. One main side with PCB with the microcontroller and one side with one sensor or one activator.
For the communication between the PCB, I wanted to use the small holes in the middle of the board... but they are too small...
Make a new version with long pins head through the board.
This new main node board schematic, some pins go through the board to be connect to a sensor or activator. This is the new main node board. the pins on the right go through the board to remove the previsous small holes. (Top side)
The schematic pot board for the potentiometerThe pot board on eagle (Bottom side)
New version with long pins head through the board to connect sensor or actuator on the main board (2 boards)
Learning: If you use a cnc you learn how to calcul:
- select tool 6mm of Diamater, 1 flute, length of cut (50mm - That was to long, I broke it quickly. I changed of one of 20mm)
- the speed of the spindle Speed: 3cm/s in our case
- RPM : 20000
The design is parametric to be adapted to the widness of the wood, tool...
thickness=18; //Thickness wood
L=250;
H=250;
roofH=250;
hole=70;
explode=0;
drill=6; //tool diameter
holeBlock=8;
laser=0; //1 to generate DXF - 0 for 3D view
The cnc is used is a makko (1000x7000mm). Router are nice to design funiture. I fixed the wood directly with screws.The first tool was too long (50mm - That was to long, I broke it quickly. I changed of one of 20mm) To assemble the bird house, the joint are in-large to be asssembled. I used holes with rope to fixe joint.This part was not with a size... I cut inside my contour and not oudside.To generate dxf file, I used openscad to project 3D in 2D.The bird house assembled fit perfectly.The bird house was installed with a rope. I fixed the front with small branches, this way is possible to clean inside The bird house with view on Toulouse.
Assignements
Compare the performance and development workflows for other architecture
Read a microcontroller data sheet.
Program your board to do something, with as many different programming languages and programming environments as possible.
STM32 is a powerfull 32bits microcontroller from STMicroelectronics. Similaire to the Atmega328 of Atmel.
Architecture stm32
ATtiny85
ATiny85 is a small and very powerfull microcontroller with 8 pins. Similar to the Atmega328 but smaller.
Architecture ATtiny85All the function of pins of the attiny85
What this program do ?
This programe use a library from Adafruit to turn on RGB led.
The setup initialize the led strip (3 leds).
The loop is the main. It will be repeated until you unpowerd or reset the board.
For each step the n variable will be added of one. This will changed the color of each led each second.
This is do a rotation of the red, green and blue color one each led.
To upload the program I use the Arduino IDE through the FabISP. I also used atome like IDE to program. The attiny85 programs by the FabISP command the rgb led from PB3 pin in the code (pin 2 on attiny85)
Assignements
Review the safety data sheets for each of your molding and casting materials
Make and compare test casts with each of them
Design a 3D mould around the stock and tooling that you'll be using, mill it (rough cut + (at least) three-axis finish cut), and use it to cast parts.
Learning:
At the beginning I was planning to cast the same plane 3D print. But the plane seem a bit to complex to cast with only one mold.
The plane was my first choice to cast but it seem to complex to cast. Two mold seen necessary to do it correctly. So I selected a simplest model. I Choice a face.jpg to transform into 3D gcode file with Fab Module.
The face selected to be moulding and casting. I used Fab Module to generate Gcode and nc file. I used two nc to control the cnc.View of the movement of milling machine.First Step to get all the level (faceR.nc file). And Second step to smooth the result (faceF.nc file). Mould results.Mix one part of hardener for two parts resine.Application of the resine.I used aliginate for casting.
Achievements :
- generation a 3D gcode file for the CNC machine.
- Moulding with CNC
- Casting with resine and alginate
Source Files :
Face : (Gcode) Face First Steps : (nc) Face Smooth Steps : (nc)
Assignements
Probe an input device's analog levels and digital signals
Measure something: add a sensor to a microcontroller board that you have designed and read it.
The schematic of my node board. I design one node board with an attiny85 and 4 I2C connector. The node board.
The schematic pot board for the potentiometerThe pot board on eagleNew version with long pins head through the board to connect sensor or actuator on the main boardThe board is the potentiometerEmbedded sensor inside a module This code get the value from the potentiometer from an attiny85. The value could be not display directly on a terminal with usb with attiny85.
Assignements
Measure the power consumption of an output device
Add an output device to a microcontroller board you've designed and program it to do something
Assignements
Your project should incorporate 2D and 3D design,
additive and subtractive fabrication processes,
electronics design and production,
microcontroller interfacing and programming,
system integration and packaging
Where possible, you should make rather than buy the parts of your project
Projects can be separate or joint, but need to show individual mastery of the skills,
what will it do?
The goal of this project is to create plug & play electronic modules and rigid structures to build any type of robots, iot devices or machines.
Plug and play, auto detect topology: self detect the electronic modules and display the modules and the physical connections (topology) on an application.
To prototype quicky and easily electronic or IOT devices
To build cnc machines
To build modular robots
who has done what beforehand?
See final project page
What will you design?
See final project page
what materials and components will be used?
I will use wood, plexiglas, ABS
where will they come from?
The wood from France, plexiglass from French Shop RichardSon, ABS from
how much will they cost?
In total around 100$ by module 20$
what parts and systems will be made?
All the system will be made
what processes will be used?
Laser cutting, engraving, electronic
what questions need to be answered?
Can we evoluve the project in the future
how will it be evaluated?
If it is easy to use, open to be modified
Assignements
Send a message between two projects (assignments made by different students)
Design, build, and connect wired or wireless node(s) with network or bus addresses
Assignements
Design a machine (mechanism + actuation + automation)
Build the mechanical parts and operate it manually.
Document your individual contribution.
Actuate and automate your machine.
Document the group project
Document your individual contribution.
3D model raytracing version 0How to assemble a moduleOrcas concept printerX,Y assembled axisThe assembled printerFirst printed object
Video:
Achievements
I designed the main module and the concept of the printer on Openscad. Kevin Hové design a solidwork version and the header.
Louis Connel did 3d rendering with Rhino.
We assemble and test the printer together.
Problem and next steps :
The machine is complex to assemble, there is lot of parts... but is completely modular.
A PMMA boxe around structure of the printer should be better for the rigidity of structure, to enclose the temperature inside the printer.
Learning
I learn who to create a server with node.js.
I used three.js to display realtime 3D.
A parametric model interpreted by openscad is used to dynamically changed the model.
I used interface to change the variables dynamically.
I map dynamically the new geometry of the 3D model with a texture.
Achievements
That's work on pc. Should works on Raspberry Py. The goal still to connect my electronic module to control 3D models by I2C.
Design and produce something with a digital fabrication process (incorporating computer-aided design and manufacturing) not covered in another assignment, documenting the requirements that your assignment meets, and including everything necessary to reproduce it. Possibilities include (but are not limited to composites, textiles, biotechnology, robotics, folding, and cooking.
Achievements
This pump was done with a collaboration with Kevin Hové.
Pump peristaltic : animation from wikipediaPump peristaltic: raytracing from Kevin HovePump peristaltic printed
Video
Achievements
The pumpe works but still very slow and could be improve. The material could be improve with more time.
Contribution is the structure of the module, stepper motor connector. Kevin design the mechanical pump.
For the licence, I think I will protect the name ORCAS, "Open Robotics Cross Achitecture System" like Arduino does : restrict use of the name "ORCAS" to the official boards. I will keep open source the design licensed under a Creative Commons Attribution Share-Alike license, which allows for both personal
personal and commercial derivative works, as long as they credit Arduino and release their designs under the same license.
The documentation will be also on the website to load designs, applications, documentations, tutorials to how to build modules... Very similar to Arduino Website.
- The goal will be to design more modules with sensors and activators.
- The surface resolution was not so smooth. This is because I didn't select the good diameter of the tool.
Anyway, I keept it like this to see if we can get these details during the casting with the resine.
License :
- Design licensed under a Creative Commons Attribution Share-Alike license
- Name protection for ORCAS, "Open Robotics Cross Achitecture System"