LEGO Tic Tac Toe Robot (Jogo do Galo)

Para os mais especializados em mecânica e electrónica em LEGO.
Responder
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4449
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

LEGO Tic Tac Toe Robot (Jogo do Galo)

Mensagem por CyberX »

ano novo projecto novo, uns tentam emagrecer e eu acabo a emagrecer a carteira

Estou a frequentar uma formação muito básica de Python. Muito básica mesmo mas aprende-se sempre alguma coisa e como tem trabalhos para justificar a avaliação soomos obrigados a puxar pelo tico (os que não vão ao ChatGPT e pedem que lhes saia um script já feito com comentários e tudo)

Um dos trabalhos finais foi implementar um jogo do galo em modo de texto. Sem algoritmos especiais, o "computador" limta-se a jogar ao acaso contra o "humano". Saiu uma coisa tão pequena que dei por mim a pensar... "isto tem mesmo todo o ar de funcionar em micropython sem precisar de grandes adaptações, podia por um robot LEGO a jogar em vez de ver as jogadas numa grelha de texto a preto e branco no ecran"

Encomendei algumas das worm gears (engrenagens parafusos) que saíram recentemente (6 de comprimento) e enquanto estudava a coisa encontrei um video do Sariel que me deixou de boca aberta porque essencialmente era o que eu tinha pensado fazer só que com uma caneta em vez de uma garra:



por isso só para introduzir alguma novidade abandonei a ideia da garra e fui buscar os ímanes 4x4 que comprei pouco antes do Covid... fiz uns ensaios rápidos e confirmei que tinha pernas para andar pelo que tenho o primeiro protótipo funcional:



um motor para comandar o eixo dos y's (dois eixos, como na plotter do Sariel, tentei só com um mas aquilo mexia-se todo torto - ele usa dois motores em simultâneo, eu uso só um e desdobro o movimento pelos 2 eixos). Comecei com um motor Boost mas arrastava-se, fui para um motor Technic XL

outro motor para comandar o eixo dos x's (a calha atravessada sobre o jogo). Com um motor Boost também, parece ser suficiente.

e finalmente um terceiro motor para comandar o eixo dos z's (o elevador do íman que apanha as peças de jogo). Mais uma vez um motor Boost, mais do que suficiente. Porquê os motores Boost? Porque os tenho, são quase tão pequenos como os que saíram no Spike Essentials, muito mais baratos e fáceis de encontrar no bricklink e suspeito que por dentro são essencilamente o mesmo ou pelo menos muito parecidos.

Para pegar na peça basta descer o elevador com o íman (outra peça, virada ao contrário) até se encostarem e depois elevar. Se quiser largar a peça basta deslocá-la sem subir o elevador e ela fica presa na estrutura de grelha do jogo, soltando-se.

O resto é decoração, à custa de peças que tinha aí (sobretudo vermelho, não costumo usar esta cor mas realmente tinha montes de tiles 8x1 vermelhos do primeiro (e único para mim) Paredes de Coura e bricks Technic também vermelhos que acumulei para o rockodromo e o MILS.

ah e "gestão de cabos". O raio dos cabos entalavam-se no mecanismo e encravavam tudo, tive de fazer uns "postes" para os manter elevados. Feio mas funcional. E sim, estou a usar extensões da PV Creations. A LEGO fez a porcaria dos cabos dos motores Powered UP curtos (ESTUPIDAMENTE curtos) e nunca se dignou fazer extensões como no Power Functions. Há-de haver um infernozinho só para gestores da LEGO.

E balastros para segurar a baseplate preta (que não é LEGO e tem tendẽncia a encurvar). Tenho balastros pretos do LB mas já que tb tinha vermelho... viva ó campião de inverno >:D !

faltam chegar uns tiles invertidos para decorar 10 ímanes que servirão de peças de jogo, entretanto vou implementando o código.
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4449
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: LEGO Tic Tac Toe Robot (Jogo do Galo)

Mensagem por CyberX »

Segunda versão, já totalmente funcional:



o motor XL do eixo dos y's foi substituído por um do tipo Education (o maior) porque o XL não estava a dar conta do recado e a gerar muito comportamento errático quando as pilhas não estavam no máximo (e mesmo depois de trocar as pilhas por uma fonte de alimentação de 9V/6A).

este novo motor é mais lento mas tem mais do dobro do torque e uma precisão bastante maior (isto pelo menos reportado pelas funções do Pybricks).

Por sugestão do #1 estou a usar a 4ª porta do Hub, que estava livre, para sinalizar quem ganhou e de quem é a vez de jogar. Mais um motor Boost, acho que já não tenho mais nenhum :D

O resto é essencialmente cosmética e muita afinação de código. Vou agora fazer os testes de stress do costume, afinar o que descobrir que tem de ser afinado e a nível de programação tentar adicionar um algoritmo minmax (por agora está a jogar ao calhas, provavelmente mantenho esse modo como "nível fácil" e deixo escolher o algoritmo para quem queira mais luta).
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13769
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: LEGO Tic Tac Toe Robot (Jogo do Galo)

Mensagem por AVCampos »

Eish, isso faz-me lembrar (mais) um projecto que já tenho há anos sem nunca ter acabado, de um robot também de Jogo do Galo, mas inspirado neste outro do Arthur Sacek.

Muito boas ideias, de usar ímanes para pegar nas peças, deslizar o braço para fora para as largar, e verificar em que posição o motor bloqueia ao descer para saber se foi lá colocada uma peça ou não! :clapping:

Tenho é duas sugestões a fazer: para o motor Y, em vez de usar um par de engrenagens 12T+20T em cada conjunto de parafusos, podes usar duas knob wheels: assim é mais fácil sincronizar os dois lados e muito mais difícil de eles se dessincronizarem com o uso. E, se quiseres usar o 4º motor para agarrar e largar as peças, podes indicar o jogador e o estado vitória/derrota acendendo/piscando o LED do hub em cores diferentes.
CyberX Escreveu: 12 jan 2025, 12:28 Porquê os motores Boost? Porque os tenho, são quase tão pequenos como os que saíram no Spike Essentials, muito mais baratos e fáceis de encontrar no bricklink e suspeito que por dentro são essencilamente o mesmo ou pelo menos muito parecidos.
Electricamente talvez sejam similares a outros motores LEGO (Power Functions M?), mas são os únicos motores PU que não têm posicionamento absoluto, só relativo como os do NXT e EV3. Nalgumas aplicações (mas não nesta) pode fazer diferença.
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4449
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: LEGO Tic Tac Toe Robot (Jogo do Galo)

Mensagem por CyberX »

AVCampos Escreveu: 17 jan 2025, 23:27 para o motor Y, em vez de usar um par de engrenagens 12T+20T em cada conjunto de parafusos, podes usar duas knob wheels: assim é mais fácil sincronizar os dois lados e muito mais difícil de eles se dessincronizarem com o uso
hmm.. a ideia é boa mas nunca usei as knob wheels porque sempre achei que não são indicadas para situações onde a precisão seja importante... está na altura de confirmar isso.
AVCampos Escreveu: 17 jan 2025, 23:27 E, se quiseres usar o 4º motor para agarrar e largar as peças, podes indicar o jogador e o estado vitória/derrota acendendo/piscando o LED do hub em cores diferentes.
o 4º motor para mostrar estado foi mesmo só para aproveitar a sugestão do #1, desde o início tentei fugir à ideia de agarras as peças e tentar fazer algo fora do comum - tanto quanto eu saiba nunca ninguém usou seriamente estes ímanes em ambientes MINDSTORMS e nunca ninguém fez um jogo do galo que se arrumasse a si pŕoprio no final, pelo menos nissso desviei-me dos standards. Piscar o LED do hub em cores diferentes j'o faço, não sei se no video se percebe mas é esse mesmo o problema do LED: visualmente pouco útil.

Talvez, quando estiver para aí virado, complemente o bicho com um segundo hub só para notificações, enviando mensagens do primeiro. Se por acaso o segundo estiver desligado (e da forma como isto come pilhas é altamente provável que aconteça) não se perde nenhuma funcionalidade essenial e posso alongar-me na complexidade sem afectar o jogo em si. Uma ideia inicial era som (com um adaptador para PF ou um relé como o que fiz em tempos ligar um bezouro dos antigos 9V) mas pous logo de parte que seria um esforço inglório... até a marida ontem nos stress testes dizer "isto não pode fazer barulho?". Os hubs Spike/Ri fazem um beep muito basico e custam uma pipa de massa, o brick do Harry Potter nunca experimentei mas acho que só tem falas pré-gravadas do tema e adicionar um EV3 só para sintetizador voz é novamente overkill. Tenho um MP3 player de um tema qq tipo Friends & Unicórnios Cor de Rosa que __talvez__ pudesse ser usado mas nunca lhe dei a atenção devida

Imagem
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13769
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: LEGO Tic Tac Toe Robot (Jogo do Galo)

Mensagem por AVCampos »

CyberX Escreveu: 18 jan 2025, 16:01 o brick do Harry Potter nunca experimentei mas acho que só tem falas pré-gravadas do tema
Sim, tanto esse como o do rádio tocam um clip aleatório, de entre os que estão pré-gravados, cada vez que se carrega no botão. Tanto quanto sei, ainda não se conseguiu reverseengineerar para se poder meter sons customizados. :notcool:
Responder