PROJETO / 011 / MECÂNICA + SOFTWARE

6ear

Precision in Motion

Um problema real de oficina que começou com combinações de engrenagens e terminou como aplicativo para Windows e Android.

STATUS
● FUNCIONAL / HISTÓRICO
ORIGEM
MAIO DE 2025 / CURSO DE MECÂNICA
PLATAFORMAS
WINDOWS / ANDROID
LICENÇA
MIT
Marca final do 6ear, desenhada por mim no sK1 e preservada em seu arquivo vetorial original.

O código começou entre fresadoras e engrenagens.

O 6ear nasceu durante um curso de mecânica, em maio de 2025. O problema vinha de duas máquinas reais: as fresadoras Sanches Blanes e Victória, cada uma com seu próprio conjunto físico de engrenagens.

Para alcançar uma relação de transmissão, era preciso escolher uma montagem suficientemente próxima do valor desejado e dentro de uma tolerância. O software surgiu para pesquisar essas possibilidades antes da montagem na máquina.

A origem do problema: cálculos de engrenagens registrados durante as aulas de mecânica.
Sanches Blanes e o aparelho divisor. O acervo recuperado não contém uma fotografia equivalente da Victória.

A pergunta que virou programa.

Às 09:08 de 6 de maio, a dúvida ainda era de análise combinatória: com doze tipos de engrenagens e repetição, quantas possibilidades surgiriam ao combinar pares? Esse registro preserva praticamente o nascimento do projeto.

A pergunta rapidamente ganhou entradas concretas: escolher a fresadora, informar uma relação alvo e uma tolerância, testar arranjos e ordenar os resultados por abs(r - target).

06/05/2025, 09:08 — o registro que antecedeu a primeira implementação.

De uma conta recorrente para uma ferramenta em Tkinter.

A primeira implementação usava Python, Tkinter e itertools.product(). Começou com a Sanches Blanes e pesquisava configurações de um, dois ou três pares, exibindo primeiro as relações mais próximas do alvo.

1 PAR / 2 ENGRENAGENSr = z2 / z1
2 PARES / 4 ENGRENAGENSr = (z2 / z1) × (z4 / z3)
3 PARES / 6 ENGRENAGENSr = (z2 / z1) × (z4 / z3) × (z6 / z5)

A tela desktop preservada abaixo já pertence a uma etapa posterior: ela permite alternar entre Sanches Blanes e Victória. Não é a primeira interface, mas registra a evolução da versão Tkinter.

Desktop v1: seleção da máquina, relação alvo, tolerância e resultados por quantidade de pares.

Repetir um número não cria uma engrenagem física.

A primeira aproximação permitia repetição matemática. Na oficina, porém, cada número de dentes tinha uma quantidade disponível. Havia duas engrenagens de 24 dentes, enquanto vários outros tamanhos tinham apenas uma unidade.

A posição também importa: 24 → 36 não produz a mesma relação que 36 → 24. Ao mesmo tempo, trocar duas peças fisicamente idênticas de 24 dentes não deve criar um resultado artificialmente diferente.

A evolução passou a representar o estoque como pares (dentes, quantidade), gerar ordens com itertools.permutations() e validar ocorrências com collections.Counter. Assim, nenhuma resposta utiliza mais unidades do que a máquina realmente possui.

ESCALA DO PROBLEMA

Com até seis posições, o espaço de busca chegou a centenas de milhares ou milhões de sequências. Contagens históricas divergiram durante o desenvolvimento; por isso, o acervo registra a ordem de grandeza sem fixar um total não recalculado.

A ferramenta precisava acompanhar a oficina.

Em 7 de maio, cerca de um dia após as primeiras experiências, já se discutia levar o programa ao celular. Tkinter atendia ao desktop, mas não ao Android; a interface foi então reimplementada em Kivy.

O primeiro estágio mobile era funcional e ainda bruto: widgets quase padrão, grandes áreas vazias e pouca hierarquia. A direção já estava definida — relação e tolerância entravam no topo; os resultados apareciam abaixo.

Primeira interface Kivy: funcional, mas ainda distante da composição final para smartphone.

Fazer o app foi uma coisa. Gerar o APK foi outra.

Depois de executar a aplicação em Kivy, começou a batalha para transformá-la em um APK instalável. Houve apoio do Manus AI nas tentativas iniciais, mas a compilação direta esbarrou em configuração do buildozer.spec, Java/JDK, Android SDK e NDK, Autoconf, Automake, Libtool, libffi e dependências nativas.

Uma compilação permaneceu por horas sem progresso útil. A saída prática foi usar o Google Colab como ambiente Linux e organizar um notebook capaz de instalar dependências, configurar Buildozer, preparar o projeto, compilar e localizar o APK.

O projeto recuperado também voltou a ser distribuível. A versão histórica v2.0.0 foi publicada no GitHub com os binários preservados para Windows e Android, permitindo baixar diretamente o executável desktop e o APK. Esses arquivos correspondem ao projeto desenvolvido originalmente em maio de 2025 e recuperado para publicação em 2026.

Quando o cálculo travou a interface.

O aumento do espaço de busca tornou o processamento perceptível. Executar tudo na thread da interface podia congelar o Kivy; mover toda a rotina para outra thread também não funcionava, porque widgets e instruções gráficas não devem ser criados fora da thread principal.

THREAD PRINCIPAL

Lê os campos e a máquina selecionada, desabilita controles e inicia o trabalho.

WORKER THREAD

Gera permutações, valida o estoque, calcula e ordena apenas dados Python.

RETORNO À INTERFACE

Clock.schedule_once(...) entrega os dados para criar labels e reabilitar os controles.

APRENDIZADO CENTRAL

Threads não foram apenas uma otimização. A separação entre cálculo e interface foi um dos principais marcos do projeto e uma experiência prática com concorrência em Python.

Do protótipo Kivy para uma tela pensada para toque.

A seleção migrou de CheckBox para ToggleButton; medidas passaram a usar dp() e tipografia em sp; campos e botão ganharam áreas maiores; ScrollView, GridLayout e BoxLayout organizaram uma tela portrait rolável e resultados tabulares.

Antes: muito espaço vazio, controles básicos e resultados pouco hierarquizados.
Depois: seleção clara da fresadora, entradas de toque, ação destacada e resultados em tabela.

Software e mecânica continuaram no mesmo processo.

O programa não substituía a compreensão da máquina. Ele transformava uma etapa de pesquisa em ferramenta, enquanto as aulas continuavam lidando com divisão, fresamento, montagem e fabricação de engrenagens reais.

Fabricação de uma engrenagem durante a aula prática: o contexto material que deu sentido ao software.

Uma das primeiras experiências significativas com Python.

Em poucos dias, um problema de oficina exigiu análise combinatória, modelagem de estoque, interfaces desktop e mobile, responsividade, processamento concorrente e distribuição em dois ambientes.

Python deixou de ser apenas linguagem de exercício: product, permutations e Counter passaram a representar decisões físicas; Tkinter e Kivy mostraram abordagens diferentes de interface; threads e Kivy Clock ensinaram a respeitar a fronteira entre processamento e UI; PyInstaller, Buildozer, python-for-android e a toolchain Android mostraram que distribuir software também faz parte do trabalho.

Ferramentas de IA participaram como apoio e aprendizado, inclusive com sugestões de conceitos visuais. A marca final, porém, foi desenhada por mim no sK1; o arquivo vetorial original .sk2 foi preservado junto às versões históricas do projeto.

LinguagemPython
DesktopTkinter / PyInstaller
MobileKivy
Android buildBuildozer / python-for-android
Cálculo1, 2 ou 3 pares de engrenagens
MáquinasSanches Blanes / Victória
CritérioRelação alvo + tolerância
Processamento mobileWorker thread + Kivy Clock
LicençaMIT

O primeiro commit não é o começo da história.

O código foi reencontrado em arquivos antigos e em um backup do celular. Quatro variantes — desktop v1.0, desktop v2.0, Android v1.0 e Android v2.0 — foram organizadas em um repositório moderno.

Esse repositório preserva o material, mas não finge possuir um histórico Git que não existe. Seu primeiro commit representa uma importação histórica; o desenvolvimento original aconteceu em maio de 2025.

O 6ear quase permaneceu perdido em pastas antigas. Recuperá-lo materializa uma das ideias centrais da Galeria -2048: construir para entender e documentar para não deixar o aprendizado desaparecer.

A pergunta inicial

Uma dúvida de análise combinatória sobre doze tipos de engrenagens deu início ao programa.

Desktop e mobile

A implementação em Tkinter já resolvia relações, enquanto começava a discussão sobre levar a ferramenta para o celular.

O desafio do APK

Buildozer, python-for-android e a toolchain Android exigiram várias tentativas até a compilação prática no Google Colab.

Versão 2.0 e threads

Estoque físico, permutações e processamento em uma worker passaram a aproximar o resultado da oficina sem congelar a interface.

Interface Kivy amadurecida

A navegação, os controles de toque e a apresentação tabular consolidaram a versão mobile preservada.

Recuperação do acervo

Quatro variantes históricas foram reunidas e publicadas sem inventar um histórico Git para o desenvolvimento original.

[ RELEASE HISTÓRICA / v2.0.0 ]

O código e os binários voltaram a fazer parte do acervo.

A release reúne os artefatos históricos recuperados. O APK é distribuído diretamente pelo GitHub; não se trata de uma publicação em loja ou de uma build comercial.