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


Amb el Mac nou no funciona l’eggbot amb Arduinos originals, només amb Arduinos xinos.

Tampoc crea la plantilla Eggbot, però això és tan simple com crear una plantilla nova amb unes mides de 3200 x 800 pixels.  

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: