You are on page 1of 40

Um evento com propósito

Embarcadero Conference
2020 Online

Delphi e C++Builder
no Ensino
Universitário
Victory Fernandes
Amo Delphi desde 1998!
Embarcadero MVP;
Msc. Medicina-Neurociências
Engenheiro Eletricista
CTO TKS Software

Prof. Univesitário nos cursos de


Eng. Mecatrônica, Elétrica e
Mecânica de 2006 a 2015
Ensinar Engenharia
??????
• Análise de matriz curricular e exemplos
simples de como algumas disciplinas
podem se beneficiar dos recursos do
Delphi e C++Builder
• Capacitar e formar os alunos em uma
ferramenta moderna e muito poderosa

com Delphi!
Ensinar Engenharia

http://www.senaicimatec.com.br/wp-content/uploads/2016/07/Matriz-
Curricular-Eng-El%C3%A9trica-2020-1.pdf
Ensinar Engenharia

http://www.senaicimatec.com.br/wp-content/uploads/2016/07/Matriz_Engenharia-de-Controle-e-Automa%C3%A7%C3%A3o-2020.pdf
Ensinar Engenharia

http://www.senaicimatec.com.br/wp-content/uploads/2016/07/Matriz_-Engenharia-de-Computa%C3%A7%C3%A3o_2020.pdf
Ensinar Engenharia

http://www.senaicimatec.com.br/wp-content/uploads/2016/07/Matriz-Enga-Automotiva-2020.pdf
Introdução a Lógica de Programação
• Conteúdo Programático Típico
• Algorítmos e lógica de programação
• Elementos básicos: constantes, variáveis, operadores relacionais e lógicos, expressões
aritméticas e lógicas, precedência de operações, comando de atribuição
• Estruturas de controle de fluxo (IF, DO, WHILE, FOR, GOTO, etc)
• Entrada e saída de dados
• Vetores e Matrizes
• Recursão, Estrutura de dados
• Orientação a Objetos: Objeto, Classe, Método, Atributo, Herança etc
“Fala sério!”
Introdução a Lógica de Programação
• Comum a quase todos os cursos da área, primeiro contato do aluno tem com lógica,
algorítmo e linguagem de programação
• É importante firmar conceitos básicos, mas estamos fazendo da melhor maneira?
Introdução a Lógica de Programação
• Porque não desfrutar dos recursos RAD? Porque insistir em prompts de comando?
• Porque não uma linguagem moderna e multiplataforma? Windows, MacOS, iOS Android
Lógica de Programação e Cálculo
• A população de uma cidade X é três vezes maior que a população da cidade Y.
• Se somarmos a população das duas cidades, teremos um total de 200.000 habitantes. Qual
é a população da cidade X?

x = 3y
x + y = 200000
Lógica de Programação e Cálculo
• A população de uma cidade X é três vezes maior que a população da cidade Y.
• Se somarmos a população das duas cidades, teremos um total de 200.000 habitantes. Qual
é a população da cidade X?

x = 3y
x + y = 200000

1x - 3y = 0
1x + 1y = 200000
Lógica de Programação e Cálculo
• A população de uma cidade X é três vezes maior que a população da cidade Y.
• Se somarmos a população das duas cidades, teremos um total de 200.000 habitantes. Qual
é a população da cidade X?

x = 3y
x + y = 200000
• x + y = 200000
3y + y = 200000
4y = 200000
y = 200000/4
y = 50000

• x = 3y
x = 3 * 50000
x = 150000
Método numérico de Eliminação de Gauss
• Entrada de dados: Aguarda entrada de dados por parte do usuário
• Teste: Matriz de coeficientes deve ser quadrada
• Inicialização: Prepara as variáveis do array que serão usadas para resolver o problema
• Entrada: Copia todos os valores do Stringgrid para os arrays usados para resolver o problema
• Ordem: Encontra ordem e o valor de escala para cada linha da matriz de coeficiente inserida
• Eliminação: Execute o processo de eliminação de Gauss
• Substituição: Volte encontrando as soluções para sistema de equações lineares
• Saída de Dados: Apresenta em um segundo Stringgrid as soluções encontradas
Lógica de Programação e Cálculo
Entrada, Teste, Eliminação, Substituição, Saída

begin x(n)=b(n)/a(n,n);
Integer: i,k,j,n,s ; for k=(n-1) to 1 do
Real: m; s=0;
for j=(k+1) to n do
tipo a = matrix (1..n,1..n) ; s=s+a(k,j)*x(j);
tipo b,x = vector (1..n); endfor;
x(k)=(b(k)-s)/a(k,k);
for k=1 to (n-1) do endfor;
for i = k+1 to n do end.
m=a(i,k)/a(k,k);
a(i,k)=0;
for j=k+1 to n do
a(i,j)=a(i,j)-m*a(k,j)l
b(i)=b(i)-m*b(k);
endfor;
endfor;
endfor;
Eletrônica Digital
• Bases numéricas (Binária, Decimal, Hexadecimal), conversão entre bases
• Relações com tipos de variáveis e consumo de memória

• Sistema de Base 2
0e1
Sim e Não
Ligado e Desligado
Verdadeiro ou Falso

• Bit = Binary Digit


• 8 Bits = 1 Byte (Bynary Term)
• 4 Bits = 1 Nibble
• 16 Bits = 1 Word
Eletrônica Digital
• Bases numéricas (Binária, Decimal, Hexadecimal), conversão entre bases
• Relação com conceitos como tabela ASCII, código de cores etc

4710 = 1011112
Eletrônica Digital
• Comunicação com equipamentos
• As balanças de pesagem transmitem informações https://youtu.be/cW6eVBIVMHs
obedecendo a um protocolo. A Interpretação dos
bits e bytes da mensagem determina a
informação transmitida:
• Mensagem Protocolo TOLEDO
• STX,SWA,SWB,SWC,I,I,I,I,I,I,T,T,T,T,T,T,CR,(CS)
• STX – Start of Text: Valor 02 é apenas um byte de
sincronia da comunicação.
• SWA – Status Word “A”: Os bits 2, 1, 0 indicam a
configuração de precisão da balança
001 = x 10
010 = x 1
011 = x 0.1
100 = x 0.01
101 = x 0.001
110 = x 0.0001
• Os bits 4 e 3 indicam a configuração de tamanho
do incremento da balança
01 = Tamanho do Incremento 1
10 = Tamanho do Incremento 2
11 = Tamanho do Incremento 5
Eletrônica Digital

http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=288&mode=thread&order=0&thold=0
Eletrônica Digital
• Bases numéricas (Binária, Decimal, Hexadecimal), conversão entre bases
• Relações com controle de motor de passo via porta paralela

https://youtu.be/lA8UXTAUJF8
Eletrônica Digital
• Portas Lógicas (NOT, AND, OR, NAND, NOR, XOR, XNOR)
• Relações com sistemas CRUD
Eletromagnetismo
• Prática de Distribuição de cargas em Cuba Eletrolítica
• Mapeamento de campos elétricos equipotenciais com placas placas e cargas cilindricas
Eletromagnetismo
• Prática de Distribuição de cargas em Cuba Eletrolítica
• Mapeamento de campos elétricos equipotenciais com placas placas e cargas cilindricas
Visão Computacional
• Comunicação com Kinect - Tema da minha palestra na EC2011

https://youtu.be/Cu-Te2ImIrA
https://youtu.be/v34a8Oy5gO8
Redes e Automação Industriais
• Comunicação com ARDUINO - Tema da minha palestra na EC2012-2015-2016
• Acionamento de dispositivos via apps feitos em Delphi

+
+ =
https://youtu.be/DazKxZ2RzQc - https://youtu.be/3d3Oqbc6peA
Visão Computacional
• Futebol de Robôs - Tema da minha palestra na EC2017

https://youtu.be/U2-73rADBiM
Microcontroladores
• Comunicação ModBUS - Tema da minha palestra na EC2018
• Comunicação com equipamentos em redes industriais

https://youtu.be/3T-qKtq1xIk
https://youtu.be/zb8MFc5kKRg
EQUIPAMENTO MÉDICO PORTÁTIL PARA
ACOMPANHAMENTO DO COMPROMETIMENTO MOTOR
EM PACIENTES COM DOENÇA DE PARKINSON

Victory Fernandes
Dissertação de Mestrado 2014

Orientador: Prof. Dr. Ailton Melo


Co-Orientadora: Profa. Dra. Ana Caline Nóbrega
Apoio:
Há uma grande necessidade de
métodos que possam medir com
precisão o comprometimento
motor do paciente com Doença
de Parkinson (DP) e sua de
resposta ao tratamento, com base
em parâmetros quantitativos e
objetivos.
Parkiglove
• Projeto premiado 1o no Concurso promovido pela FAPESB - R$8.000,00
• Projeto financiado pela FAPESB - R$400.000,00
• Solicitação de Patente
• Projeto contemplado para incubação pela SECTI
• Projeto premiado pelo XXV Congresso Brasileiro de Anatomia
• Tema aprovado para mestrado no departamento de medicina da UFBa
• Dissertação apresentada e aprovada
Parkiglove
• Objetivo
• Projetar, construir e validar equipamento portátil que permita realizar triagens e
acompanhamento da eficácia de tratamentos medicamentosos ou
procedimentos terapêuticos de pacientes com Doença de Parkinson (DP).

• Justificativa
• DP acomete 1 a 2% de indivíduos acima de 60 anos
• Variabilidade de manifestação dificulta o definição de padrões
• Frequência típica de tremor de 3 a 6Hz
• Qualidade de vida é reduzida pelo avanço da doença e surgimento de efeitos
colaterais das drogas
• Necessário avaliação continuada do comprometimento
• Hoehn-Yahr, UDPRS e outros métodos são qualitativos, subjetivos e avaliador
dependente
Parkiglove - Arquitetura
• TAUE-cjw 3.7V; 5,200mAh Li-ion
• Sparkfun microSD breakout board; até 4GB flash-50MB/sec
• mBedTM LPC1768 32KB RAM, 512KB FLASH, 32-bit, 96MHz ARM® Cortex™-M3; Até oito
entradas ADC de 12bits cada; Firmware embarcado desenvolvido em C
• Mallory Sonalert MSS5M1 speaker (8Ω; 0.25W); IEC 60601-1-8
• ADXL335, 3-Axis accelerometer, weight 1.45g, size 20mm×20mm×2mm, low power
350μA, 1.8V to 3.6V
Sistema de gestão e análise dos resultados desenvolvido em Delphi + Firebird

battery

sound Aplicação Delphi!


microSD processing unit
unit

accel 1 accel 2
Parkiglove - Ensaios
• Tacômetro Digital Minipa MDT-2238A; Resolução de 0.1RPM; Precisão de ±0.05%+1; Fixado
em tripé; Distância 300mm; Acionamento operador independente
20 amostras simultâneas; Mínimo conforme QS-9000 MSA- Measurement Systems Analysis 4th
edition; Frequências de 1,6Hz, 4,8Hz, 5,3Hz, 6,3Hz e 8,3Hz; Descarte de transientes
Action Statistical Software baseado QS-9000 MSA- Measurement Systems Analysis 4th edition
Licença Pública Geral GNU (www.portalaction.com.br)
Teste de outliers pelo método de Grubs
Teste ANOVA de Repetibilidade de Reprodutibilidade considerando modelo operador
independente
Parkiglove - Resultado
• Desvio padrões menores do PG em relação ao padrão ouro podem indicar sistema testado
com menor erro
• Tendência existe e é estatísticamente significativa; Média 0,0072Hz; Máximo 0,0116Hz;
Considerando tolerância absoluta de 0,05Hz como aceitável
• Cálculos resultaram em 1% de RR; De acordo com QS-9000 valores de RR inferiores a 10%
indicam que o sistema é aceitável/recomendado
• Entrega de 4 kits completos para estudos futuros na Universidade com propostas de
validação em anima nobile utilizando como padrão ouro eletromiografia de superfíci e
Estudo de Teste Diagnóstico
Parkiglove - Resultados
Parkiglove - Resultados
Parkiglove - Resultados
Perguntas?
victoryfernandes@yahoo.com.br

www.tkssoftware.com/victory

You might also like