Este robô foi o meu projeto de conclusão de curso, apresentado em jun/2010.
O projeto é composto por 3 módulos:
- Mecanismos mecânicos (servos, chapas de alumínio, eixos de aço, base em MDF) projetados no Solid Works e "feito em casa".
- Software para identificação das cores (C++ Builder)
- Placa de controle projetada no Altium Designer, fabricada por empresa profissional e "montada em casa", composta por 2 microcontroladores PIC (18F8722 no qual foi programado o algoritmo da solução do cubo e um 16F876A que gera os sinais de PWM para os 10 servos)
Funcionamento:
O software fotografa os 6 lados do cubo montado e gera faixas de RGB para cada cor com a iluminação ambiente. Para cada lado, é enviado um comando serial para a placa de controle, que posiciona o cubo para cada foto.
O cubo é "bagunçado", e o software decompõe a cor de cada uma das 54 faces (RGB) e identifica a cor comparando com as faixas determinadas na etapa anterior.
É enviado um vetor com as 54 cores via serial RS232 para o microcontrolador que assume daí em diante.
O algoritmo de montagem é um dos mais simples encontrados no google. É a solução #1 deste site http://unesp.br/~jroberto/rubiks
A programação dos microcontroladores foi em linguagem C, um pouco mais de 3000 linhas.
O tempo de solução varia entre 10 e 13 minutos.
-------------------------------------------------------------------------------------
This robot was my graduation conclusion project, presented in 2010 June.
The project consists in three modules:
- Mechanical mechanisms (servos, aluminum sheets, steel axles, based on MDF) designed in Solid Works and "home made".
- Software for identifying the colors (C++ Builder)
- Printed Circuit Board designed in Altium Designer, made by professional company and "soldered at home," composed of two microcontrollers (PIC 18F8722 in which was programmed the algorithm of solving the cube and a 16f876A that generates the PWM signals for the 10 servos)
Operation:
The software photographs the 6 sides of the solved cube and generates ranges of RGB for each color at the ambient lighting. For each side, a serial command is sent to the control board, which positions the cube for each photo.
The cube is messed up, and the software decomposes the color of each one of the 54 faces (RGB) and identifies the color comparing it to the bands determined in the previous step.
It sent a vector with the 54 colors via RS232 to the microcontroller that takes the control thereafter.
The assembly algorithm is one of the simplest found in google. It is the #1 solution of this website http://unesp.br/~jroberto/rubiks
Programming microcontrollers in C language was a little over 3000 lines.
The solution time varies between 10 and 13 minutes.
Hi there Awesome Work ..!! Olá!... grande trabalho..!! ... What software did you use to build this?
Did you use FPGA's?
dingodanyoung 11 months ago
The software (just for the color recognition) was C++ Builder (Borland).
I used just microcotrollers (2 PICs), no FPGAs.
vitorprc 11 months ago
Dude, is this the work of just one person?
jaspers22 11 months ago
Two people!
vitorprc 11 months ago
Great work man!
Two pieces of advice: 1. don't go looking for a job when you've graduated. and 2. Start a business... join one in partnership!
Also, have these things done in English to benefit the wider audience.
taimooribhatti 11 months ago
Thanks for the prise and the advices!!
vitorprc 11 months ago