# Consola Visual Basic 6



## Meta (Ago 6, 2017)

Hola:

¿Se puede crear en Visual Basic 6 en modo consola este código de Visual Basic .net 2017?

La idea es portar este código de Visual Basic .net al Visual Basic 6. Me parece todalmente diferente y complicado.


```
Imports System.IO.Ports
Imports System.Text

Module Module1

    Sub Main()
        ' Título de la ventana.
        Console.Title = "Recibir datos desde Arduino con Visual Basic .net"

        ' Tamaño ventana consola.
        Console.WindowWidth = 55 ' X. Ancho.
        Console.WindowHeight = 18 ' Y. Alto.
        ' Cree un nuevo objeto SerialPort con la configuración predeterminada.
        Dim Puerto_serie As New SerialPort("COM4")

        Puerto_serie.BaudRate = 115200
        Puerto_serie.Parity = Parity.None
        Puerto_serie.StopBits = StopBits.One
        Puerto_serie.DataBits = 8
        Puerto_serie.Handshake = Handshake.None
        Puerto_serie.RtsEnable = True

        ' Establecer los tiempos de espera de lectura / escritura.
        Puerto_serie.ReadTimeout = 500
        ' Milisegundos.
        Puerto_serie.WriteTimeout = 500

        ' Detecta cualquier dato recibido.
        AddHandler Puerto_serie.DataReceived, AddressOf DataReceivedHandler

        Puerto_serie.Open() ' Abrir puerto.
        Dim tecla As ConsoleKey
        Console.WriteLine("Pulse tecla 1 para encender y 2 para apagar:")

        Do
            tecla = Console.ReadKey(True).Key ' Espera pulsación de teclas.
            Select Case tecla
        ' Tecla 1 del teclado estandar.
                Case ConsoleKey.D1, ConsoleKey.NumPad1 ' Tecla 1 del número del pad.
                    Dim miBuffer1 As Byte() = Encoding.ASCII.GetBytes("Luz_ON") ' Codificación ASCII y guarda en la variable array tipo byte.
                    Puerto_serie.Write(miBuffer1, 0, miBuffer1.Length) ' Envía los datos del buffer todo su contenido.
                    Console.WriteLine("Comando ""Luz_ON"" enviado.") ' Muestra en pantalla comandos enviado.
                    Exit Select

                Case ConsoleKey.D2, ConsoleKey.NumPad2
                    Dim miBuffer2 As Byte() = Encoding.ASCII.GetBytes("Luz_OFF")
                    Puerto_serie.Write(miBuffer2, 0, miBuffer2.Length)
                    Console.WriteLine("Comando ""Luz_OFF"" enviado.")
                    Exit Select
                Case Else

                    Console.WriteLine("Tecla el 1, el 2 y Escape para salir.")
                    Exit Select
            End Select
        Loop While tecla <> ConsoleKey.Escape ' Pulsa Escape para salir del menú.

        Console.WriteLine("Presione cualquier tecla para terminar...")
        Console.WriteLine()
        Console.ReadKey() ' Espera pulsar una tecla cualquiera.

        Puerto_serie.Close() ' Cierra el puerto serie.
    End Sub

    Private Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedEventArgs)

        Dim sp As SerialPort = DirectCast(sender, SerialPort)
        Dim entradaDatos As String = sp.ReadExisting() ' Almacena los datos recibidos en la variable tipo string.

        Console.WriteLine(Convert.ToString("Dato recibido desde Arduino: ") & entradaDatos) ' Muestra en pantalla los datos recibidos.

    End Sub

End Module
```
Saludos.


----------



## D@rkbytes (Ago 6, 2017)

En Visual Basic 6 no se pueden crear aplicaciones de consola, eso era de versiones muy anteriores.
Darles el estilo sí, pero no se me hace nada práctico.

Lo que siempre quise saber y no encontré información, era cómo interceptar los mensajes de respuesta de las consolas desde VB6, ya que enviarles comandos, si era sencillo.


----------



## analogico (Ago 6, 2017)

si es para un windows98 compilalo para el framework 2 para que funcione


----------



## D@rkbytes (Ago 14, 2017)

{Off-Topic=ON}
Por mi parte, ya volví a retomar el tema del retorno de mensajes en las consolas.
El resultado fue satisfactorio. 

Ver el archivo adjunto 158849​
Ya me estoy interesando por los microcontroladores ATmega. 
{Off-Topic=OFF}


----------



## Meta (Ago 15, 2017)

Hola:

¿Tu programa lo que hace es mostrar información de dicho microcontrolador indicado?

Podrías crear una buena base de datos, ya que Atmel tiene unos 200 microcontroladores y Microchip más de 400 diferentes.

No ignorar que Microchip compró Atmel. De paso puedes hacer los microcontroladores y microprocesadores de ARM.

Saludos.


----------



## D@rkbytes (Ago 15, 2017)

Tan sólo es una prueba, no hay nada más.
Mandé el comando "avrdude.exe -c usbasp"
Y como es de esperar, me respondió con un error, que en este caso fue mostrarme los dispositivos disponibles.

No pienso hacer algo que ya está hecho, uso el AVRDUDESS 2.4 con AVRDUDE 6.1 y me va muy bien.
Y yo creo que para estos tiempos nadie ignora que Microchip ya es dueño de Atmel.

Mi duda principal con los ATmega, era sobre los fuses, pero me puse a estudiar sobre eso y no tuve problemas. (Ya me quedó muy claro)
A propósito bloqueé varios ATmega y los pude recuperar nuevamente, usando las técnicas que hay en varios posts.
De hecho, usé un programa que puede desbloquear a todos. 
Algo así cómo el AVR Doctor, pero más sencillo porque hay que darle los parámetros.

Eso sí, se hace una interconexión de muchos cables, pero funciona. 

Aquí la respuesta de consola en avrdude.exe:


			
				AVRDUDE dijo:
			
		

> STDERR: avrdude.exe: No AVR part has been specified, use "-p Part"
> 
> Valid parts are:
> uc3a0512 = AT32UC3A0512
> ...


----------



## Meta (Ago 15, 2017)

Lo de desbloquear AVR. ¿Te refieres a la protección del contenido del hex dentro del AVR tal como ocurre con los PIC?

Si es así, los PIC es imposible para nosotros pero no en el laboratorio que existe un proceso caro, laborioso, engorroso.


----------



## D@rkbytes (Ago 15, 2017)

No, sino al no establecer correctamente los fuses de Xtal, INTOSC, etc.
Si ese parámetro no se establece correctamente en un ATmega, ya no podrá ser leído ni grabado posteriormente.

Son muy diferentes a los PIC en ese aspecto. Los ATmega usan SPI para su programación, lo cual los hace dependientes de la velocidad de comunicación al ser leídos o programados.
Los PIC, por el contrario, usan un protocolo estándar ISCP genérico entre cualquiera de ellos.

Si algo se mueve en los fuses de un ATmega, ya no podrá leerse ni grabarse con un programador común.
Ya será necesario usar un programador HV, pero hay técnicas simples para poder hacerlo.

Aquí hay otra cosa a tomar en cuenta.
Los fuses en un ATmega se programan de forma independiente.
En un PIC siempre hay que establecerlos.
Y no hay problema si nos equivocamos con ellos. (Un borrado lo deja cómo de fábrica)
En un ATmega, no. O usas lo que viene por defecto, lo configuras bien, o no funciona.
Estoy seguro que todos los que usan Arduino, no se han percatado de eso.


----------



## Meta (Ago 15, 2017)

Los que usan Arduino como básico no, los que usan Arduino como avanzado si. Desde hace un tiempmo, se hacen Arduino con ARM. Es que los italianos al ver la compra de Microchip sobre Atmel, se cabrearon, no quieren saber nada de PIC y de hecho, no los hay.

Gracias por la aclaración.


----------



## D@rkbytes (Ago 15, 2017)

A mi no me importa si se usa Arduino, me importa la plataforma, que viene siendo ATmega. (Atmel y ahora Microchip)
Tengo la suerte de que en mi país puedo contactar con el distribuidor directo y eso me da la posibilidad de conseguir cualquier dispositivo de la empresa a costos muy bajos, pedir muestras gratis y requerir soporte.

Arduino es una plataforma para "No me gusta hacer nada y lo quiero hecho"
Basado en ATmega aunque también fue PIC alguna vez.
No enseña porque copias, no aprendes porque te dan los sketches. (Programas del entorno)
Apto para quienes ya se olvidaron de programar y hacer las cosas dependiendo de otros.

Ahora que si eres de los que les gusta programar, sube tus sketches para Arduino, y serás un hacker en programación. jaja.


----------



## Meta (Ago 16, 2017)

Ahora mismo estaba con ARduino y en este momento aprendiendo a fondo otra vez, más bien recordando el PIC en ASM. Ojalá venga en el futuro un buen libro para el MPLAB X con el XC8, XC32. Ese libro se usará para institutos y mira por donde, aprenderás la leche.

Como puedes ver, hacen libros y libros sobre Arduino, y de PIC que antes se hacía la hostia, y ano se molestan tanto porque PIC ya no está de moda, la moda ahora es Arduino y Raspberry Pi, también siguen haciendo libros.


----------



## locodelafonola (Ago 16, 2017)

Hola





D@rkbytes dijo:


> A mi no me importa si se usa Arduino, me importa la plataforma, que viene siendo ATmega. (Atmel y ahora Microchip)
> Tengo la suerte de que en mi país puedo contactar con el distribuidor directo y eso me da la posibilidad de conseguir cualquier dispositivo de la empresa a costos muy bajos, pedir muestras gratis y requerir soporte.
> 
> Arduino es una plataforma para "No me gusta hacer nada y lo quiero hecho"
> ...


 Bueno por empezar lo de los "FUCE BIT" era un tema que queria aprender (uso correcto del "FUSECALC" gratuito)​ Es algo que si no se usa atmega no se entiende (diferente a los PIC)​ Como aprendi solo ., "bloquie" un monton de veces mis atmegas​ Me quedaron inservibles ., hasta que arme el "FUSEBIT DOCTOR"​ Luego al no poder desbloquear algunos corectamente ., me arme la interface con el MAX232., y la consola en D.O.S​ En fin .,  todo un  dilema ., cuando uno no aprende bien las cosas .,  por entenderlo mal​ De igual manera que usar la Herramienta gratuita atmel studio​ Te da la posibilidad de compilar en ASM ., C y C++​ Te traduce de C a ASM (de ASM a C no lo hace) y de C a C++ ., o de C++ a C​ Ahora ., en el caso delos arduinos ., la funcion de cambio de fusebit ., esta inabilitada ., (hay que habilitarla la funcion ISP desde la interfaz arduino ., para luego poder cambiar los fucebit por ISP​ Los fuce bit se graban de manera independiente del programa (por ejemplo el "WDT"​ En fin es toda una "historia" ., muy distinta con los atmegas , que con los PIC​


----------



## Meta (Ago 16, 2017)

Cada derrota es una experiencia. Los errores o el equivocarse forman parte del aprendizaje, ánimos y adelante.

Para tener muchos ATmega que se quedan inservibles, no me hace ni pizca de gracia, esa opción prefiero los PIC. No se como será en los microcontroladores de ARM, hablo de microcontroladores de ARM, no procesadores de ARM que es otra cosa.


----------

