SlideShare uma empresa Scribd logo
1 de 15
Lightning Talks 2013
Torturando números para
que confessem o sumiço
das cervejas
MAURO ASSIS
• Técnico em Instrumentação e Controle pelo
COLTEC/UFMG
• Engenheiro Agrícola pela UFV
• MBA em Gestão de Projetos pela FGV
• Programalista desde sempre
O PROJETO
• Repositor de cascos de cerveja em uma linha de
processamento de caixas
• Esteira transportadora
• Sensores de ultrassom
• Magazine de reposição
DADOS BRUTOS COLETADOS

4500
4000
3500
3000
Series1

2500

Series2

2000

Series3

1500

Series4

1000
500
1
16
31
46
61
76
91
106
121
136
151
166
181
196
211
226
241
256
271

0
1
5
9
13
17
21
25
29
33
37
41
45
49
53
57
61
65
69
73
77
81
85
89
93
97
101
105
109
113
117
121
125
129
133
137
141

TORTURA 1: CORTANDO
EXTREMIDADES
1600

1400

1200

1000

800

600

400

200

0
1
4
7
10
13
16
19
22
25
28
31
34
37
40
43
46
49
52
55
58
61
64
67
70
73
76
79
82
85
88
91
94
97
100
103
106
109
112
115
118
121

TORTURA DOIS: MÉDIAS MÓVEIS
1600

1400

1200

1000

800

600

400

200

0
TORTURA 3: LIMIAR
1.2

1

0.8

0.6

0.4

0.2

0
1

5

9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 101105109113117121
http://playground.arduino.cc/Main/DigitalSmooth
int digitalSmooth(int rawIn, int *sensSmoothArray)
{
int j, k, temp, top, bottom;
long total;
static int i;
static int sorted[filterSamples];
boolean done;
i = (i + 1) % filterSamples;
sensSmoothArray[i] = rawIn;
for (j=0; j<filterSamples; j++){

// transfer data array into anther array for sorting and
// averaging
sorted[j] = sensSmoothArray[j];

}

done = 0;
// flag to know when we're done sorting
while(done != 1){
// simple swap sort, sorts numbers from lowest to highest
done = 1;
for (j = 0; j < (filterSamples - 1); j++){
if (sorted[j] > sorted[j + 1]){ // numbers are out of order - swap
temp = sorted[j + 1];
sorted [j+1] = sorted[j] ;
sorted [j] = temp;
done = 0;
}
}
}
// throw out top and bottom 15% of samples - limit to throw out at least one from top and bottom
bottom = max(((filterSamples * 15) / 100), 1);
top = min((((filterSamples * 85) / 100) + 1 ), (filterSamples - 1));
k = 0;
total = 0;
for ( j = bottom; j< top; j++){
total += sorted[j]; // total remaining indices
k++;
}
return total / k; // divide by number of samples
}

Esteira
Torturando numeros para que confessem o sumiço das cervejas

Mais conteúdo relacionado

Mais de Mauro Assis

Visão computacional em embarcados
Visão computacional em embarcadosVisão computacional em embarcados
Visão computacional em embarcadosMauro Assis
 
Internet of Things: The MQTT protocol
Internet of Things: The MQTT protocolInternet of Things: The MQTT protocol
Internet of Things: The MQTT protocolMauro Assis
 
Como treinar o seu tubarão/How to train your shark
Como treinar o seu tubarão/How to train your sharkComo treinar o seu tubarão/How to train your shark
Como treinar o seu tubarão/How to train your sharkMauro Assis
 
Arduino/Raspberry
Arduino/RaspberryArduino/Raspberry
Arduino/RaspberryMauro Assis
 
Linguagens deprogramacao
Linguagens deprogramacaoLinguagens deprogramacao
Linguagens deprogramacaoMauro Assis
 
Eletronica embarcada
Eletronica embarcadaEletronica embarcada
Eletronica embarcadaMauro Assis
 

Mais de Mauro Assis (6)

Visão computacional em embarcados
Visão computacional em embarcadosVisão computacional em embarcados
Visão computacional em embarcados
 
Internet of Things: The MQTT protocol
Internet of Things: The MQTT protocolInternet of Things: The MQTT protocol
Internet of Things: The MQTT protocol
 
Como treinar o seu tubarão/How to train your shark
Como treinar o seu tubarão/How to train your sharkComo treinar o seu tubarão/How to train your shark
Como treinar o seu tubarão/How to train your shark
 
Arduino/Raspberry
Arduino/RaspberryArduino/Raspberry
Arduino/Raspberry
 
Linguagens deprogramacao
Linguagens deprogramacaoLinguagens deprogramacao
Linguagens deprogramacao
 
Eletronica embarcada
Eletronica embarcadaEletronica embarcada
Eletronica embarcada
 

Último

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Torturando numeros para que confessem o sumiço das cervejas

Notas do Editor

  1. This template can be used as a starter file for a photo album.