Equipo de control remoto AV con Arduino con – ¿Visual Basic?

Gran base instalada de altavoces eléctricos de un fabricante desaparecido y suministro cada vez menor de controles remotos operativos. Suena como un combustible de pesadilla para un profesional de AV, a menos que esté tomando las cosas en sus propias manos y reemplazando los controles remotos de infrarrojos con Arduino y software personalizado.

Por el sonido de ella, [Steve]El equipo trabajó en el equipo AV para una sala de conferencias corporativa con parlantes y un proyector LCD. Fueron los altavoces los que les dieron problemas, o más bien los controles remotos que se rompen o se pierden fácilmente. Antes de que este último entregara el fantasma, [Steve] capturó los códigos IR para cada botón a través de Arduino y la biblioteca IRRemote. Con los códigos en la mano, era bastante sencillo hacer que el Nano los enviara a través de LED IR. Pero lo que hace que este proyecto sea único es que la GUI personalizada que gobierna Arduino fue escrita en el lenguaje que a todos les encanta odiar, Visual Basic. Es un pequeño secreto sucio que muchas tiendas corporativas todavía dependen de VB, y es bueno ver que algo de amor por el idioma tan infame ha cambiado. Además hizo el trabajo.

¿Quieres sumergirte más en IR? Quizás esta introducción a la clonación de mandos a distancia por infrarrojos con Arduino le ayude. Y para otro proyecto donde brilla VB, eche un vistazo a esta lámpara LED RGB controlada por voz.

  • mezcla cosas eléctricas dice:

    O simplemente compre un tutorial …

    • Kyle dice:

      Pensé lo mismo, pero, ¿qué pasa cuando el original falla? Con el arduino, un código ahora está disponible para cubrir cuando / si un control remoto falla nuevamente.

  • Rodney McKay dice:

    Pero si lo hace usted mismo, puede programar huevos de Pascua en él.

  • Jamie Bliss dice:

    En defensa de Visual Basic, fue una de las formas más rápidas de desarrollar un programa GUI básico en 2 décadas. Escribió el libro sobre RAD.

    • Timothy Gray dice:

      Hasta VB 7.0 … Lo siento, pero .net VB es un grupo atractivo que transformó un sistema RAD en un sistema SAD que también se puede programar en C ++.

      VB6 fue el último Visual Basic para ser utilizado fácilmente por todos. Después de eso, tiene opciones mucho mejores porque Microsoft lo destruyó.

      • Sweeney dice:

        Lo siento, pero eso está mal. VB.NET finalmente arregló el jar y los paquetes que crecieron en VB y los transformó en un lenguaje de OO adecuado. VB 6 y anteriores le dieron una herencia de interfaz y de alguna manera podría verse como un OO, pero muchos desarrolladores han producido código que podría escribirse en VB2, lleno de goth y otras prácticas desagradables.
        Con la versión .NET fue incluso mejor y más rápido en la creación de prototipos que C # / C ++, pero maduró hasta convertirse en un lenguaje moderno totalmente capaz. Si, como desarrollador de VB, no pudo entender VB.NET, entonces es probable que se produzca un código VB bastante malo.

        • Wilbertofdelaware dice:

          Se produjeron muchos programas realmente buenos antes de la programación orientada a objetos. Me parece que es una especie de religión.

          • Sweeney dice:

            La ventaja de OO (si se hace bien, también se puede hacer mal) es ajustar y abstraer funciones junto con datos.
            Probablemente encontrará personas que tenían la misma actitud de bloquear la programación estructurada. Sí, puede codificar sin él, pero se vuelve más difícil de administrar a medida que aumenta la cantidad de código y es más difícil hacer cambios.

        • Mike C. dice:

          Además, VB.NET sigue a C # en el mundo de la programación funcional. Aunque nunca serán lenguajes funcionales puros, podemos disfrutar de muchas bondades funcionales.

      • Ingenuo de patas azules dice:

        @ Timothy Gray
        Estoy desarrollando en VB.Net y VB6 para mantenerme a mí mismo y estás tan equivocado que me pregunto si estás trolleando. Te doy la ventaja de la duda y asumo que tienes miedo al cambio y / o nunca has logrado familiarizarte con .Net. Hay absolutamente cosas en .Net con una curva de aprendizaje más difícil, pero el diabólico VB6 es una trampa de deuda técnica acumulada y decisiones de proyectos dudosas.

        En serio, si prefiere las correcciones de errores al manejo efectivo de errores, listas grandes indexadas de botones a controles con nombres individuales, etc., espero que nunca tengamos que trabajar juntos. Y sospecho que estarías de acuerdo con eso. 🙂

        • stichl dice:

          Creo que ambos tienen un punto de vista completamente diferente.
          VB6 sigue siendo bueno para el hacker medio, que solo necesita crear algunos programas pequeños rápidamente sin tener que jugar con esas cosas .NET.
          Anything .NET parece ser la elección correcta si está desarrollando programas de Windows de forma más o menos profesional.
          El manejo incorrecto es importante, pero lo más probable es que no sea necesario para hacks rápidos;)

  • stichl dice:

    Nunca entenderé por qué todo el mundo parece odiar Visual Basic. Si realiza la tarea, ¿cómo puede estar completamente equivocado?
    La semana pasada necesitaba escribir una GUI que analizara los datos recibidos a través de un puerto serie. Probé VB.NET pero nunca funcionó debido a algunas excepciones de subprocesos. Después de dos horas usé VB6 (!) Y tuve un programa de trabajo en menos de 15 minutos.
    ¡Elija sus herramientas sabiamente y no culpe a otras opciones! ¡El resultado es lo más importante que importa!

    • Lindsay Wilson dice:

      ¡Si si si! La misma historia aquí: siempre que necesito una aplicación de pestañas rápida, VB6 todavía lo es. Y el hecho de que tiene una GUI: también me encanta Python para las cosas rápidas de la línea de comandos, pero nada supera la facilidad de diseñar visualmente una interfaz de usuario.

      Seguiré usándolo hasta que el soporte se convierta en un problema 😉

    • Miroslav dice:

      VB no es gratuito, no es multiplataforma y está obsoleto por MS. Y no necesita una GUI para analizar datos. Solo digo. Admito que he usado VB varias veces en un pasado muy lejano.

      • localroger dice:

        Si bien VB no es técnicamente gratuito, en realidad es gratuito porque no harán cumplir los derechos de autor porque no es posible comprar una nueva copia autorizada. No es de código abierto ni tiene soporte actualmente, pero no es necesario ya que es un producto maduro; Nunca encontré un error real en VB IDE o compilador después de VB4. Y funciona perfectamente en WINE, por lo que también es multiplataforma.

        • CRJEEA dice:

          Todo es gratis en Internet.

      • stichl dice:

        Por supuesto, no elegí VB6 debido a la parte del código de análisis o porque VB sería mi primera opción para conectar componentes de hardware como puertos serie. Pero en términos de crear rápidamente GUI que sean comprensibles y utilizables incluso para usuarios sin experiencia (también conocidos como noobs), VB6 es una de mis herramientas favoritas porque me ahorra mucho tiempo y dolor de cabeza;)

    • RobHeffo dice:

      ¿Cómo instalaste el IDE VB6?

      • stichl dice:

        Lo instalé en Win10 sin ningún problema …;)

    • Ingenuo de patas azules dice:

      “Probé VB.NET pero nunca funcionó debido a algunas excepciones de subprocesos”.
      o_O No creo que sea culpa de .Net. Estoy de acuerdo, use lo que funciona y lo que sabe, pero no culpe a las herramientas cuando su elección esté dictada por la notoriedad.

      • stichl dice:

        Estoy totalmente de acuerdo, obviamente no es culpa de .NET 🙂
        Pero, ¿por qué querría aprender todos los conceptos de la arquitectura .NET si mi tarea real se realizó en 15 minutos en VB6?
        Siempre que tenga un proyecto más grande, definitivamente exploraré esas cosas …
        Mi elección no fue hecha en absoluto por notoriedad.

        • Kratz dice:

          Primero, VB6 no tiene un soporte sobresaliente, debe llamar a las API de Win32 para hacerlo, por lo que complica su comparación comenzando con un hilo de fondo en su versión .Net. Déjame ser tu versión VB6 de un solo hilo probablemente se llevaría bien a un solo hilo VB.NET
          En segundo lugar, tengo la intención de repasar un miembro y supongo que su excepción de hilo fue la excepción de hilo cruzado común. Básicamente, no es válido actualizar la interfaz de usuario de otro hilo que no sea el que lo creó. Solo necesita usar .Invoke () para enviar su actualización al próximo hilo de la interfaz de usuario.

  • tri_d_dave dice:

    Cuando los controles remotos fallan, a menudo se borra el revestimiento de goma conductora. Si bien esto está disponible como pintura para reemplazarlo, tuve la suerte de usar cinta de aluminio y cortar una pequeña pieza que se adhiere donde estaba el revestimiento.

    En el control remoto de una sala de conferencias, el botón de encendido / apagado tenía el patrón invertido de dedos entrelazados de la placa de circuito desgastada. Mientras el botón se empujaba a un lado, a veces hacía contacto, pero al final eso también fallaba.

    tl; dr revise las caras conductoras de los botones y, si alguno está desgastado, recupérelo con cinta de aluminio HVAC.

  • localroger dice:

    VB6 es un producto muy capaz y maduro. Si bien evita perder complementos como MSCOMM, es aún más confiable y se comporta mejor que .NET y la mayoría de las otras alternativas. Es inmune a tonterías como las transiciones de búfer, tiene una recolección de basura extremadamente eficiente e invisible y no tiene problemas de compatibilidad con ninguna versión de Windows. Tengo programas escritos en VB4 bajo Windows 3.1 que se ejecutan hoy en Win10 sin modificaciones más que reemplazar MSCOMM con llamadas API directas que hice prototipos en los días de Win2K. Los componentes importantes de Windows todavía están escritos en VB6 y no se cambiarán pronto, por lo que es poco probable que desaparezca el soporte, aunque desafortunadamente no habrá una versión de 64 bits. La falta de controversia parece más un error que un tiempo de depuración, siempre que no necesite funciones de nivel empresarial.

    • Sweeney dice:

      ¿VB6 tiene una recolección de basura invisible? Limpia la pila tan pronto como se destruyen todos los objetos. Si necesita eliminar conjuntos grandes, puede tardar unos minutos en completarse, durante los cuales su código se congela. Apenas invisible. Tampoco es inmune a las transiciones de búfer (especialmente si está involucrado en la piratería de API).
      VB6 y versiones anteriores se encuentran en la parte posterior del código C ++ / OLE, y es básicamente un contenedor para él. La piratería de API para hacer algo grave lo pone en desventaja.

  • 0xfred dice:

    El Arduino es el microcontrolador equivalente a Visual Basic.

    • Tweepy dice:

      ¿Te refieres a “úsalo como prueba de concepto, pero déjalo antes de ir lejos”?

      • Moryc dice:

        MIHO no existe “demasiado lejos” en el caso de Arduino. Incluso hacen satélites con él. No es de extrañar que casi todos los software nuevos, especialmente los de financiación múltiple, utilicen bibliotecas y IDE similares a Arduino …
        Hace mucho tiempo usé Borland Delphi (grupo Turbo Pascal violado por el lenguaje de programación orientado a objetos y VB6 IDE), y fue bastante bueno. Hace unos años probé VB.NET y fue una pesadilla. Ahora estoy probando Python y me gusta, pero me gustaría tener un IDE similar a Delphi que me permita diseñar mi GUI poniendo elementos en formularios y luego programando su comportamiento …

        • Max dice:

          Si es cierto, todo significa que los satélites ahora también se han hundido con éxito al nivel de “juguete genial”.

          • Moryc dice:

            https://eo.wikipedia.org/wiki/ArduSat

  • Garolo dice:

    Cuando vi el título de este artículo, asumí que los comentarios serían un baño de sangre de odio por VB … Estoy sorprendido y emocionado de ver todo el amor. He estado usando VB6 con bastante regularidad durante casi 16 años. Los programas que desarrollo deben desarrollarse rápidamente y ejecutarse en todo, desde Windows 10 hasta XP, y VB6 cubre todo por igual.
    Simplemente no estoy acostumbrado a que la gente escuche la frase “VB6” y no explote en un siseo autosuficiente … No sé cómo sentirme en este territorio inexplorado.

    • Dan Maloney dice:

      Divulgación completa: mi trabajo diario es escribir y guardar programas en VB .NET. Puedo usar C # si la ocasión lo requiere, y todos los años agrego un elemento “Aprender C #” a mis objetivos para el año para que sea oficial. Hago un esfuerzo noble y comienzo a escribir un proyecto completo en C #, solo para aprender. Pero luego alguien se topa con los plazos y me encuentro tomando el camino de menor resistencia y simplemente haciéndolo en VB.

      Tal vez algún día.

  • Nathan dice:

    Podría experimentar durante horas en VB6 y .NET, pero intentaré resumir:

    VB6 es un animal bien conocido. Al igual que JavaScript, hay formas de dispararse con él y libros escritos sobre cómo evitar esos escollos. Se compila casi de inmediato a velocidades ejecutables casi nativas. Es un solo hilo, a menos que esté realmente listo para ensuciarse las manos con algunas llamadas de Win32. También como el Arduino, hay quienes lo han llevado “demasiado lejos” – hay más de millones de bases de código de línea escritas en VB6 con sistemas Enterprise de todo el mundo escritas en VB6.

    Luego está VB.NET, en el que está escrito el código del artículo. VB.NET es un bastardo de C # que se ve y huele como VB6 creado para atraer a los desarrolladores de VB6 al mundo .NET. Aparte de la falta de punto y coma y algunos otros VB6ismos, no tiene nada que ver con su homónimo.

Pedro Molina
Pedro Molina

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *