[PROGRAMACION HARDWARE] Aprender a programar

339 views
Skip to first unread message

Daniel Melgar

unread,
Dec 1, 2014, 4:36:41 AM12/1/14
to asrob-uc3m-i...@googlegroups.com
Hola
Me interesaría aprender a programar la electrónica de las impresoras 3D, casi desde cero porque la última vez que hice algo de programación fué hace 20 años en C. Necesitaría consejo de tutoriales, libros, blogs, etc.. para aprender. El Processing y el Wiring los leeo, entiendo partes, otras no, necesito ponerme al día. Mi trabajo no tiene nada que ver con informatica ni lenguajes de programación, por eso con el tiempo se te olvida, aunque lo tengas de hobby, siempre hay momentos a lo largo de la vida en los que no tienes tiempo para otra cosa que no sea familia y trabajo.

Xoan Sampaiño

unread,
Dec 1, 2014, 4:43:58 AM12/1/14
to asrob-uc3m-impresoras-3d
Código:

* Grbl: https://github.com/grbl/grbl (programado en C)
* Teacup: https://github.com/Traumflug/Teacup_Firmware (programado en C)
* Sprinter: https://github.com/kliment/Sprinter (basado en
Tonokip-Firmware y programado en C++)
* Marlin: https://github.com/ErikZalm/Marlin (basado en Grbl y
Sprinter, y programado en C++)

La mejor forma de aprender es leyéndolo :)
> --
>
> ---
> Has recibido este mensaje porque estás suscrito al grupo "Clone Wars:
> Imprimiendo impresoras 3D" de Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus mensajes,
> envía un correo electrónico a
> asrob-uc3m-impreso...@googlegroups.com.
> Para publicar en este grupo, envía un correo electrónico a
> asrob-uc3m-i...@googlegroups.com.
> Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Xoan Sampaiño [xoan@twitter|vimeo|flickr|delicious]

/\ Document Freedom Day - Liberate your documents
_\/` http://documentfreedom.org/ - March 25th, 2015

Jose H

unread,
Dec 1, 2014, 5:29:19 AM12/1/14
to asrob-uc3m-impresoras-3d
Las dos mejores formas de aprender a programar(o aprender cualquier
otra cosa) son:

1- Practicarlo, programar en si.
2- Enseñar a otros.

Lo ideal para 1 es que quieras hacer algo que te interese. Programar
es un medio, no es el objetivo, yo al menos encuentro imposible
aprender a programar como un ente abstracto. Yo necesitaba reconocer
una imagen de millones de puntos y programar en c era la mejor manera.
Necesitaba reconocer audio y lo mismo y sin desearlo me convertí en
experto en c, aunque anteriormente tenía experiencia en ensamblador.

Mi consejo es que encuentres algo que desees hacer, un proyecto, y
entonces te podremos aconsejar mucho mejor. En c tienes "demasiado"
para elegir online, sobretodo si puedes entender inglés hablado,
puedes directamente apuntarte a una clase online tipo coursera.

Yo NO te recomiendo leer al principio, siempre recomiendo una clase
virtual(vídeo tipo coursera gratuitas o bien tipo Lynda de pago) o no
virtual(clases particulares de alguien que sepa). Una clase de alguien
experimentado te transmite no sólo datos, sino la importancia relativa
de unos datos con respecto a otros gracias al énfasis que proporciona
la comunicación oral.

En un libro todas las palabras tienen la misma importancia. Imagínate
un diccionario con 80.000 términos, pero en la práctica se usan 1000
muchísimo y los demás no tanto. Para aprender español tendrías que
saber el significado de "ensimismado" en igualdad con "mucho", o
"habrá sido golpeado" con "lo golpeó", es más, el 98.75% de lo que
aprendieras no te serviría de nada.

Con respecto a 2, es muy buena idea empezar enseñándote a ti mismo.
Creas un tutorial o un podcast en el que explicas lo que vas
aprendiendo, tus dudas, y después te escuchas a ti mismo. Yo uso un
programa que se llama Garageband con micrófono de headset, porque es
un programa casi profesional, con filtros simples que te hacen sonar
como en la radio, pero puedes usar un montón de alternativas
gratuitas.

Luego puedes dar el paso y enseñarle a alguien más, como a tus hijos o
a quien sea.

Juan Carlos Gonzalez

unread,
Dec 1, 2014, 5:34:09 AM12/1/14
to asrob-uc3m-i...@googlegroups.com
Supongo que lo habrás mirado ya pero si quieres aprender con el Processing y Wiring, está todo muy bien explicado con los ejemplos de la pagina de Arduino[1] y hay paginas online muy bien explicadas [2] y varios foros.

Jose H

unread,
Dec 1, 2014, 6:45:30 AM12/1/14
to asrob-uc3m-impresoras-3d
Si yo estuviera en la misma situación, y supiera inglés, me daba de
alta en lynda un mes, me descargaba los video tutoriales de c con
"youtuve-dl"(que es un programa open source para bajarse videos):

http://www.lynda.com/C-training-tutorials/1249-0.html

Después me daba de baja. 20 euros es muy poco para lo que te da
comparado con lo que cuestan los libros buenos del tema, con el
problema anteriormente mencionado. Con videotutoriales se gana
muchísimo tiempo.

Lo anterior también está disponible en torrents si no dispones de
dinero y se puede descargar en lugares públicos con alto ancho de
banda.

Daniel Melgar

unread,
Dec 1, 2014, 5:18:00 PM12/1/14
to asrob-uc3m-i...@googlegroups.com
Gracias, a ver que progresos logro. Miraré lo de esos cursos, y la página de arruinó.

Jose H

unread,
Dec 2, 2014, 5:06:05 PM12/2/14
to asrob-uc3m-impresoras-3d
Para aprender c céntrate en entender que es un puntero y punteros a
punteros y estructuras. Las uniones no se usan en la práctica aunque
aparezcan en los libros.
La gente odia los punteros, no porque sean difíciles sino porque
muchas veces ni siquiera los profesores que lo enseñan los entienden
bien y transmiten el desconocimiento y temor a sus alumnos.

Un puntero es muy fácil de entender si se tiene una idea mínima de
ensamblador, toda variable se encuentra en una dirección de memoria
que no es más que un número binario y por lo tanto visible en
hexadecimal. Un puntero no es más que una variable que guarda esa
dirección, ese número, en lugar del contenido almacenado en esa
dirección.

Los punteros son muy importantes porque permiten manejar bloques
grandes de datos con tan sólo una variable, un número de 32 bits en
arquitecturas de 32 bits, o de 64 bits en las de 64. Ya hay móviles
que vienen con 64 bits.

Los punteros a punteros también son importantes y útiles, y es tan
simple como suena, una dirección apuntando a otra dirección.

En los libros se enseñan punteros a punteros a punteros, y más
complejo(por granas de complicarse la vida). En la práctica no se usan
y en un buen diseño no se deben usar. Cualquier problema se puede
reducir al uso de punteros a punteros y punteros simples.

Si vas a mirar código fuente de cualquier programa, busca siempre que
sea de gran calidad, que sea un buen diseño, si no en lugar de
aprender puedes coger vicios.

El buen código está bien documentado, tiene espacios, está ordenado,
es muy fácil de leer y comparar, por ejemplo si usa la misma función
con diferentes argumentos está ordenado de tal forma que se puede
comparar de un vistazo.

Sebastian GALLARDO DEL RIO

unread,
Dec 16, 2014, 4:25:02 AM12/16/14
to asrob-uc3m-i...@googlegroups.com
JoseH, para cuando un tutooo? Cómo me gustaría tenerte de profe.

Jose H

unread,
Dec 16, 2014, 7:21:54 AM12/16/14
to asrob-uc3m-impresoras-3d
@Sebastian. No voy a hacer un tutorial de programar.

Bastante liao estoy ya con los tutoriales que me comprometí a hacer de
scripts para Freecad y que todavía no están terminados.

Cuando termine eso me pondré a pensar en el escáner 3d que también
está pendiente...

Sebastian GALLARDO DEL RIO

unread,
Dec 16, 2014, 9:09:13 AM12/16/14
to asrob-uc3m-i...@googlegroups.com
Ok, JoseH, te comprendo, pero bueno a veces sirve explicar algo mientras se hace, en un vídeo, no sé, algo que no te haga perder mucho tiempo. De todos modos gracias, es sólo que me gusta tu manera de plantear las cosas.

Saludos


--

---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Clone Wars: Imprimiendo  impresoras 3D" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/asrob-uc3m-impresoras-3d/fq6IkSlssHo/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a asrob-uc3m-impreso...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a asrob-uc3m-i...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

quarkbite

unread,
Dec 16, 2014, 1:18:00 PM12/16/14
to asrob-uc3m-i...@googlegroups.com

Jose H, permiteme, pero es que no estoy deacuerdo con lo que comentas de lo primero entender lo que es un puntero, lo primero es entender la estructura fisica de lo que quieres manejar, leerte los datasheet de los micros y saber donde esta cada cosa, saber diferenciar entre CPU y ALU, entre RAM y ROM, la diferencia entre LIFO y FIFO, entender lo que es memoria volatil, etc..
Como vas a entender lo que es un puntero y como usarlo si no sabes lo que es una direccion de memoria y a que tipo/zona de la memoria debes dirijirte, si estas apuntando a la zona de datos o la zona de codigo.

De todos modos, para el uso de las impresoras 3D, para empezar a programar lo primero es aprender los diferentes tipos de variables, bucles y condicionales que se usan en el lenguaje de programacion que elijas.
Todo depende de a que nivel quieras bajar en el entendimiento de la maquina.


Jose H

unread,
Dec 16, 2014, 3:45:44 PM12/16/14
to asrob-uc3m-impresoras-3d
@quarkbite: yo no he dicho que lo primero sea entender lo que es un
puntero. He dicho que si quiere aprender c(bien) se centre en los
punteros.

Desconozco el nivel actual de Daniel Melgar, pero dice entender partes
de código en processing, luego supongo que sabe que es una variable,
un bucle... de todas formas si no lo sabe en los enlaces que he puesto
puede aprenderlo rápidamente.

quarkbite

unread,
Dec 17, 2014, 12:57:24 AM12/17/14
to asrob-uc3m-i...@googlegroups.com
ok, perdona, no lo entendi de ese modo.
Reply all
Reply to author
Forward
0 new messages