Skip to content

MRAC-IAAC/FREBUJAR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Handheld CNC Router - Frebujar

The handheld CNC router is a project developed by Alfred Bowles, Shamanth Thenkan & Vincent Verster for a 2 month hardware seminar at the Institute for Advanced Architecture of Catalonia

The project aim is to develop a handheld CNC router which could be used for milling and inscribing into planar msheets of material. The router will be hand-guided by the user while motors which control the position of the mill bit will activate to correct for the error made by the user between the actual and target position of the bit.

Hardware & Materials

All part drawings, milling files, and lasercutting files are found in the 'Manufacturing' dirctory. BOM is found in the hardware folder

Complete Assembly

  • 4x Milled - Particle board, laminated on both sides : Thickness = 10mm
  • 3x Lasercut - Plexiglass : Thickness = 6mm
  • 2x Radial ball bearings : ID = 10mm
  • 2x Radial ball bearings : ID = 50mm
  • 2x Linear Bearings: ID = 10mm (For z-axis movement)
  • 10mm thick calibrated steel rod
  • 1x Shaft support
  • 1x Threaded shaft bearing
  • Various 3D Printed parts

LabeledPrototypeWhite

Control, Power and Actuation

  • 1x Raspberry Pi 4
  • 1x Arduino Uno
  • 1x 8MP Raspberry Pi Camera Module v2.1
  • 1x Waveshare Raspberry Pi LCD Screen 3.5inch
  • 3x Nema 17 Stepper Motors
  • 3x A4988 Stepper Motor Drivers
  • 1x 5v Fan

image44

Use Process

The user would either print or draw the desired pattern to be routed onto the piece of material. He would then activate the router and pass it over the material approximately following the printed path. The mounted camera which is aimed at the region around the bit tip will calculate the deviation needed to be made to account and correct for the user error and order the motors to move the mill head to the calculated point. As the user progresses through the material only the black areas which were printed or drawn will be removed and the piece would be complete.

Control & Instructions

Since we are using a double cam mechanism we need to calculate how the bit would move with respect to the given motor rotations. In order to calculate the bit deviation, we use trigonometry and the law of cosines and sines.

Angle Calculation

This code attempts to solve for those angles. (Angle calculation still to be optimized):

  • Final_motion_calculation.py

The variables defined in the code are shown in the below diagram: WhiteKinematics

Adruino Motor control code

The file to convert the desired angles to microsteps and control the motors according to those steps

  • Arduino_Motor_Control.ino

Camera Calibration & Homography:

This file is run only once at the beginning in order to calibrate the camera and account for the exact distance and orientation of the camera with respect to the bit

  • Homgraphy_Calibration.py

Main Code - Line Tracking

The following file is used to detect object contours, calculate their centroids and fine the distance and angle between the camera center and the object center. These numbers are then outputted to the Final_motion_calculation.py file which then finds the desired motor angles.

  • LineTracking.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published