BRAÇO ROBÓTICO PARA MSX V2




Já tem um tempo que eu estava para fazer aquela atualização no que eu poderia dizer ter sido meu primeiro projeto na área da robótica educacional. Lembro-me bem de quando montei esse pequeno braço robótico para o MSX. Que sufoco!!! Bom se você gosta de MSX, robótica e também de um pouco de história, esse artigo é para você!


COMO TUDO COMEÇOU

Lembro-me como se fosse hoje quando comprei, em
Dezembro de 1990, numa banca de jornal a revista Saber Eletrônica nr 215 . O artigo de capa me chamou a atenção na hora! Tratava-se de um braço robótico que podia ser controlado por um computador (MSX ou PC). Na época eu ainda não tinha um computador, mas a intenção de comprá-lo que já era grande ficou ainda maior ao ver esse artigo. Seja como for, a revista veio primeiro!

Eu lí e reli o referido artigo muitas e muitas vezes. No ano seguinte, 1991, finalmente consegui comprar meu primeiro computador: um MSX Expert Gradiente "Cinza", usado, mas funcionando "perfeitamente". Passado um tempo, retirei a revista da prateleira e a saga em busca dos componentes para a montagem do robô começou.


A BUSCA PELOS MOTORES

No projeto, de autoria de Marco Antônio Marques de Souza, foi sugerido o uso de um motor DC bastante peculiar. Tratava-se de um motor utilizado para girar espetos de churrasqueira! Sim, isso mesmo! O mesmo utilizava duas pilhas médias na sua alimentação e possuia uma chave que permitia ligar num sentido ou outro ou ainda desligar o mesmo. Além disso tinha uma ótima redução o que lhe conferia bastante força (torque), além de um bom acabamento e uma maneira fácil para realizar as necessárias conexões mecânicas. Uma escolha bastante acertada ao meu ver.

Porém em 1991 não tínhamos internet para buscar de maneira fácil uma loja ou dicas que nos levasse direto a um fornecedor. E compras "on-line", nem pensar. O único jeito de se conseguir as coisas era garimpando de loja em loja. E foi o que eu fiz durante alguns meses. Busquei pelos motores em lojas do centro (SP) e  em bairros maiores próximos à minha casa (e que possuíam um comércio maior). Foram muitos sábados tentando encontrar os benditos motores. Até que um dia, entrei em uma loja de "Caça & Pesca" (é, isso existiu mesmo!) e lá estava o motor em uma vitrine. Porém o vendedor só tinha aquele (último da loja!). Seja como for, um é melhor que nada!!! Comprei para poder realizar os primeiros testes. Algumas semanas depois, com essa dica fantástica de onde encontrar (lojas especializadas em camping e afins) achei uma dessas lojas num bairro próximo e com um estoque um pouco maior. Comprei mais dois deles e o projeto pode finalmente começar.


MAIS BUSCAS: AS OUTRAS PARTES MECÂNICAS

Ainda naquela época eu acreditava que um robô não deveria usar qualquer parte que não fosse algo próximo a materiais como plástico, metais no geral, etc. Madeira nem pensar! Nossa como isso mudou depois desse projeto! Fiz muitos outros robôs após esse e usei madeira na construção dos mesmos e fui muito feliz nessa escolha. Bom, mas isso é uma outra história.

E lembre-se que estamos falando de 1991! Tudo era bem mais difícil de se encontrar. Lembro-me "perambular" pela famosa Rua Florêncio de Abreu para comprar algumas ferramentas, quando me deparei com uma loja que comercializava suplementos em "nylon" para usinagem. Tinha de tudo, desde tarugos redondos a quadrados, chapas, etc. Mas tudo em quantidade excessiva ao que eu precisava. Foi então que o vendedor disse: "já olhou na caixa de retalhos na frente da loja?!" Corri para a tal caixa e lá estava um pedaço que com algum trabalho (depois percebi que seria muito) daria para ser utilizado. A partir disso, com alguns pedaços de nylon, outros de alumínio e mais algumas coisas consegui chegar na primeira versão, cujas fotos podem ser vistas mais abaixo:











Ah, chamo a sua atenção para a garra. Ela foi montada a partir de engrenagens de brinquedos fora de uso, divisórias de acrílico de gaveteiros para componentes eletrônicos, alguns parafusos e porcas, etc. Quando eu a montei, não fiz um desenho prévio da mesma. Fui tirando as medidas a partir das engrenagens selecionadas e montando tudo. Foi, digamos, bem empírico. Mas funcionou bem e ainda funciona.

Eu finalizei essa montagem no final 1991, início de 1992. E foram horas curtindo essa montagem. O projeto com a primeira versão pode ser vista clicando aqui.

Agora que você já conheceu um pouco da história, vamos às novidades!


A RENOVAÇÃO


Um "close"... 

Robô segurando cartucho do jogo Amazônia da Bitnamic Software

Visão da garra e punho

Hora do lanche!

Dia da gravação do vídeo!

Para essa "nova" versão eu decidi iniciar preparando uma proteção. Projetei uma placa isoladora com acopladores ópticos para proteger a porta paralela do MSX contra qualquer curto ou outro. Na época o autor não sugeriu tal proteção, mas isso era aceitável já que os computadores MSX ainda podiam ser encontrados de maneira relativamente fácil. Hoje isso não é mais possível e proteger nossos "pequenos notáveis" é muito importante. Por isso decidi projetar um circuito que isolasse eletricamente os motores da porta paralela do MSX. Com isso, a caixa precisou ter seu tamanho modificado, já que a antiga era bem menor.

Além disso, as quatro pontes "H" montadas com transistores para o controle dos motores foram substituídas por dois módulos L298 que são facilmente entrados na internet (comprei os meus via Mercado Livre).

Resolvi também que a nova garra deveria ser controlada por um micro servo e acabei incluindo também um outro servo para poder girar a garra em 90º, o que aumentou bastante a eficácia da mesma em determinadas situações. E como eu tenho uma impressora 3D, nada melhor que imprimir as partes que antes eram em alumínio e nylon.

Com essas renovações, nasceu o novo "Braço mecânico (ou robótico) para MSX V2!


DIAGRAMA DE BLOCOS

Na figura abaixo eu mostro um pequeno diagrama em blocos da parte eletrônica.





Como você pode notar, temos o controle feito pelo MSX através da sua porta paralela (LPT). Esse controle é levado ao circuito isolador que é quem controla os módulos L298 e os servos através de um outro módulo que usa o microcontrolador PIC12F675.

M1 é o motor da base, M2 o motor que levanta todo o braço, M3 o motor para levantar o "punho", SRV1 é o servo da garra e SRV2 o servo responsável pelo "giro" do punho.

Simples não é?! Vamos agora aos detalhes dos circuitos (módulos).


CIRCUITO MODULO ACOPLADOR







Nas figuras acima é possível ver o circuito do módulo acoplador óptico. O mesmo possui 8 opto acopladores 4N25 (OPT1 a OPT8), os mais comuns e fáceis de se encontrar no mercado especializado em componentes eletrônicos. Os resistores R1, R5, R9, R13, R17, R21, R25 e R29 são resistores limitadores de corrente para os LEDs internos aos 4N25.

Note que um transistor foi adicionado a cada saída dos 4N25. Eles servem para manter os níveis lógicos "low" (0) ou "high" (1) exatamente iguais aos inseridos na entrada do acoplador. Para compreender melhor o circuito, vamos analisar separadamente OPT1 (a mesma analogia demonstrada a seguir deve ser aplicada aos demais 4N25). Quando inserirmos um nível lógico "high" (+5V vindos do MSX) na entrada de OPT1 o LED interno é "ligado". Isso coloca o foto transistor também interno a OPT1 em saturação. Dessa forma o nível lógico "low" (zero se preferir) é colocado em R3, mantendo Q1 (BC337 ou BC338) em corte. Dessa forma a saída D0 em Q1 é mantida em nível lógico "high" graças ao resistor de "pull-up" R4. Mas se levarmos o nível lógico "low" a entrada de OPT1 através de R1, o LED interno não será ligado e consequentemente não teremos o foto transistor em saturação, mas em corte (desligado). Dessa forma, R2 mantém Q1 polarizado e o mesmo entra em saturação (ligado) levando o nível lógico "low" para a sua saída D0.

Sem esse arranjo, com um transistor a mais, teríamos as saídas dos opto acopladores sempre invertidas em relação a sua entrada. É óbvio que isso poderia ser resolvido através do software. Bastaria então inverter os níveis lógicos D0-D7 na saída da porta paralela através do "software", não é mesmo. O problema é que eu não gosto muito de soluções onde o "software" precisa ser a solução para um hardware ruim.

Também há no circuito o LED1 ligado ao pino de "Strobe" da porta paralela (pino 1). A ideia desse LED é manter-se ligado quando o circuito for conectado a porta paralela ou ainda piscando, bastando para isso que o software atue nesse sentido (controle independente desse pino).


CIRCUITO MÓDULO PIC12F675





Na figura acima mostro o segundo circuito utilizado no robô. Ele controla os servos da garra e do punho e foi inserido no projeto por motivos óbvios: o MSX, usando a Linguagem BASIC, dificilmente conseguiria controlar dois servos de maneira independentes e ainda mais 3 motores, além de todas as outras tarefas que o BIOS impõe a essa valente maquininha.

O circuito é bem simples. O PIC recebe o sinal vindo das saídas do módulo acoplador D6 (garra) e D7 (pulso) através de suas entradas IN1 e IN2, e altera as saídas SRV1 e SRV2
,  respectivamente. Para o caso da garra, para cada pulso inserido através de D6 o servo tem sua posição alterada fechando cada vez mais a garra até o ponto de fechamento total, em seguida, num próximo pulso a garra é totalmente aberta. Já para o caso da entrada IN2 o servo é mantido sempre numa posição de acordo com a entrada o que garante o giro do pulso em 90º apenas.

O LED1 é um LED "Live" e pisca numa frequência de 1/2Hz indicando o funcionamento do circuito.

O diodo D1 serve para manter a alimentação de 5VDC do circuito isolada da tensão de gravação do PIC quando isso for requerido.


MONTAGEM PLACA MÓDULO ACOPLADOR




A figura acima mostra o "layout" para a confecção do circuito impresso. É altamente recomendável o uso de suportes para os CIs (OPT1 a OPT8), além de montá-los corretamente a placa/suportes (cuidado para não invertê-los). Tome cuidado para não trocar o valor dos resistores durante a montagem. Os transistores Q1 a Q8, assim como o capacitor eletrolítico e o LED1 são componentes polarizados. Cuidado para não invertê-los também!

Note que a placa pode ser confeccionada de duas maneiras:

  1. usando uma placa dupla face e nesse caso as indicações em vermelho ficariam no TOP da placa;
  2. usando uma placa face simples e nesse caso as indicações em vermelho passam a ser simples "jumpers" (eu usei essa segunda opção).
Mais abaixo em "downloads" eu disponibilizei esse "layout" considerando sua confecção com placa tipo face simples!

No circuito não está indicado, mas a entrada LPT_MSX precisa ser conectada a porta paralela do MSX. No meu caso eu usei o mesmo cabo de conexão com a impressora. Mas cada caso é um caso, certo?! E sendo assim, abaixo eu coloco a disposição dos pinos da porta paralela dos MSX nacionais (Hotbit e Expert), além da pinagem do conector "Centronics" 36 pinos utilizado nas impressoras. Dessa forma você pode fazer o seu cabo como achar melhor.

Porta presente no Hotbit
Conector Centronics fêmea 14 vias


Pin Name Type Description
1 PSTB O Strobe
2 PDB0 O Data 0
3 PDB1 O Data 1
4 PDB2 O Data 2
5 PDB3 O Data 3
6 PDB4 O Data 4
7 PDB5 O Data 5
8 PFB6 O Data 6
9 PDB7 O Data 7
10 NC
Reserved
11 BUSY I Printer is busy
12 NC
Reserved
13 NC
Reserved
14 GND
Signal Ground

Porta presente nos Expert's
Conector IDC macho 26 vias


Pin Name Type Description
1 PSTB O Strobe
2 GND
Signal Ground
3 PDB0 O Data 0
4 GND
Signal Ground
5 PDB1 O Data 1
6 GND
Signal Ground
7 PDB2 O Data 2
8 GND
Signal Ground
9 PDB3 O Data 3
10 GND
Signal Ground
11 PDB4 O Data 4
12 GND
Signal Ground
13 PDB5 O Data 5
14 GND
Signal Ground
15 PDB6 O Data 6
16 GND
Signal Ground
17 PDB7 O Data 7
18 GND
Signal Ground
19 NC

20 GND
Signal Ground
21 BUSY I Printer is busy
22 GND
Signal Ground
23 NC

24 GND
Signal Ground
25 NC

26 NC



Pin No (36 pin) Signal name Direction Register - bit
1 Strobe In/Out Control-0
2 Data0 Out Data-0
3 Data1 Out Data-1
4 Data2 Out Data-2
5 Data3 Out Data-3
6 Data4 Out Data-4
7 Data5 Out Data-5
8 Data6 Out Data-6
9 Data7 Out Data-7
10 Ack In Status-6
11 Busy In Status-7
12 Paper-Out In Status-5
13 Select In Status-4
14 Linefeed In/Out Control-1
32 Error In Status-3
31 Reset In/Out Control-2
36 Select-Printer In/Out Control-3
19-30,33,17,16 Ground - -


A saída BM-1 da placa deve ser ligada aos módulos L298 conforme figura a seguir:





Para ligar o módulo acoplador óptico ao módulo PIC12F675 basta ligar o pino D6 a IN1 e D7 ao pino IN2.


MONTAGEM MÓDULO PIC12F675

A figura abaixo mostra o "layout" para confecção da placa de circuito impresso para o referido módulo.





A montagem dessa placa é bem simples. Nesse caso eu também recomendo o uso de um suporte para CIs para U1. Cuidado ao inseri-lo ao circuito. LED1 e D1 também requerem cuidado na sua montagem para não invertê-los. Os servos podem ser ligados à placa utilizando barra de pinos ou soldando seus fios diretamente a placa. Tome apenas cuidado para não invertê-los. O ponto mais interno para ambos (mais próximo do PIC) deve receber o fio "laranja" (ou branco, dependendo do fabricante do seu servo), no ponto do meio o fio vermelho e no ponto mais externo (próximo a borda da placa), o fio preto.

Na entrada IN o pino 1 recebe 5VDC, o pino 2 GND, o pino 3 IN2 e o pino 4 IN1. Cuidado para não inverter a alimentação! O PIC será danificado irremediavelmente!

A entrada PICKIT3 na placa é utilizada para gravação do PIC e a pinagem dessa entrada é padrão, conforme figura abaixo:





Recomendo utilizar barra de pinos para essa entrada, o que facilitará muito a conexão com a ferramenta de gravação quando esse for o momento.

Obs.: As entradas IN e PICKIT3 na placa possuem a indicação para pino 1 no botton da placa e foram dispostos de maneira a apontar na mesma direção!


PROGRAMA DE CONTROLE PARA MSX

Eu não pretendo aqui ficar descrevendo o funcionamento do programa de controle do MSX. A Linguagem BASIC é simples e bastante intuitiva e para aqueles que ainda não a conhecem (me refiro aos "mais novos" ok! os "fudebas" de plantão a conhecem muito bem e a muito tempo!) vale a pena uma rápida pesquisa sobre a mesma.

Mais abaixo em "Downloads" você poderá pegar o programa para estudar. Trata-se do programa o original feito pelo autor do projeto na década de 1990 e o mesmo recebeu apenas algumas alterações para adequá-lo as novas necessidades. Os créditos ao autor foram mantidos no código-fonte, como é o correto!


PROGRAMA PARA MÓDULO PIC12F675

Não é também minha intenção ficar detalhando a fundo o funcionamento do programa para o microcontrolador PIC, mas basicamente o PIC fica aguardando uma alteração em suas entradas IN1 e IN2 (GP2 e GP1). A entrada IN1 conta os pulsos recebidos e de acordo com a sua quantidade coloca o servo conectado a saída SRV1 (GP5) em uma posição que para a garra representa de aberto a quase fechado (algumas posições) chegando a totalmente fechado e em seguida a aberto novamente. Já para a entrada IN2 a situação é mais tranquila, já que no nível "low" o servo em SRV2 (GP4) é mantido em uma posição e quando o nível na entrada IN2 passa a "high" o servo SRV2 é colocado em outra posição a 90º da inicial. Podemos dizer que nesse caso o servo SRV2 vai da posição 0º a 90º.

O arquivo HEX para gravação do seu PIC está disponível em "Downloads".


NOVAS PARTES MECÂNICAS E MONTAGEM FINAL - DICAS

Bom, eu não sei se você consegue encontrar hoje motores de churrasqueiras como os presentes nesse projeto. Esta será a sua "busca".

Abaixo algumas dicas sobre outros itens:

  • A caixa que eu utilizei nessa renovação é da fabricante nacional Patola, modelo PB119/2;
  • As partes de conexão entre os motores foram desenhadas por mim usando o Fusion 360 e você poderá fazer o "download" das mesmas no Thingiverse (link mais abaixo em "Downloads");
  • A garra, de autoria de Edgar Simo (bobbens), funciona bem com um micro-servo comum como os  SG90 ou outro do tipo. Também disponível em "Downlods" (link para Thingiverse);
  • Para o servo do pulso eu preferi utilizar um servo do tipo "metal gear" MG90 por ser mais forte, mas é possível utilizar um comum como o SG90 sem maiores problemas;
  • Todas as partes impressas na impressora 3D foram feitas em ABS.

CONCLUSÃO

Se você curte MSX e robótica, esse projeto pode se revelar bastante interessante! Tenho dois filhos e eles adoraram "brincar" com esse robô quando pronto novamente. E o mais legal nesse projeto foi a ponte construída entre épocas distintas! Realmente foi muito prazeroso renovar essa montagem, realizada há 30 anos atrás! Sim, essa renovação se deu em 2021 em plena pandemia da Covid-19! Espero que tenha gostado desse projeto e que ele lhe dê, de alguma maneira, muita inspiração para trabalhar com seu MSX ou robótica. Fique bem, fique seguro! Bons projetos e até a próxima!


DOWNLOADS:

- Circuito eletrônico módulo acoplador
- Circuito eletrônico módulo PIC12F675
- Layout para circuito impresso placa módulo acoplador - método transferência térmica
- Layout para circuito impresso placa módulo PIC12F675 - método transferência témica
- Arquivos STL para garra - Link ThingiVerse
- Arquivos STL para outras partes mecânicas - Link ThingiVerse
- Programa de controle MSX BASIC
- Arquivo HEX para gravar o PIC12F675




Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.