Medidas de 4-pontas em Labview

Contribuição de:

Lanna Isabely Morais Sinimbu- Graduanda em Física

Tiago Fernandes Lima Neto- Graduando em Física

O Sistema de medidas 4-pontas é uma técnica utilizada para medição de resistividade e resistência de folha. É caracterizado por aplicar uma corrente que passa em duas pontas num determinado momento e a medir a voltagem nas outras duas.  Com as medidas da corrente e da voltagem, obtém-se o valor da resistência e consequentemente a resistividade do material, de acordo com sua geometria. Logo, o objetivo do programa produzido abaixo, é facilitar a obtenção destes dados, por meio do Labview (uma linguagem de programação) .

(mais…)

Utilizando Python 2.7 para aquisição de dados e controle de instrumentos

 

Leitura recomendada

https://pyvisa.readthedocs.io/en/stable/getting.html

Antes de iniciar

Certifique-se de ter instalado o VISA e os drivers da sua placa de aquisição. No meu caso usarei equipamentos com entrada GPIB através da placa de aquisição KUSB-488B da Keitlhey e equipamentos com entrada RS-232 (com um adaptador USB-to-Serial modelo UC-232A da ATEN). Clique aqui para ver o guia de instalação para placas GPIB no Windows 8.

Instalação do Python 2.7 (32 bits) + pyVisa

Assumindo que você está com Windows e o VISA corretamente instalado e testado. Eu escolhi usar o Python 2.7.14 (32 bits). Faça o download e instale.

(mais…)

GPIB no Windows 8.1: Usando o adaptador KUSB-488B no Windows

Hardware

Vamos instalar um adaptador GPIB-USB da Keithley modelo KUSB-488B (foto abaixo) em um notebook Dell Intel Core i7 4GB de memória, HD de 1TB, particionado com dual boot Windows 8.1 e Opensuse Leap 42.1.

Screenshot from 2016-06-29 11-57-48 (mais…)

GPIB no linux: Controle de instrumentos no openSuse

Leitura recomendada

Antes de iniciar a instalação e testes, recomendo a leitura do seguinte site:

(mais…)

Interfaces gráficas: Python + Qt (Parte IV)

Parte 4: Interagindo com outros elementos na interface Qt

Essa seção vai descrever como interagir com outros elementos da interface Qt. O objetivo é explicar com detalhes como podemos fazer uma interação entre usuário e o código para obter o primeiro ponto de calibração do eixo X. Entretanto nao vou explicar cada passo da construção da janela. Vou disponibilizar a versão completa no final da seção mas você pode experimentar com as funções do Qt Designer para obter um resultado parecido. Vamos comecar:

(mais…)

Interfaces gráficas: Python + Qt (Parte III)

Parte 3: Como carregar um gráfico do matplotlib com uma imagem em uma interface Qt

Se você ja usou matplotlib sabe que quando um gráfico é gerado uma janela é criada para apresentação do gráfico. O objetivo dessa seção é mostrar como forçar a apresentação do gráfico dentro da janela Qt que estamos construindo. Antes de ir para o código Python precisamos organizar os elementos na nossa janela.

(mais…)

Interfaces gráficas: Python + Qt (Parte II)

Parte 2: Introduzir um método para vincular ações na interface Qt com reações do código Python

Vamos agora adicionar utilidades a esse código. A primeira função será abrir uma janela de diálogo para escolher um arquivo. Veja o código abaixo:

import sys
import os
import os.path
from PyQt4 import QtGui
from PyQt4.uic import loadUiType

Ui_MainWindow, QMainWindow = loadUiType('mainwindow.ui')

class Main(QMainWindow, Ui_MainWindow) :
    def __init__(self, ) :
    super(Main, self).__init__()
    self.setupUi(self)

    self.thisDir = os.path.dirname(os.path.abspath(__file__))
    self.btOpenImage.clicked.connect(self.openImage)

    def openImage(self) :
    texto = 'Escolha uma imagem'
    path = QtGui.QFileDialog.getOpenFileNameAndFilter(self,
                                                      texto,
                                                      self.thisDir,
                                                      "Images (*.png *.jpg)")

    print str(path[0])

    return

if __name__ == '__main__' :
    app = QtGui.QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())
  • Para facilitar a navegação, vamos criar uma variável chamada thisDir que recebe o valor do diretório em que o código Python está sendo executado (linha 14). Você poderia usar qualquer string mas eu prefiro usar a função os.path.dirname (necessário importar os módulos os e os.path, ver linhas 2 e 3);
  • Uma parte muito importante deste código está na linha 15. Esta linha conecta o botão btOpenImage à função openImage() quando o botão é clicado;
  • Por fim, definimos a função openImage() nas linhas 17-24;
  • Na linha 19 obtemos o ‘diretório’+’nome de arquivo’ da imagem a ser escolhida. A função QtGui.QFileDialog.getOpenFileNameAndFilter é responsável pela criação da janela de diálogo para escolha de arquivos (ver documentação do QFileDialog). A variável path recebe uma lista com 2 valores sendo o primeiro valor o caminho completo para a imagem e o segundo valor é o filtro usado. Só estamos interessado no caminho;
  • Na linha 24 imprimimos o valor do caminho no console para verificação. Execute o código e escolha uma imagem para testar o código.

Acesse o repositório desse código no GitHub (ou baixe pacote zip) para obter a versão 001 do código Python e a interface gráfica desta seção.

Outros posts relacionados:

Interfaces gráficas: Python + Qt (Parte I)

Em outro post eu descrevo como usar Python para obter os valores numéricos de um gráfico a partir de uma imagem. Veja imagem abaixo.

Capture000combo

O código apresentado no post citado acima funciona com o usuário inserindo as variáveis diretamente no código, interagindo com o gráfico atravéz de cliques para calibrar e obter os dados. Por fim, os resultados são impressos na tela do computador atravéz do console. Algumas melhorias podem ser feitas neste código para facilitar a utilização. Um exemplo seria o programa salvar os dados em um arquivo do tipo CSV. Entretanto, resolvi forçar um pouco a barra. A ideia deste post é criar uma interface gráfica para esse programa.

As ferramentas apresentadas aqui servem para muitas outras aplicações e fazer isso para este programa é simplesmente uma desculpa para introduzir interfaces gráficas usando Python+Qt.

(mais…)

Solução numérica para uma equação transcendental

Obter os valores de corrente em um diodo Schottky na presença de resistências parasitas.

diagrama

A corrente I(V) que atravessa a fonte de potencial V é dada pela equação

\left ( 1+\frac{R_S}{R_P} \right )I-\frac{V}{R_P} = I_0\left \{e^{\frac{q(V-IR_S)}{\alpha k_B T}}-1 \right \}                  (1)

A equação (1) é uma equação transcendental para I(V) e a obtenção da solução requer o uso de métodos numéricos ou de funções especiais. Abaixo eu descrevo as diferentes partes de uma rotina que escrevi em Python para resolver este problema.

(mais…)

Como obter valores usando imagens de gráficos

Este código em python foi criado a partir da necessidade de obter dados numéricos de artigos científicos, teses ou relatórios. Em algums situações é muito útil obter os valores de um certo experimento feito por outra pessoa em que não temos acesso aos valores numéricos mas temos acesso a um gráfico. Isso acontece frequentemente em artigos científicos ou teses disponíveis em PDF. Em outras situações, você pode se encontrar na necessidade de recuperar seus próprios dados na qual você perdeu a tabela de dados original e apenas tem os gráficos em um relatório ou apresentação (experiência pessoal).

Existem ferramentas online que fazem exatamente isso (exemplo aqui). Porém, achei interessante escrever meu próprio código em python para afiar minhas habilidades e aprender novas funções.

(mais…)