Janela Móvel Média Labview


O Slideshare usa cookies para melhorar a funcionalidade e o desempenho, e fornecer publicidade relevante. Se continuar a navegar no site, você concorda com o uso de cookies neste site. Veja o nosso Contrato de Usuário e Política de Privacidade. O Slideshare usa cookies para melhorar a funcionalidade e o desempenho, e fornecer publicidade relevante. Se continuar a navegar no site, você concorda com o uso de cookies neste site. Consulte nossa Política de Privacidade e Contrato de Usuário para obter detalhes. Explore todos os seus tópicos favoritos no aplicativo SlideShare Obtenha o aplicativo SlideShare para Salvar para mais tarde, mesmo offline Continuar para o site móvel Fazer o upload de inscrição de login Toque toque para diminuir o controle de processo laboratório de instrumentação e relatório labview Compartilhe este SlideShare LinkedIn Corporação cópia 2017LabVIEW Programação Guia de tópicos especiais PRIMEIRO LabVIEW Solução de problemasLabVIEW Solução de problemas Nota especial na biblioteca vis: A partir de 2013, o simulador de cRIO foi adicionado. Isso introduziu duas versões diferentes de muitos do WPILib vis, uma para execução autônoma em um PC e outra para operação padrão no robô cRIO. A versão correta do código da biblioteca é carregada dependendo do destino atual (PC vs. cRIO). Um efeito secundário estranho é que, se você soltar uma biblioteca vi em um vazio vi apenas para detalhar para estudar os internos, então você provavelmente obterá a versão para PC e você estará estudando como funciona o simulador de cRIO, e não como a versão do robô Do código funciona. 2011 Árvore de menu LabVIEW Aqui está uma ajuda para localizar a biblioteca vis (clique com o botão direito do mouse em qualquer janela do Diagrama de blocos para obter essas paletas). Menus gerais (2010) WPIlib Menu Tree (2011) 2013 Framework Os frameworks que a NI desenvolve e entrega anualmente com a última edição do FRC LabVIEW simplesmente estabelecem um estilo de programa. A estrutura é apenas um modelo e estilo de programa básico que muda e melhora um pouco a cada ano. Você pode desenvolver seu próprio programa usando o seu próprio estilo completamente a partir do zero. Os elementos essenciais que cada programa do robô FRC requer são: Comunicações com a Estação Driver Reconhecendo e processando os diferentes modos de competição que chegam nos pacotes DS Operações autônomas Controles do driver Teleop A pasta Team Code contém todo o código que você normalmente deve modificar para se adequar ao seu robô e jogo plano. Se você adicionar o seu próprio aspecto, eles também devem ser mantidos aqui. Nada de fora deve ser tocado até bater as encostas Avançadas. Abra todos os seus dispositivos aqui e crie nomes de refnum para identificar de maneira exclusiva cada um deles. Isso é chamado apenas uma vez no início. O Framework está configurado aqui em Begin. vi para chamar automaticamente o Independent Autônomo. No início do Modo Autônomo e para matá-lo automaticamente quando o Modo Autônomo termina. Autônomo Independent. vi NÃO adicione uma chamada explictada a este vi no seu código. É configurado para ser chamado automaticamente e adicionar suas próprias chamadas irá interromper esse processo em segundo plano e pode fazer com que seu robô seja inoperável durante o teleop. Isso é chamado apenas uma vez, então coloque tudo o que quiser feito durante o Modo Autônomo aqui. Você não deixa isso, então espera e os atrasos podem ser usados ​​conforme desejado aqui. Controles típicos do driver. Isso é chamado de 50 vezes por segundo à medida que os pacotes de controle da Driver Station chegam. NÃO insira o código aqui que aguarda ou leva mais de alguns milissegundos para executar. Se este vi demorar muito para ser executado, os controles do seu driver responderão lenta, esporadicamente ou não. Isso significa que não há loops, sem temporizadores de espera, sem atraso de alimentação Watchdog. O código operacional normal do driver geralmente será dividido entre Teleop. vi e Periodic Tasks. vi Teleop. vi obtém as ações de fluxo contínuo, como a condução através dos joysticks, que não exigem atrasos para fornecer um mecanismo de tempo mecanismo para completar a operação. O periódico Tasks. vi obtém as ações complexas demoradas que precisam de muito tempo para serem concluídas, como uma catapulta que precisa ser liberada e ajustada novamente como parte de um único botão de joystick. Em comparação com a velocidade do computador, leva muito tempo para puxar fisicamente um mecanismo, trancá-lo e liberá-lo novamente. Qualquer coisa que faça você querer adicionar uma demora ou esperar um sensor para lhe dizer que está pronto pode ser feito mais facilmente em Tarefas Periódicas. vi do que em qualquer outro lugar. Periodic Tasks. vi Isso é chamado apenas uma vez, mas espera-se que as tarefas aqui sejam executadas dentro de um loop Never ending While ou uma estrutura Flat Sequence. Normalmente, você terá vários loops completamente separados executados aqui para fazer coisas independentemente mutuamente. Isso pode ser usado para sequências cronometradas, por exemplo, se você possui um mecanismo que opera em vários passos discretos. Digamos que um motor gatilha uma catapulta, uma trava mecânica o retém, o pneumático solta o trinco, o atraso de tempo enquanto aguarda a catapulta para completar o lançamento e repita o ciclo de carga. Você pode ter um loop completamente separado, apenas prestando atenção a um dos Seus botões de joystick e pulando para fazer o que quiser sempre que esse botão é pressionado. Isso simplesmente encerra todos os dispositivos que você abriu em Begin. vi para limpar quando o programa sair. Curiosamente devido à forma como desligamos, ou seja, nós não energizamos o robô, este Finish. vi nunca será executado. Sua presença aqui é ensinar uma boa forma que será importante na maioria das aplicações normais do LabVIEW, que os alunos irão encontrar ao usá-lo na faculdade e no trabalho. Operações comuns de robôs Estes exemplos pré-FRC 2015 ainda se aplicam, porém algumas pequenas mudanças foram feitas na Biblioteca FRC WPI. Exemplos atualizados podem ser encontrados nos exemplos LabVIEW 2015 Aqui estão exemplos de maneiras de fazer algumas das funções de robôs mais comuns. Como a estrutura expande os elementos necessários em vários arquivos, esses exemplos estão em forma de imagem para reunir todas as partes, onde você pode ver tudo de uma só vez. Cada exemplo inclui os caminhos do menu para onde todos os ícones usados ​​nessa imagem são encontrados. O LabVIEW também fornece exemplos autênticos exclusivos da janela de Introdução que incluem diagramas de fiação para conectar dispositivos adequadamente. Esses projetos de amostra são excelentes para testar se um dispositivo está funcionando e conectado corretamente. Uma vez que eles são programas autônomos, é preciso uma compreensão intermediária da estrutura padrão para descobrir como integrar adequadamente os conceitos no seu projeto LabVIEW. JoystickExample (2010) WPI Robotics Library-DriverStation-Joystick Kinect Exemplo de Joystick (2012) WPI Robotics Library-DriverStation-Joystick Exemplo de Entrada Digital. por exemplo. Interruptores de limite (2010) WPI Robotics Library-IO-DigitalInput Exemplo de Entrada Analógica (2010) WPI Robotics Library-IO-AnalogChannel Compressor Exemplo (2012) WPI Robotics Library-Atuators-Compressor Nota: 2012 também exige que o Compressor loop vi seja colocado no Frequency Tasks. vi Driver Station DigitalAnalog Input Example WPI Robotics Library-DriverStation-Compatibilidade IO Programming-Boolean Relay Example (2010) WPI Robotics Library-Atuadores-Relé WPI Robotics Library-DriverStation-Joystick Programação-Comparação Servo Example (2010) WPI Robotics Library - Actuadores-Servo WPI Robotics Library-DriverStation-Joystick Programação-Comparação Single Motor Example (2010) WPI Robotics Library-Atuators-MotorControl WPI Robotics Library-DriverStation-Joystick Botão Controle de Motor Exemplo (2013) WPI Robotics Library-Atuators-MotorControl WPI Robotics Library-DriverStation-Joystick Programação-Comparação Quer mais botões Adicione uma seleção para cada um assim: Não quer ter que manter pressionando o botão Em seguida, adicione um Nó de Feedback para lembrar: Exemplo de Solenóide Único (2010) WPI Robotics Library-Atuadores-Solenóide WPI Robotics Library-DriverStation-Joystick Exemplo de solenóide duplo (2011) WPI Robotics Library-Atuators-Solenoid Programming-Boolean WPI Robotics Library-DriverStation - Joystick Double Solenoid Example (2010) - implementação alternativa WPI Robotics Library-Atuators-Solenoid Programming-Boolean WPI Robotics Library-DriverStation-Joystick Relé Solenóide Exemplo (2011) - para solenóide duplo, 2 vermelhos com fio para MM-, 2 negros com fio para (WPI Robotics Library-Actuators-Relay Programming-Boolean Programming-Structures Relay Spinking Examples (2011) - 3 variações WPI Robotics Library-Atuators-Relay Programming-Boolean Programming-Structures Relay Current Settings (2012) - como recuperar as Configurações de Relé atuais WPI Robotics Library-Atuators-Relay Programming-Boolean Programming-Array Cascade Relay Exemplo (2012) - quando você quer trabalhar com vários botões WPI Robotics Biblioteca-Atuadores-Programação Relé-Programação Booleana-Estruturas Comece a Comunicação da Estação Driver (2010). Se o Framework padrão for usado, isso já é tratado no Robot Main. vi (2010). Apenas esteja ciente de que se você estiver escrevendo seu código do zero, isso é necessário para começar a se comunicar com o Driver Station, caso contrário o cRIO permanecerá em um estado Desativado. WPI Robotics Library-DriverStation Arcade Drive Exemplo (2010) WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick Tank Drive Exemplo (2010) WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick Holony ou Mecanum Drive Exemplo (2014) WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick CAN Tank Drive Exemplo (2010) - Observe que as bibliotecas LabVIEW CAN devem ser baixadas do FRC SourceForge CAN Project. E copiado para c: Arquivos de Programas Instrumentos NacionaisLabVIEW 8.6usr. lib As novas bibliotecas aparecerão no menu Funções depois que o LabVIEW for reiniciado. Bibliotecas de usuários - CANJaguar para LabVIEW WPI Robotics Library-DriverStation-Joystick Safety vis (2011) - isso é totalmente opcional, mas é ativado por padrão no Open2Motor e Open4Motor vis. Você deve codificar em um determinado estilo para usá-lo, essencialmente, você deve projetar o seu código para chamar um dos jogadores de base (ArcadeTankHolonomic) mais rápido do que todos os .1 segundos (toda vez que você recebe um pacote de dados do DS funciona bem). Se você não sabe como aproveitar e achar o robô mantém bloqueado, então você deve Desativá-lo para que seu robô não esteja morto durante uma competição. WPI Robotics Library-RobotDrive Drive Abrir 2 Motor. vi Drive Open 4 Motor. vi Watchdog (2010) - este User Watchdog não é mais usado e é totalmente opcional. Se você não sabe como tirar proveito disso e você se encontra apenas atirando em Feeds em todo lugar até o robô parar de bloquear, então você deve Desativá-lo ou removê-lo completamente. O User Watchdog deve SOMENTE ser usado nos caminhos críticos de Autonomous Independent. vi Teleop. vi e somente em fluxos de dados que seriam perigosos se os motores do robô fossem executados de forma incontrolável. NUNCA use Watchdog em Tarefas Periódicas. vi, a menos que não seja absolutamente usado em qualquer outro lugar. WPI Robotics Library-Utilities-Watchdog Valor inicial (2010) - Esta é apenas uma maneira de alimentar um valor inicial em um vi. Isso só será verdadeiro na primeira vez que se chama. Ele pode alimentar uma declaração de caso booleano ou qualquer outra estrutura booleana que você gosta. Programação - Programação de sincronização - comparação Recorde o valor máximo (2010) - É assim que você pode observar e salvar o valor máximo (ou mínimo) recebido de um fluxo de entrada. Programming-Structures Programming-Comparison Button Action Once Only on Press (2010) - este e os seguintes exemplos de botão podem ser usados ​​com sensores internos como o gatilho não apenas com joysticks. WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick Programação-Estruturas Programação-Comparação Programação-Cluster, Classe, Variante Botão Ação Uma vez em versão (2010) WPI Robotics Library-DriverStation-Joystick Programação-Estruturas Programação-Comparação Programação-Cluster , Classe, botão Variant Ação Uma vez somente em Pressione e em versão (2010) Biblioteca WPI Robotics-DriverStation-Joystick Programação-Estruturas Programação-Comparação Programação-Cluster, Class, Variant Button Toggle Action (2014) - um exemplo usa um caso para separar ações. Um exemplo de uso aproveita o fato de que o botão será 0 ou 1 e usará um exclusivo Exclusivo ou para executar a alternância cada vez que o botão for pressionado. WPI Robotics Library-DriverStation-Joystick Programação-Estruturas Programação-Comparação Programação-Cluster, Classe, botão Variant Início da ação temporizada (2010) - os atrasos cronometrados usados ​​aqui como exemplo podem ser substituídos por sensores que contam positivamente quando o mecanismo é Inclinado ou acabou de disparar. WPI Robotics Library-DriverStation-Joystick Programação-Estruturas Programação-Comparação Programação-Cluster, Classe, Variante Qual botão foi empurrado (2011) - Útil para decidir qual dos vários botões joystick ou Driver Station personalizados foi pressionado. Isso age com base em qual de uma série de botões foi pressionada. O botão de número mais baixo ganha se vários forem pressionados de uma só vez. WPI Robotics Library-DriverStation-Enhanced IO Programming-Structures Programming-Arrays Programming-Numeric Programming-Boolean Two or More Button On-Off (2013) - Isso lembra o último valor definido por um botão. Adicione tantos botões quanto quiser para várias configurações de energia. A implementação alternativa usando instruções de caso é mostrada no final. Pode ser usado com ponto flutuante, enum (por exemplo, Solenóides de Relé) ou qualquer outro tipo de dados exigido pelo tipo de dispositivo que está sendo configurado. Programação-Estruturas Programação-Botão de comparação Incremento de energia (2014) - Isso aumenta ou diminui a energia para um motor sempre que um dos botões é pressionado, de modo que aumenta o poder de um passo com cada pressão. Programação-Estruturas Programação-Comparação Último botão Pushed (2011) - Isso lembra o último botão pressionado. Pode ser usado com menos botões, mas este exemplo mostra o uso do número máximo de botões provenientes da Estação Driver. Isso também pode ser usado com a Compatibilidade de Estação de Driver IO. WPI Robotics Library-DriverStation-Enhanced IO Programming-Structures Programming-Numeric Programming-Boolean Limit Switch (2010) WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-IO-DigitalInput Programação-Estruturas Programação-Comparação de programação-Boolean Limit Throttle (2010) - este exemplo funciona SOMENTE no Teleop. vi porque depende da taxa regular de 50 Hz na qual o Teleop. vi é chamado. O mesmo pode ser feito em outros lugares, mas você precisa adicionar um atraso regular de 20ms. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Atuadores-MotorControl Programação-Curva de resposta do Joystick numérico (2010) - o exemplo é uma curva de resposta em cubo simples WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Atuators-MotorControl Programação-Comparação de programação - Numeric Joystick Deadband (2014) - Como lidar com um joystick desleixado que não retorna exatamente a zero quando lançado. No primeiro exemplo, o joystick é ignorado dentro da faixa morta (.1 a -.1 neste exemplo) e fora dessa banda entrega energia do motor de 0 a 1. O segundo exemplo tem a mesma faixa morta, mas trunca a saída do motor entre. 1 e 1 (ou -.1 e -1), então nenhuma potência de 0,05 já aparece. Isso é bom para dispositivos, como drivetrains, que não se moverão com menos de .3 de qualquer maneira. Ele dá ao joystick um pouco mais de alcance. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Atuadores-MotorControl Programação-Comparação Programação-Numérico Tensão Corrigido Tank Drive Exemplo (2012) - esta é uma maneira simples de tornar a sua unidade controla a resposta um pouco mais consistente WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick Switch de 3 posições (2010) WPI Robotics Library-IO-DigitalInput Programação-Comparação Programação-Numérico Digital 0-9 BCD Switch (2010) WPI Robotics Library-IO-DigitalInput Programming-Boolean Programming-Array Analog Switch (2010) - exemplo de usar entradas analógicas como um interruptor de posição múltipla WPI Robotics Library-IO-AnalogChannel Programação-Comparação de programação-Booleana Escrever Mensagem para o Driver Station (2010) WPI Robotics Library-DriverStation Programação-String Programming-String-StringNumber Conversão Escrever dados em disco (2010) Programação-Arquivo IO Programação-Arquivo Constantes de Arquivo IO Escrever Imagem em Disco (2010) Programação-Arquivo IO Programação-Arquivo Arquivo IO Constantes PRIMER Vision-Image Management Tachometer (2010) - assume um sensor digital, como um sensor de luz retro-reflexivo, é usado para detectar um objeto giratório. Um cuidado sobre o Counter - pode produzir valores revoltos ou falsos na inicialização, então seja cuidadoso e examine os resultados quando você o usa pela primeira vez. WPI Robotics Library-Sensors-Counter Encoder (2010) Só permite que quatro codificadores sejam amostrados em 4x, mas muitos em 2X. WPI Robotics Library-Sensors-Encoder WPI Robotics Library-IO-Digital Input Gyroscope (2010) WPI Robotics Library-Sensors-Gyro Accelerometer (2010) WPI Robotics Biblioteca-Sensores-Acelerômetro Sensor ultra-sônico - MaxBotix EZ1 Sonar (2012) WPI Robotics Library-IO - Sensor Ultrasônico AnalogChannel - Somente para o sensor emissor pareado Vex-style (2010) WPI Robotics Library-Sensors-Ultrasonic I2C Sensor (2010) - isso usa um Hitech I2C Compass para o exemplo WPI Robotics Library-Communications-I2C Programming-Array Programming-Numeric - Data Manipulation Counting Things (2012) WPI Robotics Library-IO-DigitalInput Programação-Estruturas Programação-Comparação de programação-Boolean Moving Average (2010) - Você chama este subvi para adicionar um novo valor com cada chamada e produz a média em uma janela Das últimas n amostras. Diga-lhe o número de valores (n) em média apenas com a primeira chamada, depois disso, essa entrada é ignorada. Ele também permite que você saiba quando você alcançou um conjunto completo de valores. Este exemplo ilustra a inicialização, o seqüenciamento para evitar valores de clausulação à medida que os usa, salvaguardando a alteração de entradas que não podem ser alteradas, manipulação de matriz e criação de um índice de ciclagem. O LabVIEW tem alguns filtros internos que fazem o trabalho para você localizado na paleta Funções sob Processos de processamento de sinal. Programação-Programação de matrizes - Estruturas Programação-Programação de comparação-Programação numérica-Programação de conversão numérica-Programação booleana - Sincronização de máquina de estado (2010) - a idéia aqui é que você deseja fazer coisas diferentes com base em um estado particular que seu programa está rastreando. Neste exemplo, você adicionou algum tipo de atividades para cada estado, como ativar solenóides ou motores. Os estados podem mudar de acordo com o feedback do sensor, como um sensor de bola. WPI Robotics Library-DriverStation-Joystick Programming-Structures Programming-Comparison Programming-Numeric Delayed Event (2010) - isso é para uso em vis iterativo, como o Teleop, e simplesmente pode iniciar uma ação, então pare n segundos depois. Esse tipo de ação também pode ser executado para você pelo tempo transcorrido vi. WPI Robotics Library-DriverStation-Joystick Programação-Estruturas Programação-Comparação Programação-Programação de temporização-Programação numérica-Conversão numérica P (ID) Exemplo (2010) - Este código escapa uma panela no robô para o eixo dos x de um joystick via Feedback proporcional. Não são usados ​​os termos I ou D. A maior parte do trabalho aqui é apenas a parte que mapeia a gama completa do movimento do joystick para o sensor do potenciômetro do motor de direção (pote). A parte PID é bastante simples. A parte mais difícil é ajustar o coeficiente P, experimentando com o robô real. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-IO-AnalogChannel WPI Robotics Biblioteca-Atuadores-MotorControl Programação PID-Exemplo de câmera numérica (estilo de 2009 que funcionaria, como é, em 2010s Periodic Tasks. vi) O Framework 2010 já possui A câmera embutida, WPI Robotics Library-Camera FIRST Visão-Gerenciamento de imagem Programação-Estruturas Interrupção (2010) O uso disso será raro, mas isso pode ser usado com uma entrada digital ou um disparador analógico. WPI Robotics Library-Utilities-Interruptions WPI Robotics Library-IO-DigitalInput Equations (2010) Programação-Matemática numérica-Elementar Funções especiais-Funções trigonométricas Programação-Estruturas O nó de fórmula permite a inserção de um subconjunto muito bom de C. Não só Você também pode escrever equações, mas loops e código condicional. Calhando o código C (2014) Para chamar funções C do LabVIEW, você pode criar uma biblioteca de fontes C e, em seguida, chamar essa biblioteca usando uma função de biblioteca de chamadas. Variações simples em autônomo autônomo independente. vi podem ser múltiplas tarefas paralelas. Por exemplo, as duas amostras seguintes podem coexistir bastante confortavelmente no mesmo vi. Duas seqüências independentes que operam ao mesmo tempo, uma que dirige o robô enquanto a outra pisca uma luz de estado do solenóide. Este caso é bastante simples, no entanto, ele ilustra que tarefas mais paralelas independentes e complicadas, como esta é possível. Talvez um robô malabarista enquanto navega por um labirinto. Sequência plana - Provavelmente o método mais simples de programação de uma seqüência fixa de movimentos autônomos. Tudo dentro de um quadro deve ser concluído antes do próximo quadro começar. Tem a aparência do filme. (2012): Loop - Se houver uma ação ou conjunto de ações, você só quer continuar repetindo, desde que o Modo Autônomo dure, você pode fazer algo assim. Este exemplo apenas funciona com um solenóide, abrindo-o e fechando-o repetidamente. Se nenhum solenóide estiver realmente ligado, então você ainda terá uma luz piscando no módulo solenóide. Isso pressupõe que o User Watchdog não seja usado ou seja tratado em outro lugar (2010): Copyright copy 2005 - 2017 Hauppauge Robotics. Todos os direitos reservados. Sobre este site.

Comments