POO y C++: Programación orientada a objetos con Platformio y Arduino: Qué es y como y por qué se usa

Поділитися
Вставка
  • Опубліковано 2 жов 2024
  • En este video vamos a ver un poco que son las clases y los objetos (las bases fundamentales de la programacion orientada a objetos) y como podemos usar esto cuando programamos microcontroladores con C++. Si bien vamos a ver ejemplos de uso en platformio para microcontroladores; todo esto se puede usar en otros ambitos como por ejemplo en un programa para PC sin mayor problema

КОМЕНТАРІ • 82

  • @edwinegger6272
    @edwinegger6272 3 роки тому

    Me gustó que muestres el proceso completo, pelenado con el cogido hasta hacerlo funcionar, porque así es en la vida real de la programación. Además quedó perfectamente claro lo de los archivos ".h" y ".cpp". Aunque leí por ahí que los archivos ".ino" se ocupan de eso, pero no mostraba como hacerlo.

    • @guillermogerard
      @guillermogerard  3 роки тому

      Claro! Lo bueno (y malo ....) de los ino que introduce Arduino es que ocultan un montón de cosas que están pasando. Para los principiantes está bueno, pero para alguien que ya tiene cierto conocimiento y que quiere ver realmente como funciona todo, ya no es tan interesante. Además el ino es solamente válido si usamos Arduino como framework. La forma general de organizar el código en archivos .h y .cop es valida para cualquier entorno. Un saludo!

  • @nestorraulmarino1207
    @nestorraulmarino1207 2 роки тому

    Gracias Guillermo !!!! Al fin voy entendiendo clases. Genial.

    • @guillermogerard
      @guillermogerard  2 роки тому +1

      Que bueno Nestor! Me alegro mucho de que sirva, ahora a meterle clases a todo, jajaja! Un abrazo!

  • @yocharlyz7236
    @yocharlyz7236 3 роки тому +1

    Video y canal recomendado. Gracias por enseñar. +10

  • @supermiguel7733
    @supermiguel7733 3 місяці тому +2

    De todas las que ví, esta es la mejor clase de POO.

  • @beasty082007
    @beasty082007 3 роки тому +1

    Guille... buenísimo, se simplifica bastante el código, queda mas legible... muy bueno. Lo unico que te comentaria... "NO USAR DELAY()".... :-)

    • @guillermogerard
      @guillermogerard  3 роки тому

      Ja ja ja. Nooooo, el delay está prohibido en mis materias bajo pena de reprobar. Es más: lo podría llegar a dejar pasar en algún que otro caso muy, muy, MUY particular; pero escondido en una librería o una clase.... JAMÁS! Eso es alta traición, directamente. Debería estar contemplado en el código civil. 😌

    • @beasty082007
      @beasty082007 3 роки тому

      @@guillermogerard Por eso te lo dije... usaste el DELAY en tu ejemplo... que esta muy bueno.... pero te pisaste la cola... por eso lo dije... saludos... y si, debería estar prohibido por ley... anda una manga de DELAY's sueltos por todos lados.

    • @guillermogerard
      @guillermogerard  3 роки тому

      @@beasty082007 Claro! Si si, se que lo usé ahí, pero solo porque lo que trataba de mostrar era otra cosa. Si alguien ya está en el nivel en el que puede ver y entender ese vídeo, sabe que el delay NO VA! 😄. Estamos totalmente de acuerdo. Nacimos y moriremos anti-delay. La grieta está ahí, y es con los que osan usarlo. A la hoguera con ellos!

    • @beasty082007
      @beasty082007 3 роки тому

      @@guillermogerard Cheee... no pasa nada... solo era para que supieras que te estamos mirando de este lado... un abrazo y gracias por tus videos... sigue con ejemplos de este tipo... son muy aclaratorios, y por otra parte te comento que cuando alguien explica en simple algo complejo... es porque sabe de lo que habla.... Gracias.

    • @guillermogerard
      @guillermogerard  3 роки тому

      Si si, te entendí, he? No me estaba defendiendo, solo me estaba divirtiendo a costa de esa pobre gente que todavía usa delay... 😄☺️😁. Es nuestra obligación moral sacarlos de su ignorancia.
      De hecho: gracias por estar ahí mirando!! Aplausos para "el otro lado" ja ja ja. Me alegro de que se me entienda y que sirvan, de verdad

  • @elfenixinfiniti
    @elfenixinfiniti 9 місяців тому +2

    Impecable la claridad de la explicacion. Realmente admirable!

  • @aaavilaaa
    @aaavilaaa 2 роки тому +2

    Hace rato que programo en Arduino, pero estoy migrando a Platformio y queriendo empezar a usar POO y este video era justo lo que necesitaba. Gracias por compartirlo!

    • @guillermogerard
      @guillermogerard  2 роки тому +1

      Gracias por pasar y comentar, Agustín! Este tipo de comentarios me hace querer grabar más de este tipo de videos 😁. Un abrazo!

  • @T0berius
    @T0berius 3 роки тому +2

    Hola Guillermo, perdon por el off topic.
    Se me complico creando una clase propia que usa dos librerias que crean objetos.
    El sensor es el DS18B20 que usa las librerias OneWire.h y DallasTemperatures.h.
    No puedo hacerlo arrancar desde la clase que estoy creando, cada libreria crea un objeto y me hago lio cuando tengo que trabajar con objetos dentro de una clase.
    Se entendio?
    A ver si me tiras una pista de como se hace para manejar objetos dentro de clases, objetos que son creadas por otras clases.
    Saludos.

    • @guillermogerard
      @guillermogerard  3 роки тому

      Hola T0berius! No es offtopic para nada. Seguramente estás creando los objetos desde afuera (desde tu main, o sea, desde donde está tu setup y loop). Se le puede pasar un objeto a tu clase desde afuera usando un puntero (de eso no he hablado en ningún video, creo. Lo tengo que hacer!). La más fácil es que dentro de tu clase vos crees los objetos directamente, entonces vos no tenes que pasarle nada, ella misma se encarga de crear lo que necesita para trabajar.
      Es muy fácil mostrar esto con un código de ejemplo, explicarlo es bastante difícil, espero que se haya entendido. Si no se entendió, espero la repregunta 😁

    • @T0berius
      @T0berius 3 роки тому

      @@guillermogerard gracias por responder Guillermo.
      Estoy creando los objetos desde el main, exacto, en el apartado void setup() se usa el begin() para arrancarlo.
      En la clase, tengo creado el miembro arrancador o tambien se puede ponder el arrancador dentro del constructor.
      Me hago lio porque la clase tiene variables objetos.
      Te dejo la definicion (el archivo cabecera) de lo que estoy haciendo.
      dpaste.com/GJSZQEJX6
      Saludos.

    • @guillermogerard
      @guillermogerard  3 роки тому

      @T0berius está bien, crealos e inicializalos adentro de tu propia clase. Si después, desde afuera (desde el main) vos necesitas algo de ese objeto lo único que necesitas hacer es armarte un método de clase que dejas público y desde donde das acceso desde afuera a hacer cosas con ese objeto que es de la clase. Se entiende? NO DEJES los objetos públicos. Si no cualquiera desde afuera te toca cualquier cosa, es una mala práctica. Eso es el encapsulamiento (mira el vídeo mío de los 4 pilares de la poo, si no lo viste)

    • @T0berius
      @T0berius 3 роки тому

      @@guillermogerard jaja, si si, estaba haciendome lio con el objeto por eso lo llevaba publico.
      Asi quedo dpaste.com/CUC3W8KK8 y anda bien, me dieron una pista en StackOverflow y para lo que queria hacer tenia que usar lo que se llama listas de iniciacion. Nuevo para mi todavia.
      No encontre nada en YT en español acerca de este tema. Por ahi vos tenes otra solucion.
      Gracias Guillermo y felices pascuas!

    • @guillermogerard
      @guillermogerard  3 роки тому

      @@T0berius Ya te fuiste a un topico interesante (que tampoco he tratado en los videos, creo. Me lo anoto tambien 😊), esas listas te sirven para inicializar objetos de dependencias cuando creas el objeto de tu clase. Eso esta muy bien, peeeeeeeeeeero.....(siempre hay un pero, no? ) Tenes que hacer otra cosa si vos tuvieras varias instancias de tu clase y quisieras que todas compartan el mismo (en este caso) sensor. En ese ultimo caso deberias instanciar el sensor por fuera (como estabas haciendo) y pasarle una referencia a ese objeto a tu clase cada vez que la instancies. En tu caso no creo que vayas a tener mas de un objeto de tu clase, pero solo queria comentarte para algun otro caso futuro

  • @maghestudio
    @maghestudio 2 роки тому +1

    Una sugerencia en 1:17:49, para que te salgan esos comentarios de qué parámetros ingresar y/o una descripción de lo que hace la función, se usan los llamados docstring.
    Si es un comentario corto, solo basta con color "//" seguido del comentario y esto ponerlo después del ";" al declarar el prototipo de la función en el archivo ".h" 😅
    Espero me haya dejado entender sino busca más info sobre los docstrings.
    En fin, aquí también te dejaré un par de líneas de una librería que estuve modificando y agregué este par de docstrings simples:
    void GPIO_Config(char sfr , char state); //GPIO_Config(PORTB, GPIO_Output)
    void PIN_Config(char sfr, char pin, char state); //GPIO_Config(PORTB, GPIO_Output)
    Como puedes ver, le estaba dando un ejemplo de como usar la función, aunque claro, en este caso específico solo yo entiendo porque lo hice así en su momento. xD

    • @guillermogerard
      @guillermogerard  2 роки тому +1

      Buenas Magh! Gracias por el comentario! Guau! te quedaste hasta el final a ver ese video? Genio!
      Acerca de lo que pasaba ahi: ahora lo tengo bastante mas conocido al VS code y lo que pasa es que muchas veces necesitas correr una compilación para que algunos errores desaparezcan y además, para que te informe los tipos y demás se puede hacer un refresh del índice que usa el intellisense y se arregla todo. Hoy esta bastante mejor y estable que cuando hice el video. Tengo ganas de rehacer ese video con un ejemplo un poco mas lindo que suelo hacer en las clases para mis alumnos, ya veré si dispongo de un poco de tiempo para hacerlo

    • @maghestudio
      @maghestudio 2 роки тому

      @@guillermogerard Y claro que lo vi, tenía curiosidad de como un programador de uC hacía POO para uC 😅
      Puede sonar raro pero es que una cosa es hacer programas para la PC aplicando ese paradigma y otra para es aplicarlo a uC, básicamente la perspectiva cambia aunque la lógica sea la misma. Al final me encontré tu vídeo y me sirvió.
      Actualmente he aprendido varios lenguajes de programación y la forma de programar para desarrollar aplicaciones web o desktop, por lo que esta experiencia estaré aplicándolo a la programación de uC en el futuro, en especial cuando termine de aprender a programar modelos de ML. 😉

    • @guillermogerard
      @guillermogerard  2 роки тому +1

      Bien! Me alegro de que haya servido.
      Igual acá rasqué apenas la superficie. Tengo un vídeo de una mini plataforma de juegos (un proof of concept que hice en un fin de semana, nada muy loco) donde aplico también polimorfismo usando una clase abstracta como si fuera una interfaz (porque el concepto de interfaces no existe como tal en C++, pero todo se puede hacer con un poco de trabajo). Tal vez ese también te interese.
      Ah, yo también programo software web, mobile y desktop (con .net de back, angular de front, y Java y ahora flutter para mobile), pero como soy ingeniero en electrónica también le hago a los micros 😅

  • @cosmogangtube
    @cosmogangtube 3 роки тому +1

    Hola:
    el archivo ledRGB.h lo creaste en una subcarpeta ledRGB. No deberias entonces escribir el include asi:
    #include "ledRGB\ledRGB.h" ?

    • @guillermogerard
      @guillermogerard  3 роки тому

      Hola cosmogang! Muy buena observacion! Lo que decis es correcto y se usa normalmente, pero en este caso no es necesario porque estoy usando platformio como muestro en el video.
      Platformio tiene un componente [mágico ✨] que se llama Library Dependency Finder que le da la prioridad mas alta a la carpeta lib y busca tus librerias o clases dentro de sus propias subcarpetas (como muestra el archivo readme que esta dentro de lib en el proyecto).
      Aca tenes mas info de la magia: docs.platformio.org/en/latest/projectconf/section_platformio.html#lib-dir
      docs.platformio.org/en/latest/librarymanager/ldf.html

    • @cosmogangtube
      @cosmogangtube 3 роки тому +1

      @@guillermogerard Ok, pues yo decia nomas...
      De todos modos tu tutorial me guia para escribir classes en micropython. Lo usaste?
      Me suscribi hace poco a tu canal y los tutos de Git me parecen muy interesantes. es lo que estoy mirando ahora.
      saludos,

    • @guillermogerard
      @guillermogerard  3 роки тому

      No soy fan de Python (todavía 😅) y me siento cómodo con C++, por eso a micropython lo probé muy poco pero no he hecho nada que merezca la pena mostrarse (todavía, ja).
      Muy bien! sigue con lo de control de versiones, y si queda alguna cosa que no haya explicado bien, no dudes en agregar un comentario, trato de responder siempre lo antes posible

  • @RaulGonzalez-lu8vb
    @RaulGonzalez-lu8vb 3 роки тому +2

    hola Guillermo. el video me pareció: RICO por el contenido y VALIENTE porque nadie se atrevió a mostrar como enlazar arduino con OOP con la profundidad que lo hiciste. Estaría muy bueno que sigas con el tema, que desde ya te lo vamos a agradecer.

    • @guillermogerard
      @guillermogerard  3 роки тому +2

      Hola Raúl! Te agradezco infinitamente el mensaje. Este es, definitivamente, el peor vídeo que he subido. Me estoy replanteando re grabarlo. También tengo ganas de agregar más cosas en esta línea, sé qué gran parte de la comunidad de hobbistas que usan Arduino no se meten mucho con esto y es una lástima por la potencialidad que se están perdiendo, no?
      He estado con muy poca oportunidad para seguir subiendo contenido últimamente, pero ya voy a retomar, y más aún si llegan mensajes como el tuyo. Gracias de nuevo!

  • @blackstrato2216
    @blackstrato2216 2 місяці тому

    MUY MUY MUY BUENA LA EXPLICACIÓN!!! Todo bien claro, y muy bien elegido el ejemplo... Mil gracias!!!

    • @guillermogerard
      @guillermogerard  2 місяці тому +1

      Gracias por el comentario! Me alegro de que haya servido 😃

  • @egar1956
    @egar1956 3 роки тому +2

    Hola Guillermo, muchas gracias por difundir un video como este tan ilustrativo en la POO aplicado a microcontroladores. He visto en varias respuestas a comentarios que lo calificas como "horrible". Yo no diría eso, ya que está hecho " en caliente" sin editar, y que mejor aprendizaje en la vida real que ir viendo los errores/problemas que van surgiendo. Los que peleamos bastante seguido con programación sabemos que si no es un detalle de sintaxis, es el ide que no hace lo esperado, o el compilador que no construye adecuadamente, etc; y ni hablar que cuando compila todo bien y tenes algo en el hardware que no consideraste...
    Bueno, seguramente voy a volver a ver éste video y los otros en tu canal, nuevamente gracias.

    • @guillermogerard
      @guillermogerard  3 роки тому +2

      Hola Edgardo! Gracias por el ánimo, jaja! (y por tomarte el tiempo de escribir)
      Te agradezco mucho el comentario y si el video le es util a alguien, me pone super contento.
      Te mando un abrazo!

  • @marcduarte2088
    @marcduarte2088 Місяць тому

    ADEMAS LOS DETALLES DE PLATFORMIO QUE GUILLE DETALLA son muuuy aclaratorios HASTA ME PUSE A TOMAR NOTAS es la primera vez que entiendo POO

    • @guillermogerard
      @guillermogerard  Місяць тому

      @@marcduarte2088 WOW! Me alegro mucho de que te haya servido! Gracias por dejarme saber que te gustó!

  • @juanseq
    @juanseq 3 роки тому +1

    Muy bueno, mucha info, pero no le sobra ni un segundo!!! Genio, seguí asi.

    • @guillermogerard
      @guillermogerard  3 роки тому

      Gracias Juan! Me alegro que te guste y que te sirva. Para mí esta un poco lento, como para mirarlo en 2x 😁. Te mando un saludo y si queda alguna consulta no dudes en comentar con la pregunta!

  • @yerpcr
    @yerpcr 3 роки тому +1

    Soy estudiante de ingeniería electrónica. Como base de la carrera me han enseñado varios tipos de programación pero por el enfoque de la carrera no lo habían hecho de forma tan estructurada. Por cuestiones de seguir leyendo, trantando de actualizarme en los ultimos años, me he encontrado mucho con el concepto del OOP que solo se había mencionado de vez en cuando en la carrera... con este video mucho de lo que he leído, tiene sentido. Muchas gracias.

    • @guillermogerard
      @guillermogerard  3 роки тому +1

      Hola Yordan, bienvenido! Soy ingeniero en electrónica, asi que se perfectamente de lo que estás hablando. Habiendo salido de la facultad yo ya programaba....o mejor dicho: CREIA que programaba :) Cuando empece a dedicarme al desarrollo de software me di cuenta de lo poco que habia aprendido y de cuanto me faltaba aprender. La del software es una industria maravillosa que tiene muchas cosas espectaculares.
      Me alegro de que te haya servido para aclarar algunos puntos! (a pesar de lo malo y desordenado que es este video en particular: lo habia grabado para mis alumnos y estaba en modo privado, pero me convencieron de ponerlo publico, veo que fue un buen consejo ya que te pudo ayudar)

  • @erickvilca6705
    @erickvilca6705 3 роки тому +1

    cuando creas los objetos,miled,miled2,miled3, en que parte del codigo se configuran los pines?, cuando creas esos objetos se crean como funciones externas al loop, en que momento llamas a esas funciones? entenderia si las llamaras desde el setup pero no es el caso

    • @guillermogerard
      @guillermogerard  3 роки тому +1

      Hola @Eric Vilca !
      Los pines se suelen configurar (como lo hago en este u otros videos) en el constructor de la clase. Esta bueno hacerlo asi para que solo se puedan configurar una sola vez al crear el objeto y para uqe no sean modificables, pero nada te impide que hagas un metodo que acepte el pin que quieres y lo configure despues de crear el objeto 🤷‍♂️. ..... Aunque de esa manera queda abierta la posibilidad de que alguin llame a ese metodo por error y se modifique el/los pines del led en tiempo de ejecucion, cosa que no tiene demasiado sentido, no?
      Con respecto a lo otro: los objetos, como cualquier otra variable, se pueden crear donde vos los necesites y tienen el mismo ambito (scope o visibilidad) que en el caso de variables de tipos basicos. Es decir que si los creas fuera de loop van a ser globales y los vas a poder acceder desde cualquier lado, si los creas dentor de una funcion se van a destruir al salir de esa funcion, etc, etc... No entiendo bien a que te refieres con lo de las funciones (Esta frase: "...los objetos se crean como funciones..." no es correcta. Los objetos NO SON funciones). Si te refieres a los metodos miembro de la clase, éstas están disponibles para ser usadas por el objeto, nosotros accedemos a ellas a traves de él, digamos. Ojala te haya podido aclarar un poco esto, y si no, te espero en la proxima pregunta!

  • @camilapinzon5589
    @camilapinzon5589 3 роки тому +1

    Gracias por esto

    • @guillermogerard
      @guillermogerard  3 роки тому

      Hola Camila, bienvenida! Gracias por tu comentario, me alegro que este HORRIBLE video te haya servido a pesar de ser tan HORRIBLE 😊.
      Ahora solo hay que aprender a repensar las cosas como objetos y ver como agrupar funcionalidad para que vaya a distintas clases y ya vas a ver como se ordena todo y queda mas bello.
      Un saludo, y si te quedan dudas, ni lo pienses y escribe otro mensaje!

  • @nacho-xr6gp
    @nacho-xr6gp 11 місяців тому

    Que tipo tan crack, excelente video

    • @guillermogerard
      @guillermogerard  11 місяців тому

      Gracias Nacho! Me alegro que te haya gustado!

  • @norbertocotugno5020
    @norbertocotugno5020 Рік тому

    Encontré éste video porque andaba indagando programar el Arduino con Platformio y por fin entiendo lo que es una clase y la PPO. Para los que tienen poca experiencia en programación nos viene genial éste tipo de video, se que lo demás es practicar e indagar. Gracias y saludos.

    • @guillermogerard
      @guillermogerard  Рік тому

      Muchas gracias por el comentario tan amable Norberto! Me alegra mucho que sea de provecho! Un abrazo y a seguir estudiando! 😊

  • @eduardocarlosmuniz7583
    @eduardocarlosmuniz7583 3 роки тому

    El video es muy claro en mi caso, siempre empiezo programando en C hasta que la cosa funciona pero es tanto el despelote que tengo que pasarme a C++ pero para mi a pesar de lo leído y aprendido en años me resulta terreno pantanoso... Soy autodidacta y los montones de libros que he comprado no son muy claros y sin embargo con tu explicacion se me abrió la cabeza y todo lo leído ahora tiene sentido... Soy tecnico electromecanico pero me intereso por soluciones con microcontroladores arm o arduino, así que me interesa mucho platformIO y tu explicación va mas allá de esta plataforma como también PC... Así que muchas gracias por esto y que sigas con C++ asi aprendo mas!!!. Saludos, Eduardo.

    • @guillermogerard
      @guillermogerard  3 роки тому

      Que bueno Eduardo! Me alegro que te haya servido aún cuando lo miro y no me gusta ni un poquito, ja ja. Es un horrible vídeo. Si, definitivamente tengo que hacer más de esto. Quedate tranquilo: a todos nos cuesta mucho entender cómo usar todo eso al principio, es un cambio total en la forma en que pensamos las soluciones de los problema. Una vez que lo practiques un poco más, vas a ver qué sale cada vez más fácil y lindo. Seguí por este camino que vas bien 😄

  • @jruizcoll
    @jruizcoll 3 роки тому

    Gracias Guille por tu trabajo. ESP32 + platformio + clases + Guille = Exito :-)

    • @guillermogerard
      @guillermogerard  3 роки тому

      Ja ja ja, buenísimo Jesús! Me alegro que te sirva. Me encanta el esp, se ha convertido en mi caballo de batalla para cualquier proyecto, incluso para los que no necesitan conectividad inalámbrica (en esos apago el módem del micro y listo)

  • @ariel18012
    @ariel18012 3 роки тому

    Excelente video Guille la verdad que sirve y mucho esto, y espero puedas hacer eh implementar mas de esto en Arduino, se valora tu esfuerzo.

    • @guillermogerard
      @guillermogerard  3 роки тому +1

      Gracias @Ariel Q !
      Me alegro que sirva. En todos los videos que hago acerca de proyectos trato de ir metiendo poco a poco conceptos de POO, para que se vean ejemplos de como es una manera de resolver estos problemas de manera ordenada. Un saludo!

  • @amranisalam2311
    @amranisalam2311 3 роки тому

    Buen video .bien esplicado hay pocos videos como estos que usan OOP .seria bueno que hicieras mas videos de estos . Saludos

    • @guillermogerard
      @guillermogerard  3 роки тому

      Buen día @Amrani Salam! Muchas, muchas gracias por tu comentario! En realidad es un vídeo que no me llena de orgullo, está hecho bastante mal en cuanto a la calidad, pero se agradece mucho que lo aprecies de todas maneras y me alegro de que se entienda y que te haya gustado.
      Tengo varios videos pendientes, seguramente voy a subir varios más acerca de está temática en el futuro, es algo que se suele desaprovechar, y que en general solo usan los que escriben librerías. Un saludo!

  • @tincho6720
    @tincho6720 3 роки тому

    muy bueno Guillermo!

  • @T0berius
    @T0berius 3 роки тому

    Muchas gracias, me sirvio para entender todo lo que lei acerca de la POO.
    Si la Clase y Libreria son iguales, porque se llaman diferentes?

    • @guillermogerard
      @guillermogerard  3 роки тому

      Hola T0berius, bievenido! Me alegra que te haya servido para entender un poco mas acerca de esto, ahora a usarlo!
      Acerca de la pregunta: En realidad no son equivalentes: una libreria (o biblioteca) tiene AL MENOS una clase, pero nada impide que esté compuesta por muchas mas. El tema de los nombres es arbitrario: el lenguaje esta definido de manera de darte la mayor flexibilidad al ponerle nombres a las cosas. Siempre que las referencias entre las clases esten bien (en los #include, y cuando se instancian, por ejemplo) todo funciona perfecto. Respondí tu pregunta? SI no te espero con la proxima para aclarar tus dudas. Un saludo!

    • @T0berius
      @T0berius 3 роки тому

      @@guillermogerard gracias por la explicacion, debi entender que las clases se agrupan en librerias; asique me confundi solito.

  • @FelipeValladares
    @FelipeValladares 3 роки тому

    Hola! soy un aficionado a la programación y con tu video me quedó clarísimo el tema de las clases y objetos... era un tema que hace rato me tenía con dolores de cabeza! Gracias!
    Una pregunta: En algún momento hablaste de un video donde programaste botones con distintas funciones (doble click, click largo, etc..) Lo busqué en tu canal, pero no lo encontré ¿Cual es este video? Gracias!

    • @guillermogerard
      @guillermogerard  3 роки тому +1

      Hola Felipe! Wow! Gracias por comentar, es un gesto simple pero significa mucho.
      Me alegro muchísimo de que te haya servido, incluso cuando es un vídeo que no me gusta mucho como quedó, ja ja. A meterle así código ahora! 👏

    • @guillermogerard
      @guillermogerard  3 роки тому +1

      Recién veo la pregunta, disculpas. No me había dado cuenta de que ese vídeo del botón había quedado privado, solo lo había compartido con mis alumnos porque es bastante feo. Pero te dejo el link acá, y tal vez lo ponga como público. Me gustaría tu opinión, decime si te parece que le puede servir a alguien o es una porquería 😁. Link: ua-cam.com/video/hkAE-fidc9I/v-deo.html

    • @FelipeValladares
      @FelipeValladares 3 роки тому +1

      @@guillermogerard Muchas gracias!, voy a verlo en cuanto pueda :)

  • @nicolaslp6950
    @nicolaslp6950 2 роки тому

    Gracias, pase mucho tiempo tratando de entender esto y por fin encontre tu video.

    • @guillermogerard
      @guillermogerard  2 роки тому

      Hola Nicolás! Muchas gracias por pasar, por aguantar el vídeo tan largo y por el comentario. De verdad me alegro que sirva.
      Un abrazo!

  • @pabloandresparisi
    @pabloandresparisi 3 роки тому

    muy buena la tematica de este video, me sirvio para entender un codigo que habia bajado por ahi, soy programador desde hace años, clipper, fox, vfp, vb, vba, vb.net, c# (aprendiendo todavia) y ahora arduino o c++ que veo son lo mismo, pudiste resolver lo del #include? 1:15:20 , estoy pasandome del ide de arduino a vscode y voy a probar platformio que veo que lo recomendas.
    Jaja, me falto ver el minuto que seguia!! en donde lo resolviste

    • @guillermogerard
      @guillermogerard  3 роки тому +1

      Buenas Pablo! Pero después de pasar por todos esos lenguajes ya sos un colega desarrollador!! Yo trabajo con C# a diario.
      Se arregla después de compilar. A veces necesita varias veces. Igual ahora hay una mejor opción: se llama algo como "rebuild intellisense caché"...o algo así, no estoy justo con la máquina, pero es algo parecido, buscalo y si no lo encontrás avísame y te digo exactamente como encontrarlo. Un saludo!

    • @pabloandresparisi
      @pabloandresparisi 3 роки тому

      @@guillermogerard Si, hice varios desarrollos, lo ultimo en c#, fue un actualizador de stock y precios de productos entre un sistema de gestion en vfp y publicaciones de mercadolibre, usando un sdk de ml, de paso te consulto, no pude todavia debuggear en vscode con uno o nano, es viable?, estoy renegando con una lib. Q se llama avr_debbugger pero todavia no me anda

    • @guillermogerard
      @guillermogerard  3 роки тому

      @Pablo Parisi: Lo que te decia en el comentario anterior: apretas CTRL+SHIFT+P y en el textbox que te aparece buscas esto "PlatformIO: Rebuild IntelliSense Index".
      Ahora lo de debugguear: para el nano, por ejemplo, fijate aca para ver si con esto te alcanza para resolver tu problema: docs.platformio.org/en/latest/boards/atmelavr/nanoatmega328.html
      A avr_debugger no la conozco ni la use nunca

  • @SuaPablo
    @SuaPablo 3 роки тому

    Muy útil, gracias por tu tiempo.

    • @guillermogerard
      @guillermogerard  3 роки тому

      Hola Pablo! Gracias por verlo y por el comentario! Me alegro que sirva, un saludo!

  • @rmendiberry
    @rmendiberry 2 роки тому

    Excelente, muy claro y detallado.

    • @guillermogerard
      @guillermogerard  2 роки тому

      Gracias Raúl! Me alegro que te sirva. Un abrazo!

  • @GabrielBravoV
    @GabrielBravoV 4 роки тому

    hola gracias por el video, muy claro para empezar a entender OOP. Hay alguna lectura recomendada para los que venimos de la electrónica? Estuve leyendo los artículos de prometec y quiero aprender más para aplicarlo en microcontroladores

    • @guillermogerard
      @guillermogerard  4 роки тому +3

      Gracias Gabriel! Es de los peores videos que he publicado, da un poco de vergüenza. Te entiendo perfectamente, soy ingeniero en electrónica 🙂. Cualquier libro de c++ trata esos temas (si tengo que recomendar alguno, te recomiendo "El Lenguaje de Programación C++" de Bjarne Stroustrup), pero si te sirve mí experiencia, te digo que he aprendido más haciendo proyectos y tratando de aplicar esto y leyendo el código de otros. Eso me ha resultado mucho mejor que cualquier libro. Espero que te sea útil, ya vendrán más videos aplicando todo esto, un abrazo.

    • @guillermogerard
      @guillermogerard  4 роки тому

      Por las dudas, para el que no lo sepa: Bjarne Stroustrup es el creador de C++

    • @danielmartinez-bz1eg
      @danielmartinez-bz1eg 3 роки тому

      @@guillermogerard pppp

    • @guillermogerard
      @guillermogerard  3 роки тому

      Si! Acá estoy. Que pasó?! 🤔