Índice:

Controle dispositivos do mundo real com seu PC: 15 etapas (com imagens)
Controle dispositivos do mundo real com seu PC: 15 etapas (com imagens)

Vídeo: Controle dispositivos do mundo real com seu PC: 15 etapas (com imagens)

Vídeo: Controle dispositivos do mundo real com seu PC: 15 etapas (com imagens)
Vídeo: Código secreto de Windows #computador #pc #windows #informatica #tecnologia #dicas #truques 2024, Julho
Anonim
Controle dispositivos do mundo real com o seu PC
Controle dispositivos do mundo real com o seu PC

Este Instructable mostra como fazer a interface entre um PC e um microcontrolador. Esta demonstração detectará o valor de um potenciômetro ou qualquer entrada analógica e também controlará um servo. O custo total está abaixo de $ 40 incluindo o servo. O servo liga um microinterruptor e, em seguida, o microinterruptor liga uma lâmpada. Em uma aplicação prática, a panela pode ser um sensor de temperatura e o servo pode ser um aquecedor. O servo pode ser substituído por um relé ou outro controlador de energia. O picaxe é programado em uma versão simplificada do basic e a interface usa VB. Net. Todo o software está disponível gratuitamente. Um instrutivo relacionado mostra como vincular dois microcontroladores através da internet

Etapa 1: Reúna as peças

Reúna as peças
Reúna as peças

Lista de peças: chip Picaxe 08M disponível em várias fontes, incluindo Rev Ed https://www.rev-ed.co.uk/picaxe/ (Reino Unido), PH Anderson https://www.phanderson.com/ (EUA) e Microzed https://www.microzed.com.au/ (Austrália) Protoboard, servo, microswitch, bateria 9V, baterias 4xAA e suporte, tag strip, resistor de 10k, resistor de 22k, capacitor 33uF 16V, capacitor 0,1uF, 7805L de baixa potência 5V regulador, potenciômetro de 10k, fios (telefone de núcleo sólido / fio de dados, por exemplo, Cat5 / 6), lâmpada de 6V, soquete fêmea D9 e tampa, 2 metros de 3 (ou 4) fio de dados de núcleo, clipes de bateria. As empresas acima também vendem USB para dispositivos seriais que são úteis para laptops que não possuem uma porta serial. É importante notar que alguns dispositivos USB para serial não funcionam tão bem quanto outros e vale a pena comprar um de um dos fornecedores acima, pois foram testados para uso com chips picaxe. O que funciona é https://www.rev-ed.co.uk/docs/axe027.pdf Claro, se o seu computador tiver uma porta serial (ou uma placa de porta serial antiga), isso não ser um problema.

Etapa 2: Baixe e instale alguns softwares

Baixe e instale algum software
Baixe e instale algum software

Precisaremos do VB. Net e do software do controlador picaxe. VB. Net (Visual Basic Express) está disponível em https://msdn2.microsoft.com/en-us/express/aa718406.aspxSe este link não funcionar, pesquise no Google para: download visual basic expresso O software picaxe está disponível em https://www.rev-ed.co.uk/picaxe/Você precisará se registrar na microsoft para fazer o download - se for um problema, use um e-mail falso ou alguma coisa. Na verdade, achei útil fornecer meu e-mail real enquanto eles enviam atualizações ocasionais.

Etapa 3: construir um circuito de download

Construir um circuito de download
Construir um circuito de download

Este circuito de download usa um chip picaxe, alguns resistores, um regulador e uma bateria de 9V. Mais informações estão disponíveis na documentação do picaxe e isso deve levar apenas alguns minutos para construir, uma vez que todas as peças estão disponíveis.

Eu também poderia acrescentar que os picaxes funcionam bem com 3 pilhas AA. Uma fonte regulada de 5 V é útil para operar entradas analógicas, pois as tensões de referência não mudam, mas para circuitos simples liga / desliga, uma fonte regulada não é necessária. O 5V reg pode ser omitido nessas situações.

Etapa 4: Layout de protoboard do circuito de download

Layout de protoboard do circuito de download
Layout de protoboard do circuito de download

Esta foto mostra o cabo de download, que é simplesmente um plugue D9 e alguns metros de um cabo multi-core. A maioria dos PCs modernos possui uma conexão de porta serial D9. Um PC construído antes de 1998 pode ter um conector de 25 pinos. Eu soldei cerca de 1 cm de fio de núcleo sólido na extremidade dos fios flexíveis e, em seguida, coloquei termorretrátil em torno disso - os fios de núcleo sólido entram em um protoboard muito melhor do que fios flexíveis.

Etapa 5: Baixe o Programa Picaxe

Baixe o Programa Picaxe
Baixe o Programa Picaxe

Clique na seta azul para fazer o download. Se não for baixado, há algumas sugestões de depuração no manual de instruções do picaxe. Você pode tentar baixar um programa simples para ligar e desligar um led para verificar se o chip funciona. Este programa, como está, não faz nada até ser conectado a um PC, pois está esperando que o PC envie algo. Se o download estiver correto, ele está funcionando e o chip está programado e a próxima etapa é reconfigurar o chip como um chip de interface serial.

Copie e cole o código abaixo. Para visualizá-lo com a sintaxe de cores, procure em Exibir / Opções / Editor. As convenções de cores são semelhantes a VB. Net main: serin 3, N2400, ("Dados"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'lê o pote, em seguida, envia este de volta para a série 0, N2400, ("Dados", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) selecione caso b0 'ler bit de dados b0 caso <140' se <140 então definir servo para uma posição servo 2, 120 pausa 1000 'pausar um segundo senão servo 2, 160 pausa 1000 fim selecionar baixo 2' desligar o servo enquanto serin faz isso de qualquer maneira ir para o principal

Etapa 6: reconfigurar o circuito como um circuito de interface serial

Reconfigure o circuito como um circuito de interface serial
Reconfigure o circuito como um circuito de interface serial

Duas mudanças sutis foram feitas no circuito do picaxe. O resistor de 22k que costumava ir para a perna 2 agora vai para a perna 4. E a perna 2 foi aterrada. O único propósito da etapa 2 é receber dados de programação do PC, de forma que, uma vez que o chip seja programado, ele possa ser conectado ao aterramento. Se você voltar a programar o chip para corrigir bugs, etc., desconecte a perna 2 do solo e reconecte o 22k à perna 2. O picaxe fala de volta com o PC através da perna 7, portanto, isso não precisa ser alterado.

Um pote foi adicionado e o servo foi adicionado. O servo não é realmente necessário e um led e um resistor de 1k funcionariam bem e / ou qualquer circuito que você deseja conectar. Acabei de usar um servo para mostrar como clicar em algo em uma tela pode fazer algo realmente se mover. O servo funciona com sua própria fonte de alimentação. Esta fonte de alimentação separada não seria necessária se o picaxe estivesse apenas ligando e desligando os leds. O picaxe está pronto - agora precisamos de algum código VB.

Etapa 7: escrever algum código de interface VB

Escreva algum código de interface VB
Escreva algum código de interface VB

Depois de instalar o VB. Net, execute-o e selecione Arquivo / Novo Projeto e selecione Aplicativo do Windows. Você pode clicar em Arquivo / Salvar tudo logo no início e salvar onde quiser e, no futuro, iniciar o projeto de dentro do VB. Net ou clicando em um arquivo.sln que será criado.

Etapa 8: Projete o formulário VB. Net

Projete o formulário VB. Net
Projete o formulário VB. Net

O VB cria um novo formulário em branco chamado Form1.vb. Você pode alterar o nome disso agora ou mais tarde ou apenas deixá-lo como Form1 se o projeto for simples. Vamos deixar como está. Para adicionar algum controle, precisamos abrir a caixa de ferramentas que está circulada em verde. A caixa de ferramentas pode ser aberta e fechada sempre que necessário - normalmente, a primeira etapa é adicionar os controles e, em seguida, fechar a caixa de ferramentas e trabalhar no código. Você pode deixá-lo aberto o tempo todo, mas ele ocupa um pouco da tela.

Etapa 9: adicionar um cronômetro

Adicionar um cronômetro
Adicionar um cronômetro

Percorremos a caixa de ferramentas e selecionamos um cronômetro. Clique duas vezes no cronômetro para adicioná-lo. Uma imagem de um relógio chamado Timer1 aparecerá na parte inferior da tela e, à direita, as propriedades do timer serão destacadas. Você pode editá-los ou alterá-los no corpo do texto do código. Vamos deixá-los como estão e mudá-los no corpo do texto.

Como um aparte, a caixa de ferramentas parece um pouco assustadora, mas apenas algumas são necessárias para a maioria dos programas - incluem botões, caixas de texto, rótulos, temporizadores, caixas de imagem, caixas de seleção e caixas de rádio. Talvez abra um novo programa e brinque com alguns algum dia.

Etapa 10: adicionar alguns botões

Adicionar alguns botões
Adicionar alguns botões

Clique na ferramenta de botão e desenhe o tamanho do botão no Form1. Vamos precisar de dois botões, uma caixa de imagem e um rótulo. Vá em frente e adicione-os - a próxima captura de tela mostra todos eles desenhados. O tamanho e a posição não são importantes e você pode renomeá-los mais tarde, se desejar.

Etapa 11: Formulário com todos os controles adicionados

Formulário com todos os controles adicionados
Formulário com todos os controles adicionados

Form1 agora é apresentado. A caixa ao lado de Button2 é uma pequena caixa de imagem. Você pode colocar fotos nele, mas vamos usá-lo apenas para indicar qual botão foi pressionado, alterando-o de vermelho para verde. Label1 exibe os registros picaxe.

Etapa 12: adicionar algum código

Adicionar algum código
Adicionar algum código

À direita circulados em verde estão vários botões úteis - o segundo da direita é o botão Exibir código e o botão direito é o View Designer. Na prática, ao escrever código, um vai e vem entre essas visualizações. Geralmente, se alguém estiver no modo Designer, clicar duas vezes em um objeto, como um botão, abre um ponto na Visualização de código para adicionar algum código ou leva alguém para o trecho de código que é executado quando o botão é pressionado. Desta forma, o fluxo do programa se torna bastante intuitivo - o usuário clica em coisas e pedaços de código são executados e mudam a tela e assim por diante. Para nossos propósitos, entretanto, vamos trapacear e colar um pedaço inteiro de código de trabalho. A visualização de código terá Public Class Form1 … End Class - destaque e exclua. Agora pegue todo o código abaixo e cole em. Imports System. IOImports Strings = Microsoft. VisualBasic 'para poder usar coisas como left (e right (para stringsPublic Classe Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' para declarações de suspensãoDim WithEvents serialPort As New IO. Ports. SerialPort 'porta serial declareDim PicaxeRegisters (0 a 13) As Byte' registra b0 para b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. LoadTimer1. Enabled = True 'colocar isso no código como padrão para false quando createdTimer1. Interval = 5000' 5 segundosPictureBox1. BackColor = Color. Red 'definido para a posição' red'Array. Clear (PicaxeRegisters, 0, 13) 'provavelmente não é necessário como array declarado blankEnd SubPrivate Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Manipula o temporizador Timer1. Tick 'marca a cada 5 segundosChamada SerialTxRx ()' fala com picaxeEnd SubSub SerialTxRx () Dim LabelString As String 'string para exibir valores porte DataP acket (0 a 17) As Byte 'pacote de dados inteiro "Dados" +14 bytesDim i As Integer' i é sempre útil para loops etcLabel1. Text = "" 'limpar o texto na telaFor i = 0 To 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'adiciona a palavra "Data" ao packetNextFor i = 0 To 13DataPacket (i + 4) = PicaxeRegisters (i)' adiciona todos os bytes ao packetNextIf serialPort. IsOpen ThenserialPort. Close () 'apenas no caso de já estar abertoEnd IfExperimenteWith serialPort. PortName = "COM1"' A maioria dos novos computadores padrão para com1, mas qualquer computador anterior a 1999 com um mouse serial provavelmente será padrão para com2. BaudRate = 2400 '2400 é o máximo velocidade para pequenos picaxes. Parity = IO. Ports. Parity. None 'sem paridade. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' milissegundos, então o tempo esgota em 1 segundo se não houver resposta. Open () 'abrir a porta serial. DiscardInBuffer ()' limpar o buffer de entrada. Write (DataPacket, 0, 18) 'enviar o datapacket arrayCall Sleep (300)' 100 milissegundos no mínimo para aguardar r dados para voltar e mais se o fluxo de dados for mais longo. Read (DataPacket, 0, 18) 'ler de volta na matriz do pacote de dados. Close ()' fechar a porta serialEnd WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'transformar em uma string de textoNextLabel1. Text = LabelString' colocar a string de texto em screenCatch ex As Exception'MsgBox (ex. ToString) 'descomente se quiser ver o erro real messageLabel1. Text = " Timeout "'irá exibir isto se picaxe não estiver conectado etcEnd TryEnd SubPrivate Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red' mude a caixa para redPicaxeRegisters (0) = 120 'um valor arbitrário para o servoEnd SubPrivate Sub Button2_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Manipula Button2. ClickPictureBox1. BackColor = Color. Green' caixa para greenPicaxeRegisters (0) = 160 'valor arbitrário para o Classe servoEnd SubEnd

Etapa 13: execute o programa

Execute o programa
Execute o programa

Ligue o picaxe se ele não estiver ligado. Execute o programa vb.net clicando no triângulo verde na parte superior da tela próximo ao meio. À direita do triângulo de execução estão um botão de pausa e um botão de parada, ou o programa pode ser interrompido clicando no x superior direito ou com Arquivo / Sair se você adicionou um menu. O programa pode ser compilado se você quiser, mas para depuração, vamos deixá-lo rodando dentro do VB. O cronômetro está enviando bytes a cada 5 segundos, então leva 5 segundos para a tela aparecer. O rótulo1 está exibindo um dump dos 14 registros picaxe. Eles são enviados para o picaxe e, em seguida, enviados de volta. É quase certo que não é necessário enviar todos os 14 e seu código pode ser alterado para se adequar. O segundo byte com um valor de 152 é o valor do pote que muda de 0 a 255. Se o botão1 for clicado, ele envia um valor de 120 no primeiro byte e se o botão2 for clicado, ele envia 160 e o programa picaxe os decodifica e move o servo. Este código mostra como enviar e receber dados de um microcontrolador. O microcontrolador pode ligar todos os tipos de dispositivos - tenho cerca de 30 em minha casa rodando sprinklers, luzes, segurança, detectando carros em calçadas, ligando várias bombas de 3,6 Kw e detectando o nível de água nos tanques. Picaxes podem ser conectados em um barramento comum e podem até mesmo se comunicar uns com os outros através de links de rádio. Também é possível fazer upload e download de dados de sites e, portanto, usar a Internet para conectar dispositivos em qualquer lugar do mundo https://www.instructables. com / id / Worldwide-microcontroller-link-for-under-20 / As próximas duas páginas também contêm alguns exemplos de como usar diferentes sensores e como controlar diferentes dispositivos. Dr James MoxhamAdelaide, South Australia

Etapa 14: Dispositivos de entrada

Dispositivos de entrada
Dispositivos de entrada

O programador picaxe contém alguns arquivos de ajuda muito úteis, um dos quais é chamado de "circuitos de interface" e também está disponível em https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf. Isso mostra como controlar motores, sentir o ambiente e outros controles úteis. Além desses cirucits, existem alguns que utilizo continuamente. Temperatura - o sensor de temperatura LM35 produz uma tensão que pode ir direto para um picaxe e pode ser lida com um comando readadc ou readadc10. Luz - um resistor dependente de luz tem uma resistência que varia de algumas centenas de ohms em luz solar intensa a mais de 5 megohms em escuridão total. Meça a resistência no nível de luz que você deseja alternar e coloque o LDR em série com um resistor de aproximadamente o mesmo valor. Por exemplo, eu queria detectar as luzes de um carro entrando na garagem para acender algumas luzes. A resistência era de cerca de 1M da luz indireta, então coloquei um 1M em série com o LDR. Interruptor - alguns interruptores alternam entre 5V e 0V (um interruptor de duplo movimento de pólo único), mas alguns apenas ligam e desligam. Se um interruptor ligar, ele pode enviar 5 V para um chip picaxe, mas se estiver desligado, o pino picaxe seria 'flutuante' e poderia ter qualquer valor. Este circuito mostra como colocar a entrada no solo quando a chave está desligada. Este é o circuito a ser usado para a maioria das chaves de botão. Potentiomter - um botão bem antigo. Gire o botão e leia a tensão no chip. Existem todos os tipos de outros dispositivos eletrônicos que criam uma tensão de 0 a 5 V ou podem ser facilmente configurados para fazer isso. Exemplos são sensores magnéticos, umidade, velocidade, toque, luz infravermelha, pressão, cor e som. Os sensores em geral custam apenas alguns dólares cada.

Etapa 15: Dispositivos de controle

Dispositivos de controle
Dispositivos de controle

O arquivo de ajuda do picaxe contém uma ótima explicação sobre como controlar motores e luzes. Além disso, descobri que há alguns circuitos que utilizo continuamente. O primeiro é um circuito de transistor simples. Um chip picaxe pode ligar no máximo 20 mA por pino, o que é bom para ligar um LED, mas não muito mais. Um transistor 547 aumenta a corrente para 100mA, o que é bom para lâmpadas pequenas. O segundo circuito mostra um mosfet. Mosfets praticamente não precisam de corrente para acioná-los - apenas volts, para que possam ser controlados diretamente por um picaxe. Existem todos os tipos de mosfets disponíveis, mas minha preferência é um chamado BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Ele pode ser acionado diretamente de 5V (ao contrário de alguns que precisam de 10V), mas a principal vantagem é que ele tem uma resistência extremamente baixa quando ligado - 0,045 ohms que não é muito mais do que a resistência dos fios que seriam conectados a ele. Isso significa que ele não fica quente ao dirigir cargas muito altas, o que economiza energia e também nos custos do dissipador de calor. Por exemplo, dirigir uma carga de 5 ampères como um farol de carro; watts = corrente ao quadrado x resistência, então W = 5 * 5 * 0,045 = 1,12 watts que só precisaria de um dissipador de calor como um pedaço quadrado de 1 polegada de alumínio fino. O terceiro circuito mostra um relé. Existem vários parâmetros para todos os relés - a tensão da bobina, a resistência da bobina e a tensão e corrente de carga. Por exemplo, um relé pode ter uma bobina de 12 V com uma corrente da bobina de 30 mA, resistência da bobina de 400 ohms e pode ser capaz de acionar até 240 V a 1 ampere. A corrente da bobina é de mais volts e amperes do que um picaxe pode fornecer, então usamos o circuito do transistor para ligar a bobina. Há um diodo incluído também - ele suprime o EMF traseiro quando o relé é desligado. O EMF de volta é o que cria a centelha para uma vela de ignição, então você não quer essas altas tensões em qualquer lugar do circuito. Os contatos terão uma corrente e volts máximos - a corrente pode ser de alguns amperes e os volts geralmente são 240 V, portanto, alternar 12 V ou 24 V estará bem dentro da faixa. Se você não tem experiência em eletrônica, não brinque com tensões de rede. Também existem pequenos relés com tensões de bobina de 5V ou 6V. Para esses relés, você pode não precisar de uma fonte separada de 12 V, mas apenas observe a resistência da bobina, pois muitos deles têm consumos de corrente de mais de 100 mA. Se assim for e você estiver usando um regulador 78L05 100mA 5V, convém alterá-lo para um regulador 7805 que pode fornecer até 1 amp. Os relés são particularmente úteis para alternar CA - por exemplo, solenóides de irrigação de jardim de 24 V CA, luzes de jardim de 12 V CA e em ambientes eletricamente ruidosos, como um carro. Eles também são úteis para controlar grandes cargas, por exemplo, um picaxe fornecendo 20mA a 5V = 0,1W controlando um transistor 12V a 100mA = 1,2W para um relé 24V 100mA = 2,4W para um contator acionando uma bomba de 3600W. Se você quiser controlar a energia assim, peça a um eletricista que conecte uma caixa de controle e lhe dê dois fios saindo (fios da bobina para um relé de 12 V) que você possa controlar. Desta forma, o eletricista pode desligar a caixa de força e você pode fazer toda a parte eletrônica sem se preocupar em ser eletrocutado. Outro uso para relés é o controle reverso de um motor. Usando a modulação por largura de pulso em um mosfet, você pode controlar a velocidade de um motor DC e, com um relé de potência DPDT, pode mudar a direção. Esta é uma maneira simples de controlar grandes motores como os usados nas 'guerras de robôs'. Por favor, poste um comentário se precisar de ajuda para construir algo.

Recomendado: