Isso está acontecendo porque o IDE não tem permissões suficientes para acessar o dispositivo Arduino.
Permissões
Podemos olhar para o dispositivo Arduino executando
ls -l /dev/ttyACM*
em um terminal. A saída parece mais ou menos assim:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
O ‘0’ no final de ‘ACM’ pode ser diferente, e múltiplas entradas podem ser listadas, mas as partes que precisamos focar são a cadeia de letras e traços na frente, e os dois nomes root
e dialout
.
O primeiro nome root
é o dono do dispositivo, e dialout
é o grupo do dono do dispositivo.
As letras e travessões na frente, começando depois de ‘c’, representam as permissões do dispositivo por utilizador: – O primeiro triplet rw-
significa que o dono (root
) pode ler e escrever neste dispositivo – O segundo triplet rw-
significa que os membros do grupo do dono (dialout
) podem ler e escrever neste dispositivo – O terceiro triplet ---
significa que outros usuários não têm nenhuma permissão (o que significa que ninguém mais pode ler e escrever no dispositivo)
Em resumo, ninguém exceto root
e os membros de dialout
podem fazer qualquer coisa com o Arduino; uma vez que não estamos a correr a IDE como root
ou como membro de dialout
, a IDE não pode aceder ao Arduino devido a permissões insuficientes.
Adicionando-se ao grupo de discagem
Mas espere! Anteriormente, quando estávamos a lançar a IDE, adicionámo-nos ao grupo dialout
!
Então porque é que a IDE ainda não tem permissão para aceder ao Arduino?
As alterações que o prompt faz não se aplicam até que saiamos e voltemos a entrar, por isso temos de guardar o nosso trabalho, sair e voltar a entrar.
Depois de fazer o login novamente e iniciar a IDE Arduino, a opção Serial Port deve estar disponível; altere isso, e devemos ser capazes de carregar o código para o Arduino.