Manual
do
Maker
.
com
Esse é um artigo raro. Tão raro que ao que me lembre, a última vez que escrevi um artigo relacionado a coisas do Windows foi em 1997 para a Linux.trix.net, a LinuxInBrazil, atualmente br-linux.org. Na época escrevi sobre o CorelDraw for Linux. O artigo existe até hoje mas não está mais datado, infelizmente.
Bem, depois de 20 anos, volto a escrever sobre o Wine - a palavra inglesa para "vinho", mas na verdade é um acrônimo recursivo que significa "Wine Is Not an Emulator". Ele é um tradutor de instruções de aplicações para Windows.
Por que estou escrevendo sobre isso hoje? Se você é um usuário de Linux, talvez já tenha ouvido falar dele, mas especificamente hoje estou escrevendo sobre o Wine para incluir um recurso que estava precisando para emular um programa para controlar minha mini CNC (cujo artigo estou finalizando). Antes que seu sarcasmo me sobrevenha, existem sim programas para controlar CNC no Linux, mas preferi experimentar essa no projeto que estou fazendo porque foi o único exemplo de controle que encontrei nessa vasta Internet com o CNC shield que estou utilizando. Só que tem uma questão; no Windows as portas seriais são identificadas como COMx (COM1, COM2, COMn), enquanto em Linux as portas seriais são /dev/ttyUSBx ou /dev/ttyACMx. Para fazer essa "ponte" tive que dar um "tapa" em uma configuração do Wine, então resolvi documentar em formato de artigo por aqui mesmo, porque não quero que o artigo da CNC fique tão grande quanto o artigo da impressora matricial (cuja biblioteca que criei está disponível no repositório oficial do Arduino, com muito orgulho). Vamos ao procedimento.
Meu usuário já está adicionado ao grupo dialout e provavelmente o seu também está, se estiver utilizando a IDE do Arduino como usuário sem privilégios. De qualquer modo, melhor previnir do que remediar:
sudo su
adduser SeuUsuario dialout
Agora é hora de criar os links simbólicos para as portas. Se não houver cabos conectados a dispositivos seriais, não existirão dispositivos seriais em /dev, portanto será criado um link quebrado, que passará a existir assim que o dispositivo for criado na conexão do cabo. Então, independente de você ter um Arduino (ou qualquer outro dispositivo serial) conectado nesse momento, execute os comandos:
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
ln -s /dev/ttyS0 ~/.wine/dosdevices/com2
ln -s /dev/ttyACM0 ~/.wine/dosdevices/com3
O Wine tem algo semelhante ao regedit do Windows. Algumas especificações precisam ser criadas nesse arquivo, então edite-o:
SeuEditorPreferido ~/.wine/system.reg
E inclua as seguintes linhas na sessão [Hardware\Devicemap\Serialcomm] 1231984861:
[Hardware\\Devicemap\\Serialcomm] 1231984861
"COM1"="COM1"
"COM3"="COM3"
"Serial0"="COM1"
"Serial2"="COM3"
Aí eu coloquei uma redundância, mas no metter, o importante é que funcione. Ao rodar o programa GRBL Controller e conectar à porta com1, obtive a resposta do dispositivo adequadamente:
Pronto, simples e rápido!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.