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

Ғылым және технология

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

Пікірлер: 79

  • @supermiguel7733
    @supermiguel7733Ай бұрын

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

  • @elfenixinfiniti
    @elfenixinfiniti7 ай бұрын

    Impecable la claridad de la explicacion. Realmente admirable!

  • @blackstrato2216
    @blackstrato221622 күн бұрын

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

  • @guillermogerard

    @guillermogerard

    22 күн бұрын

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

  • @aaavilaaa
    @aaavilaaa2 жыл бұрын

    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 жыл бұрын

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

  • @yocharlyz7236
    @yocharlyz72363 жыл бұрын

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

  • @juanseq
    @juanseq3 жыл бұрын

    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!

  • @tincho6720
    @tincho67203 жыл бұрын

    muy bueno Guillermo!

  • @norbertocotugno5020
    @norbertocotugno502010 ай бұрын

    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

    10 ай бұрын

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

  • @nicolaslp6950
    @nicolaslp69502 жыл бұрын

    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!

  • @rmendiberry
    @rmendiberry2 жыл бұрын

    Excelente, muy claro y detallado.

  • @guillermogerard

    @guillermogerard

    2 жыл бұрын

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

  • @nestorraulmarino1207
    @nestorraulmarino12072 жыл бұрын

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

  • @guillermogerard

    @guillermogerard

    2 жыл бұрын

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

  • @yerpcr
    @yerpcr3 жыл бұрын

    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 жыл бұрын

    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)

  • @egar1956
    @egar19563 жыл бұрын

    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 жыл бұрын

    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!

  • @ariel18012
    @ariel180123 жыл бұрын

    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 жыл бұрын

    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!

  • @RaulGonzalez-lu8vb
    @RaulGonzalez-lu8vb3 жыл бұрын

    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 жыл бұрын

    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!

  • @SuaPablo
    @SuaPablo3 жыл бұрын

    Muy útil, gracias por tu tiempo.

  • @guillermogerard

    @guillermogerard

    3 жыл бұрын

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

  • @jruizcoll
    @jruizcoll3 жыл бұрын

    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)

  • @nacho-xr6gp
    @nacho-xr6gp9 ай бұрын

    Que tipo tan crack, excelente video

  • @guillermogerard

    @guillermogerard

    9 ай бұрын

    Gracias Nacho! Me alegro que te haya gustado!

  • @edwinegger6272
    @edwinegger62722 жыл бұрын

    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

    2 жыл бұрын

    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!

  • @amranisalam2311
    @amranisalam23113 жыл бұрын

    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!

  • @eduardocarlosmuniz7583
    @eduardocarlosmuniz75833 жыл бұрын

    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 😄

  • @camilapinzon5589
    @camilapinzon55893 жыл бұрын

    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!

  • @maghestudio
    @maghestudio2 жыл бұрын

    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 жыл бұрын

    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 жыл бұрын

    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 😅

  • @beasty082007
    @beasty0820073 жыл бұрын

    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

  • @T0berius
    @T0berius3 жыл бұрын

    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
    @FelipeValladares3 жыл бұрын

    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 жыл бұрын

    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 жыл бұрын

    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: kzread.info/dash/bejne/mp91p4-fmcfJaaw.html

  • @FelipeValladares

    @FelipeValladares

    3 жыл бұрын

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

  • @erickvilca6705
    @erickvilca67053 жыл бұрын

    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 жыл бұрын

    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!

  • @GabrielBravoV
    @GabrielBravoV3 жыл бұрын

    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

    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

    3 жыл бұрын

    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ó?! 🤔

  • @pabloandresparisi
    @pabloandresparisi3 жыл бұрын

    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 жыл бұрын

    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

  • @T0berius
    @T0berius3 жыл бұрын

    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

  • @cosmogangtube
    @cosmogangtube3 жыл бұрын

    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 жыл бұрын

    @@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

Келесі