Por padrão temos o seguinte disponível:
- 6 entradas analógicas (A0, A1, A2, A3, A4 e A5)
- 2 entradas digitais (2 e 3)
- 3 saídas analógicas (5, 6 e 9)
- 3 saídas digitais (10, 11 e 13)
- 2 saídas para motores (4 e 7)
- 2 saídas para servos (8 e 12)
Temos 3 saídas analógicas e 3 saídas digitais, o que ainda não é suficiente nem elegante (misturar digitais e analógicos), isso significa que não podemos utilizá-lo? Não necessariamente.
Os pinos no S4A são delegados diretamente no código fonte do software (que roda no computador) e do firmware (que é enviado ao Arduino), mas felizmente como o S4A e o próprio Scratch (Até o 1.4) foram desenvolvidos em Squeak SmallTalk é fácil modificarmos.
Ou seja, precisaremos modificar os pinos que desejarmos em dois lugares:
- No código fonte do próprio S4A instalado no computador.
- No firmware do S4A que vai para o Arduino.
Aparecerá então o seguinte menu:
Nota-se logo que apareceram mais opções no menu que estavam escondidas. A que queremos é "Exit User Mode" (Sair do Modo Usuário).
Esse recurso é herdado da própria origem do S4A/Scratch 1.4 de Squeak SmallTalk. Quando saímos do modo usuário (que utilizamos normalmente), temos acesso direto ao código fonte.
Nossa tela vai ficar estranha, com blocos na parte inferior e lateral direita:
É normal. Clique com o botão esquerdo nessa lateral em branco e irá aparecer o seguinte menu:
Escolha "open..." e em seguida "browser".
Teremos agora a seguinte janela, que pode assustar na primeira vista:
Atente na caixa selecionada na imagem acima, "instance". Iremos editar primeiramente em "instance" e em seguida em "class".
Primeiro, siga o caminho da imagem abaixo conforme as opções em vermelho:
Em "digitalPinNumbers" estão os números dos pinos digitais a serem utilizados. No caso do nosso exemplo com o display de 7 segmentos, faça como na imagem e preencha com os pinos 4 a 13.
Agora clique em "class" e siga o caminho em vermelho na imagem abaixo:
Remova o trecho de código destacado em verde, que diz respeito a usos dos pinos que iremos descartar para libera-los como pinos digitais de saída.
Agora para gravar nossas modificações precisamos fazer o seguinte:
Clicando com o botão esquerdo segurando ALT aparecerá o seguinte menu:
Feche a janela verde do System Browser clicando no "X" no canto superior esquerdo e então clique no espaço em branco na lateral direita ou inferior e escolha "save".
Aparecerão duas mensagens indicando erro, porém não é necessário se preocupar. Clique em "Ok" para ambos.
Voltaremos agora ao Modo Usuário:
Clicando em seguida em "Enter User Mode":
Tudo deverá estar como estava antes de começarmos a modificação. Exceto que ao clicar nas opções de pinos digitais...
Agora temos pinos o suficiente!
2) Falta agora modificar o firmware que será enviado ao Arduino e então se comunicará com o S4A. Baixe o firmware e abra-o com a IDE do Arduino. Nele procure por "configurePins".
Aqui não há muito segredo, note que em cinza estão comentados quais são os pinos. Em azul, logo à esquerda há uma letra que determina qual tipo de pino é cada pino:
- a - analógico
- d - digital
- c - motor
- s - servo
Neste exemplo não é necessário mais modificações, basta enviar o firmware modificado ao Arduino e já deverá ser possível utilizar até 10 pinos digitais.
Note que ainda assim não é possível modificar os pinos de qualquer maneira - há restrições quanto a pinos de entrada/saída e só é possível utilizar como pino analógico de saída aqueles com PWM (Pulse Width Modulation): 3, 5, 6, 9, 10 e 11.
Bons projetos!
Ótimo post! Sabe como eu crio um bloco no S4A? Já pesquisei mas não consigo achar anda.
ResponderExcluirOlá Gustavo, obrigado! Quanto à sua dúvida, eu nunca tentei essa possibilidade mas até onde sei não seria nada simples. Algo mais adequado para sua necessidade seria BYOB/Snap: http://byob.berkeley.edu
ExcluirMuitoooooooooooo Bom!!! Otima contribuição! Parabéns!
ResponderExcluirMuito obrigado pelo feedback positivo Marisa!
ExcluirBom dia!
ResponderExcluirNão tenho experiência no arduino, e gostaria de fazer uma pergunta: com o scratch eu posso montar a programação no pc e enviar para o arduíno e ele vai funcionar sem estar conectado ao pc? Ou para controlar um motor ou leds por exemplo, tenho que manter a conexão com o pc?
Olá Claudio, com o Scratch é necessário ter o computador com o Scratch aberto e conectado com a placa para enviar os comandos, pois utiliza de protocolo Firmata para se comunicar.
ExcluirDe forma independente só enviando o código através da própria IDE do Arduino.
Uma outra opção de programação por blocos parecida com Scratch que permite utilizar sem PC é o Ardublock, porque ele automaticamente converte seu código de blocos no código em C do Arduino na IDE. Em breve postarei um tutorial de Ardublock aqui no Labduino.
Eu estou a adorar o s4a mas não sei como se faz para gravar o projecto dentro da placa arduino uno .
Excluireu faço o projecto e ele funciona quando ligado ao pc.
Se eu desligar a placa e voltar a ligar não funciona .
O que quer dizer que não ficou gravado .
Se me poderes responder para o meu e-mail ( luis.magessi@gmail-com ) para eu ter essa informação registada .
obrigado
como desfazer essa alteração? já tentei ate reinstalar o S4a sem sucesso, o que fazer?
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirAs imagens sumiram, tem como postar de novo?
ResponderExcluir