Eggbot

El firmware que m’ha funcionat amb el CNC Shield d’Arduino és aquest:

https://github.com/Thingibox/EggBot/tree/master/Firmware

En aquest el servo ha d’anar al pin SpnEn

El motor que mou l’ou va al X i el motor que mou el rotulador al Y


Normalment si fas un Eggbot amb la versió free anomenada Eggduino, les extensions de Inkscape no reconeixen la placa. Cal fer això:

Editem el fitxer ebb_serial.py que trobarem al directori de les extensions de Inkscape extensions/axidraw_deps/plotink i busquem aquestes línies

ebb_port = None
   for port in com_ports_list:
      if port[1].startswith("EiBotBoard"):
         ebb_port = port[0] # Success; EBB found by name match.
         break # stop searching-- we are done.

if ebb_port is None:
   for port in com_ports_list:
      if port[2].startswith("USB VID:PID=04D8:FD92"):
         ebb_port = port[0] # Success; EBB found by VID/PID match.
         break # stop searching-- we are done.
return ebb_port

i fem aquests canvis:

ebb_port = "/dev/cu.usbserial-1420"
#   for port in com_ports_list:
#      if port[1].startswith("EiBotBoard"):
#         ebb_port = port[0] # Success; EBB found by name match.
#         break # stop searching-- we are done.
#if ebb_port is None:
#   for port in com_ports_list:
#      if port[2].startswith("USB VID:PID=04D8:FD92"):
#         ebb_port = port[0] # Success; EBB found by VID/PID match.
#         break # stop searching-- we are done.
return ebb_port

On si és un Linux posarem /dev/ttyUSB0 en la primera línia


Quan l’extensió busca l’eggbot li envia un caràcter “v” i espera resposta de la versió de firmware instal·lada. Doncs, en algunes combinacions d’Arduino i Firmware, la primera vegada no respon i no detecta la placa. Però si dupliquem la comprovació, la segona vegada funciona i tira endavant. Caldrà tocar aquestes línies del mateix miter ebb_serial.py del cas anterior. 

Hem de buscar la funció testPort i buscar aquestes línies:

serial_port.write('v\r'.encode('ascii'))
str_version = serial_port.readline()
if str_version and str_version.startswith("EBB".encode('ascii')):
   return serial_port

Només hem de duplicar les 2 primeres:

serial_port.write('v\r'.encode('ascii'))
str_version = serial_port.readline()
serial_port.write('v\r'.encode('ascii'))
str_version = serial_port.readline()
if str_version and str_version.startswith("EBB".encode('ascii')):
   return serial_port

Amb això sembla que funciona en tots els casos. Weid, but true

 

Generar SVG amb Inkscape per la CNC

Si partim d’un DXF, amb el LibreCAD l’exportem a SVG amb les opcions:

  • Default width of elements > 0.1
  • Raster image export > ON
  • La resta per defecte

Des de Inkscape ja podem treballar el SVG:

  • Desagrupar tots els objectes diverses vegades per assegurar que no quedi cap grup
  • Seleccionar tots els objectes i fer un path > Object to path
  • Si és un objecte que volem que sigui una línia gruixuda, seleccionar tots els objectes que volem que formin un sol path i fer un path > Stroke to path
  • si és un objecte que volem que tingui àrea i és convex, seleccionar tots els objectes que volem que formin un sol path i fer un path > Fill between paths
  • si és un objecte que volem que tingui àrea i és concau, haurem de fer que els nodes del path estiguin ben enganxats. Si el mètode de l’objecte convex no fa bé la feina, provar això:
    • Seleccionar els nodes amb l’eina d’edició de nodes i fer Join selected nodes
    • Si tenim segments rectes que no acaben en node, esborrar-los, seleccionar els 2 nodes de les puntes i fer Join selected endnodes with a new segment
  • Seleccionar els objectes que volem que formin un sol path i fer path > Union

Al jscut li he hagut de posar 96 píxels/polsada perquè l’escala fos la correcta. No sé si això dependrà del DXF.

Paràmetres de tall

  • Velocitat sense tallar > 200mm/min
  • Velocitat eix Z > 5mm/min
  • Velocitat tallant > 120mm/min
  • Pas eix Z > 0,1 mm

Ajusta Z offset Anycubic amb BLTouch

He afegit BLTouch a la impressora Anycubic I3 Mega. Per ajustar el Z he de fer:

  1. Escalfar el llit
  2. G28 >> homing
  3. G90 >> set mode absolute posicioning
  4. G1 Z10 >> ves a Z=10
  5. G1 X40 Y40 F4000 >> ves a X=40 i Y=40  a 4000mm/min
  6. M280 P0 S10 >> baixa el pin del BLTouch
  7. G91 >> set mode relative posicioning
  8. Baixar lentament l’extrusor fins que el pin del BLTouch salti. Pots fer servir G1 Z-1 o bé G1 Z-0.1 per anar mes lentament.
  9. Si el pin ha saltat i fa pampallugues M280 P0 S160 per silenciar l’alarma
  10. M114 >> per obtenir la posició actual del nozzle. Registrem la posició de la Z (Z1)
  11. G90 >> set mode absolute posicioning
  12. G1 X38 Y15 F4000 >> desplaça el nozzle al punt on ha fet la mesura el BLTouch (movent l’offset XY entre el nozzle i el Bltouch)
  13. G91 >> set mode relative posicioning
  14. Posar un tall de paper sota el nozzle
  15. Baixar lentament l’extrusor fins que costi moure el paper sota el nozzle. Pots fer servir G1 Z-1 o bé G1 Z-0.1 per anar mes lentament.
  16. M114 >> per obtenir la posició actual del nozzle. Registrem la posició de la Z (Z2)
  17. Calculem Z2 – Z1 i aquest és el offset que necessitem. Sí, és un numero negatiu.
  18. M851 Z-2.6 >> defineix un offset de -2.6
  19. M500 >> guardar el valor a la EEPROM

Afegim el gcode G29 a la seqüència d’inici de la impressora en el laminador que utilitzem, just després de fer el homing.

Comandaments GCODE per controlar el BLTouch

  • M280 P0 S260 ;reset
  • M280 P0 S120 ;self test
  • M280 P0 S90 ;stow probe pin
  • M280 P0 S10 ;deploy probe pin

Adalight

Acabat el projecte Adalight i funcionant perfectament a la tele del menjador. Es tracta de muntar LED’s RGB tot al voltant del darrera de la televisió i connectar-los a un Arduino. A través de Processing es va analitzant el color de tot el voltant de la tele i en funció del color es va il·luminant els LED’s de manera que fa l’efecte que el que es projecta a la pantalla té extensió a la part del darrera i fa de llum d’acompanyament quan mires alguna pel·lícula amb l’ordinador.

He seguit fil per randa aquest howto d’Adafruit i he utilitzat un Arduino Duemilanove per controlar els LED’s. Aquí teniu unes fotografies del procés i un vídeo de l’Adalight funcionant.


 

Xuleta Arduino que s’ha de tenir a mà

Aquest és un bon estudiant, sap fer esquemes: