Avançar para o conteúdo principal

RFID Tags

As etiquetas RFID são, hoje em dia, muito comuns em diversas atividades, desde cartões de identificação a etiquetas para identificar produtos.

RFID significa Radio Frequency Identification (Identificação por rádio frequência).

O principio é simples, existe um leitor e uma etiqueta que comunicam, mas ao contrário dos rádios a etiqueta não tem de ser alimentada (apesar de existirem algumas que são) por baterias, esta é alimentada pelo leitor por um período breve de tempo durante o qual é enviado para o leitor o número de identificação da etiqueta.

Para este pequeno projeto vou utilizar uma placa RFID USB da SparkFun para comunicar com um leitor RFID.





O leitor encaixa na placa que por sua vez liga-se ao computador via USB. Nada mais fácil.




Agora precisamos dos drivers da placa para isso basta seguir este link.

Depois do dispositivo estar instalado temos de saber qual o número da porta que lhe foi atribuído  para isso basta ir ao gestor de dispositivos e procurar na secção portas.



No meu caso é a porta COM31.

Agora vamos até ao Visual Basic fazer um pequeno programa para ler as etiquetas.


No formulário vamos utilizar o componente SerialPort para receber do leitor RFID os dados das etiquetas.


Agora o código.

Primeiro o botão que atualiza a porta de comunicação e abre a porta.



    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click


        If Me.SerialPort1.IsOpen = True Then Me.SerialPort1.Close()

        Try
            Me.SerialPort1.PortName = Me.TextBox1.Text

            If Me.SerialPort1.IsOpen = False Then Me.SerialPort1.Open()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try


    End Sub


Agora o componente SerialPort, por defeito este já está configurado para um baud rate de 9600 que é a mesma velocidade da placa da SparkFun, como já deve ter percebido esta porta apesar de ser usb utiliza um protocolo de comunicação série tal como o arduino.

Para ler os dados da SerialPort adicionamos um timer que quando detetar dados lê-os e adiciona-os à listbox, o código do timer:


    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Dim letra As Char
        Static texto As String

        If Me.SerialPort1.IsOpen = False Then Exit Sub
        letra = ChrW(Me.SerialPort1.ReadChar())
        If Char.IsLetterOrDigit(letra) Then
            texto = texto & letra
        Else
            If texto = "" Then Exit Sub
            If texto <> "" Then
                Me.ListBox1.Items.Add(texto)
                texto = ""
            End If
        End If

    End Sub

Com este código cada letra da tag é lida individualmente e adicionada à string quando a letra lida não é válida verificamos se terminamos de ler para adicionar à listbox.



O projeto pode ser encontrado aqui.

Comentários

Mensagens populares deste blogue

Upgrade do Windows Home para Pro sem formatar

 Há algum tempo que tentava fazer o upgrade do meu Windows 10 da versão Home para a versão Pro, mas chegava sempre a um ponto em que me era solicitado para formatar o sistema e não estava para isso. Finalmente conseguinte seguindo estes passos: - seguinte estes passos  utilizei uma das chaves genéricas para o Windows 10 Pro e fui a Settings > Update & Security > Activation > Change the product key; - após inserir uma das chaves o Windows instala as funcionalidades Pro e pede para reiniciar; - agora tem o Windows Pro mas não está ativado, assim fui ao site urcdkeys  onde comprei uma chave para o Windows Pro por menos de €20; - com essa chave voltei a funcionalidade Change the product key e ativei o Windows; - e pronto, Windows Pro ativado sem formatar ou reinstalar. Importante : eu não tenho nada a ver com o site urcdkeys por isso a vossa experiência pode correr de forma diferente da minha.

Vamos fazer um carro com o Unity 3D

Neste artigo vamos fazer um carro, simples, com o Unity 3D. A ideia é utilizar o motor de física do Unity 3D para simular o comportamento do carro. Os passos a seguir são: [1] - Criar um projeto novo

Tem troco

Para hoje um pequeno programa que dá troco, bem dar não dá mas calcula o troco a dar em função das moedas disponíveis. Neste projeto vamos utilizar o novo Visual Studio 2012. Como era de se esperar vamos iniciar um projeto novo: Agora adicionamos os seguintes elementos:  - um botão para calcular as moedas a dar de troco  - um botão para repor o número de moedas iniciais disponíveis  - uma textbox para introduzir o valor a pagar  - uma textbox para introduzir o valor entregue  - umas labels para informar o utilizador do que deve introduzir e outra para mostrar o troco  - por fim uma grelha para mostrar os valores das moedas e as quantidades disponíveis de cada uma. A janela principal do programa fica assim: Agora o código, primeiro o evento load do formulário, neste vamos definir os valores das moedas e as respetivas quantidades Para guardar estes valores vamos necessitar de uma variável definida ao nível do formulário, logo abaixo da definição da class: Public Class Form1     Public mo