Tabla de contenido:

Controle los dispositivos del mundo real con su PC: 15 pasos (con imágenes)
Controle los dispositivos del mundo real con su PC: 15 pasos (con imágenes)

Video: Controle los dispositivos del mundo real con su PC: 15 pasos (con imágenes)

Video: Controle los dispositivos del mundo real con su PC: 15 pasos (con imágenes)
Video: La primer humanoide robot del mundo 🤖😳😱 #robot #robotics #robots #robotandroide #androide #humanoide 2024, Mes de julio
Anonim
Controle los dispositivos del mundo real con su PC
Controle los dispositivos del mundo real con su PC

Este Instructable le muestra cómo conectar una PC y un microcontrolador. Esta demostración detectará el valor de un potenciómetro o cualquier entrada analógica y también controlará un servo. El costo total es de menos de $ 40, incluido el servo. El servo enciende un microinterruptor y luego el microinterruptor enciende una lámpara. En una aplicación práctica, la olla podría ser un sensor de temperatura y el servo podría encender un calentador. El servo podría reemplazarse con un relé u otro controlador de potencia. El picaxe está programado en una versión simplificada del básico y la interfaz usa VB. Net. Todo el software está disponible de forma gratuita. Un Instructable relacionado muestra cómo vincular dos microcontroladores a través de Internet

Paso 1: reúna las piezas

Reúna las piezas
Reúna las piezas

Lista de piezas: chip Picaxe 08M disponible en muchas fuentes, incluidas Rev Ed https://www.rev-ed.co.uk/picaxe/ (Reino Unido), PH Anderson https://www.phanderson.com/ (EE. UU.) Y Microzed https://www.microzed.com.au/ (Australia) Protoboard, servo, microinterruptor, batería de 9 V, 4 baterías AA y soporte, tira de etiquetas, resistencia de 10k, resistencia de 22k, condensador de 33uF 16V, condensador de 0.1uF, 7805L de baja potencia 5V regulador, olla de 10k, cables (cable de datos / teléfono de núcleo sólido, por ejemplo, Cat5 / 6), bombilla de 6 V, enchufe hembra D9 y tapa, 2 metros de cable de datos de 3 (o 4) núcleos, clips de batería Las empresas anteriores también venden dispositivos USB a serie que son útiles para portátiles que no tienen puerto serie. Vale la pena señalar que algunos dispositivos USB a serie no funcionan tan bien como otros y vale la pena obtener uno de uno de los proveedores anteriores, ya que han sido probados para su uso con chips picaxe. El que se sabe que funciona es https://www.rev-ed.co.uk/docs/axe027.pdf Por supuesto, si su computadora tiene un puerto serie (o una tarjeta de puerto serie antigua), esto no ser un problema.

Paso 2: descargue e instale algún software

Descargue e instale algún software
Descargue e instale algún software

Necesitaremos VB. Net y el software del controlador picaxe. VB. Net (Visual Basic Express) está disponible en https://msdn2.microsoft.com/en-us/express/aa718406.aspx Si este enlace no funciona, busque en Google para: descarga rápida visual básica El software picaxe está disponible en https://www.rev-ed.co.uk/picaxe/ Deberá registrarse en Microsoft para obtener la descarga; si esto es un problema, use un correo electrónico falso o algo. De hecho, me resultó útil dar mi correo electrónico real, ya que envían actualizaciones ocasionales.

Paso 3: cree un circuito de descarga

Construya un circuito de descarga
Construya un circuito de descarga

Este circuito de descarga usa un chip picaxe, un par de resistencias, un regulador y una batería de 9V. Hay más información disponible en la documentación de picaxe y esto solo debería tomar unos minutos para construir una vez que todas las partes estén a mano.

También podría agregar que los picaxes funcionan felizmente con 3 baterías AA. Un suministro regulado de 5 V es útil para ejecutar entradas analógicas ya que los voltajes de referencia no cambian, pero para circuitos simples de encendido / apagado no se necesita un suministro regulado. El registro de 5 V se puede omitir en estas situaciones.

Paso 4: Disposición de la placa de prototipo del circuito de descarga

Diseño de protoboard del circuito de descarga
Diseño de protoboard del circuito de descarga

Esta foto muestra el cable de descarga que es simplemente un enchufe D9 y un par de metros de un cable de varios núcleos. La mayoría de las PC modernas tienen una conexión de puerto serie D9. Una PC construida antes de 1998 podría tener un conector de 25 pines. Soldé alrededor de 1 cm de cable de núcleo sólido en el extremo de los cables flexibles y luego puse termorretráctil alrededor de esto: los cables de núcleo sólido entran en un protoboard mucho mejor que los cables flexibles.

Paso 5: descarga el programa Picaxe

Descarga el programa Picaxe
Descarga el programa Picaxe

Haga clic en la flecha azul para descargar. Si no se descarga, hay algunas sugerencias de depuración en el manual de instrucciones de picaxe. Puede intentar descargar un programa simple para encender y apagar un led para verificar que el chip funcione. Este programa, tal como está, no hace nada hasta que se conecta a una PC, ya que está esperando que la PC le envíe algo. Si se descarga correctamente, entonces está funcionando y el chip está programado y el siguiente paso es reconfigurar el chip como un chip de interfaz en serie.

Copia y pega el código de abajo. Para verlo con sintaxis de color, busque en Ver / Opciones / Editor. Las convenciones de color son similares a las de VB. Net main: serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'lee el potenciómetro y luego envía este serout 0, N2400, ("Datos", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) seleccione caso b0 'leer el bit de datos b0 caso <140' si <140 luego poner el servo en una posición servo 2, 120 pausa 1000 'pausar un segundo más servo 2, 160 pausa 1000 endselect low 2' apagar el servo ya que serin lo hace de todos modos ir a la principal

Paso 6: reconfigure el circuito como circuito de interfaz en serie

Reconfigure el circuito como circuito de interfaz en serie
Reconfigure el circuito como circuito de interfaz en serie

Se han realizado dos cambios sutiles en el circuito picaxe. La resistencia de 22k que solía ir al tramo 2 ahora va al tramo 4. Y el tramo 2 se ha conectado a tierra. El único propósito de la etapa 2 es recibir datos de programación de la PC, por lo que una vez que se programa el chip, se puede conectar a tierra. Si vuelve a programar el chip para corregir errores, etc., desconecte el tramo 2 del suelo y vuelva a conectar el 22k al tramo 2. El picaxe le responde a la PC a través del tramo 7, por lo que no es necesario cambiarlo.

Se ha agregado una olla y se ha agregado el servo. El servo no es realmente necesario y un led y una resistencia de 1k funcionarían bien y / o cualquier circuito que desee conectar. Acabo de usar un servo para mostrar cómo hacer clic en algo en una pantalla puede hacer que algo se mueva. El servo funciona con su propia fuente de alimentación. Esta fuente de alimentación separada no sería necesaria si el picaxe solo estuviera encendiendo y apagando los leds. El picaxe está listo para funcionar, ahora necesitamos algo de código VB.

Paso 7: escriba algún código de interfaz VB

Escriba algún código de interfaz VB
Escriba algún código de interfaz VB

Una vez que VB. Net esté instalado, ejecútelo y seleccione Archivo / Nuevo proyecto y seleccione Aplicación de Windows. Puede hacer clic en Archivo / Guardar todo al principio y guardar en el lugar que desee y luego, en el futuro, iniciar el proyecto desde VB. Net o haciendo clic en un archivo.sln que se creará.

Paso 8: Diseñe el formulario VB. Net

Diseñe el formulario VB. Net
Diseñe el formulario VB. Net

VB crea un nuevo formulario en blanco denominado Form1.vb. Puede cambiar el nombre de esto ahora o más tarde o simplemente dejarlo como Form1 si el proyecto es simple. Lo dejaremos como está. Para agregar algo de control, necesitamos abrir la caja de herramientas que está rodeada de verde. La caja de herramientas se puede abrir y cerrar siempre que sea necesario; por lo general, el primer paso es agregar los controles, luego cerrar la caja de herramientas y trabajar en el código. Puede dejarlo abierto todo el tiempo, pero ocupa un poco de pantalla.

Paso 9: agregue un temporizador

Agregar un temporizador
Agregar un temporizador

Nos desplazamos hacia abajo en la caja de herramientas y seleccionamos un temporizador. Haga doble clic en el temporizador para agregarlo. Aparecerá una imagen de un reloj llamado Timer1 en la parte inferior de la pantalla y, a la derecha, se resaltan las propiedades del temporizador. Puede editarlos o cambiarlos en el cuerpo del texto del código. Los dejaremos como están y los cambiaremos en el cuerpo del texto.

Por otro lado, la caja de herramientas parece un poco desalentadora, pero solo se necesitan unas pocas para la mayoría de los programas: estos incluyen botones, cuadros de texto, etiquetas, temporizadores, cuadros de imagen, cuadros de verificación y cuadros de radio. Quizás abra un nuevo programa y juegue con algunos en algún momento.

Paso 10: agregue un par de botones

Agregar un par de botones
Agregar un par de botones

Haga clic en la herramienta de botón y dibuje el tamaño del botón en Form1. Vamos a necesitar dos botones, un cuadro de imagen y una etiqueta. Continúe y agregue estos: la siguiente captura de pantalla muestra todos estos dibujados. El tamaño y la posición no son importantes y puede cambiarles el nombre más tarde si lo desea.

Paso 11: Formulario con todos los controles agregados

Formulario con todos los controles agregados
Formulario con todos los controles agregados

Form1 ahora está diseñado. El cuadro junto a Button2 es un cuadro de imagen pequeño. Puede poner imágenes en esto, pero solo lo usaremos para indicar qué botón se ha presionado cambiándolo de rojo a verde. Label1 muestra los registros picaxe.

Paso 12: agregue algún código

Agregar un código
Agregar un código

A la derecha, rodeados con un círculo verde, hay varios botones útiles: el segundo desde la derecha es el botón Ver código y el botón derecho es el Diseñador de vistas. En la práctica, al escribir código, uno va y viene entre estas vistas. Generalmente, si uno está en modo Diseñador, al hacer doble clic en un objeto, como un botón, aparece un lugar en la Vista de código para agregar algo de código o lleva uno al fragmento de código que se ejecuta cuando se presiona el botón. De esta manera, el flujo del programa se vuelve bastante intuitivo: el usuario hace clic en cosas y fragmentos de código, se ejecutan y cambian la pantalla, y así sucesivamente, aunque para nuestros propósitos vamos a hacer trampa y pegar toda una losa de código de trabajo. tendrá Public Class Form1… End Class - resalte esto y elimínelo. Ahora tome todo el código a continuación y péguelo en. Imports System. IOImports Strings = Microsoft. VisualBasic 'para que pueda usar cosas como left (y right (para stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' para declaraciones de suspensión Dim WithEvents serialPort As New IO. Ports. SerialPort 'puerto serie declareDim PicaxeRegisters (0 a 13) As Byte' registros b0 a b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Maneja Me. LoadTimer1. Enable = True 'ponga esto en el código como predeterminado en falso cuando createdTimer1. Interval = 5000' 5 secondsPictureBox1. BackColor = Color. Red 'establecido en la posición' red'Array. Clear (PicaxeRegisters, 0, 13) 'probablemente no sea necesario como matriz declarada blankEnd SubPrivate Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Maneja Timer1. Tick 'el temporizador marca cada 5 segundos Llamar a SerialTxRx ()' hablar con picaxeEnd SubSub SerialTxRx () Dim LabelString como cadena 'cadena D para mostrar valores de bytes DataP acket (0 a 17) As Byte 'paquete de datos completo "Data" +14 bytes Dim i As Integer' i siempre es útil para bucles, etc. Label1. Text = "" 'borrar el texto en la pantalla Para i = 0 To 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'agrega la palabra "Data" al paqueteNextFor i = 0 To 13DataPacket (i + 4) = PicaxeRegisters (i)' agrega todos los bytes al packetNextIf serialPort. IsOpen ThenserialPort. Close () 'en caso de que ya esté abiertoEnd IfTryWith serialPort. PortName = "COM1"' La mayoría de las computadoras nuevas tienen el valor predeterminado com1, pero cualquier computadora anterior a 1999 con un mouse en serie probablemente usará com2. BaudRate = 2400 '2400 es el máximo velocidad para pequeños picaxes. Parity = IO. Ports. Parity. None 'sin parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' milisegundos por lo que se agota el tiempo de espera en 1 segundo si no hay respuesta. Open () 'abre el puerto serie. DiscardInBuffer ()' borra el búfer de entrada. Escribe (DataPacket, 0, 18) 'envía la matriz de paquetes de datos Llamada a suspensión (300)' 100 milisegundos mínimo para esperar r datos para volver y más si el flujo de datos es más largo. Lee (DataPacket, 0, 18) 'vuelve a leer en la matriz de paquetes de datos. Cerrar ()' cierra el puerto serie Fin Con Para i = 4 a 17LabelString = LabelString + "" + Str (DataPacket (i)) 'convertir en una cadena de textoNextLabel1. Text = LabelString' poner la cadena de texto en la pantalla Capturar ex As Exception'MsgBox (ex. ToString) 'descomentar esto si desea ver el mensaje de error realLabel1. Text = " Timeout "'mostrará esto si picaxe no está conectado, etc. End TryEnd SubPrivate Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Maneja Button1. ClickPictureBox1. BackColor = Color. Red' cambia el cuadro a rojoPicaxeRegisters (0) = 120 'un valor arbitrario para el servoEnd SubPrivate Sub Button2_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button2. ClickPictureBox1. BackColor = Color. Green' cuadro a greenPicaxeRegisters (0) = 160 'valor arbitrario para el servoEnd SubEnd Class

Paso 13: Ejecute el programa

Ejecuta el programa
Ejecuta el programa

Encienda el picaxe si no está encendido. Ejecute el programa vb.net haciendo clic en el triángulo verde en la parte superior de la pantalla cerca del medio. A la derecha del triángulo de ejecución hay un botón de pausa y un botón de detener, o el programa se puede detener haciendo clic en la parte superior derecha xo con Archivo / Salir si ha agregado un menú. El programa se puede compilar si lo desea, pero para la depuración dejémoslo funcionando dentro de VB. El temporizador envía bytes cada 5 segundos, por lo que la pantalla tarda 5 segundos en aparecer. La etiqueta 1 muestra un volcado de los 14 registros picaxe.. Estos se envían al picaxe y luego se envían de nuevo. Es casi seguro que no es necesario enviar los 14 y su código se puede cambiar para adaptarlo. El segundo byte con un valor de 152 es el valor del potenciómetro que cambia de 0 a 255. Si se hace clic en button1 envía un valor de 120 en el primer byte y si se hace clic en button2 envía 160 y el programa picaxe los decodifica y mueve el servo Este código muestra cómo enviar datos y obtener datos de un microcontrolador. El microcontrolador puede encender todo tipo de dispositivos: tengo alrededor de 30 en mi casa corriendo rociadores, luces, seguridad, detectando autos en las entradas, encendiendo una serie de bombas de 3.6Kw y detectando el nivel de agua en los tanques. Los Picaxes se pueden conectar en cadena en un bus común e incluso pueden comunicarse entre sí a través de enlaces de radio. También es posible cargar y descargar datos de sitios web y, por lo tanto, usar Internet para conectar dispositivos en cualquier parte del mundo https://www.instructables. com / id / Worldwide-microcontroller-link-for-under-20 / Las siguientes dos páginas también contienen algunos ejemplos de cómo usar diferentes sensores y cómo controlar diferentes dispositivos Dr. James Moxham Adelaide, Australia del Sur

Paso 14: Dispositivos de entrada

Los dispositivos de entrada
Los dispositivos de entrada

El programador picaxe contiene algunos archivos de ayuda muy útiles, uno de los cuales se llama "Circuitos de interfaz" y también está disponible en https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf. Esto muestra cómo controlar motores, Sentir el medio ambiente y otros controles útiles. Además de estos circuitos, hay algunos que utilizo una y otra vez. Temperatura: el sensor de temperatura LM35 produce un voltaje que puede pasar directamente a un picaxe y se puede leer con un comando readadc o readadc10. Luz: una resistencia dependiente de la luz tiene una resistencia que varía desde unos pocos cientos de ohmios a la luz del sol hasta más de 5 megaohmios en la oscuridad total. Mida la resistencia en el nivel de luz al que desea cambiar y coloque el LDR en serie con una resistencia de aproximadamente el mismo valor. Por ejemplo, quería detectar las luces de un coche que entra en la cochera para encender algunas luces. La resistencia era de aproximadamente 1 M de la luz indirecta, así que puse un 1 M en serie con el LDR. Interruptor: algunos interruptores cambian entre 5 V y 0 V (un interruptor unipolar de doble tiro), pero algunos simplemente se encienden y apagan. Si un interruptor se enciende, puede enviar 5V a un chip picaxe, pero si está apagado, el pin picaxe estaría 'flotando' y podría tener cualquier valor. Este circuito muestra cómo bajar la entrada a tierra cuando el interruptor está apagado. Este es el circuito que se utiliza para la mayoría de los interruptores de botón. Potenciómetro: una buena perilla pasada de moda. Gire la perilla y lea el voltaje en el chip. Hay todo tipo de otros dispositivos electrónicos que crean un voltaje de 0-5 V o se pueden configurar fácilmente para hacerlo. Algunos ejemplos son los sensores magnéticos, la humedad, la velocidad, el tacto, la luz infrarroja, la presión, el color y el sonido. Los sensores en general cuestan solo unos pocos dólares cada uno.

Paso 15: Control de dispositivos

Dispositivos de control
Dispositivos de control

El archivo de ayuda de picaxe contiene una gran explicación de cómo controlar motores y luces. Además, encuentro que hay algunos circuitos que utilizo una y otra vez. El primero es un circuito de transistor simple. Un chip picaxe puede encender un máximo de 20 mA por pin, lo cual es bueno para encender un LED, pero no mucho más. Un transistor 547 aumenta la corriente a 100 mA, lo que es bueno para bombillas pequeñas. El segundo circuito muestra un mosfet. Los mosfets prácticamente no necesitan corriente para impulsarlos, solo voltios para que puedan ser controlados directamente por un picaxe. Hay todo tipo de mosfets disponibles, pero mi preferencia es uno llamado BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Se puede manejar directamente desde 5V (a diferencia de algunos que necesitan 10V) pero la principal ventaja es que tiene una resistencia extremadamente baja cuando se enciende: 0.045 ohmios, que no es mucho más que la resistencia de los cables que se le conectarían. Esto significa que no se calienta cuando se manejan cargas bastante altas, lo que ahorra energía y también ahorra costos de disipador de calor. Por ejemplo, conducir una carga de 5 amperios como un faro de automóvil; vatios = corriente al cuadrado x resistencia, entonces W = 5 * 5 * 0.045 = 1.12 vatios que solo necesitarían un disipador de calor como una pieza cuadrada de aluminio delgado de 1 pulgada. El tercer circuito muestra un relé. Hay varios parámetros para todos los relés: el voltaje de la bobina, la resistencia de la bobina y el voltaje y la corriente de carga. Por ejemplo, un relé puede tener una bobina de 12 V con una corriente de bobina de 30 mA, una resistencia de bobina de 400 ohmios y podría conducir hasta 240 V a 1 amperio. La corriente de la bobina es de más voltios y amperios de los que puede suministrar un picaxe, por lo que usamos el circuito del transistor para cambiar la bobina. También se incluye un diodo, que suprime la EMF trasera cuando el relé se apaga. Back EMF es lo que crea la chispa de una bujía, por lo que no desea estos altos voltajes en ningún lugar de un circuito. Los contactos tendrán una corriente y voltios máximos: la corriente puede ser de unos pocos amperios y los voltios suelen ser de 240 V, por lo que la conmutación de 12 V o 24 V estará dentro del rango. Si no tiene experiencia con la electrónica, no juegue con los voltajes de red. También hay pequeños relés que tienen voltajes de bobina de 5V o 6V. Para estos relés, es posible que no necesite un suministro separado de 12 V, pero solo observe la resistencia de la bobina, ya que muchos de ellos tienen consumos de corriente de más de 100 mA. Si es así y está utilizando un regulador 78L05 100mA 5V, es posible que desee cambiarlo a un regulador 7805 que puede suministrar hasta 1 amperio. Los relés son particularmente útiles para conmutar CA, por ejemplo, solenoides de rociadores de jardín de 24 V CA, luces de jardín de 12 V CA y en entornos eléctricamente ruidosos como un automóvil. También son útiles para controlar grandes cargas, por ejemplo, un picaxe que suministra 20mA a 5V = 0.1W controlando un transistor 12V a 100mA = 1.2W a un relé 24V 100mA = 2.4W a un contactor que acciona una bomba de 3600W. Si desea controlar la energía de esa manera, pídale a un electricista que conecte una caja de control y le dé dos cables que salen (cables de bobina para un relé de 12 V) que usted puede controlar. De esta manera, el electricista puede cerrar la sesión en la caja de alimentación y usted puede hacer toda la electrónica sin tener que preocuparse por electrocutarse. Otro uso de los relés es un control inverso para un motor. Al usar la modulación de ancho de pulso en un mosfet, puede controlar la velocidad de un motor de CC, y con un relé de potencia DPDT puede cambiar la dirección. Esta es una forma sencilla de controlar grandes motores como los que se utilizan en las 'guerras de robots'. Publique un comentario si necesita ayuda para construir algo.

Recomendado: