Uma das coisas que não gosto nada no python é a indentation.
O código pode estar todo bom mas tem de se ter atenção ao posicionamento dos blocos. Se deslocar uma linha com a tecla tab, a "indentation" falha e já não trabalha.
Tem uma placa rpi ou apenas está a usar o emulador??
Se está com uma placa, que SO colocou na placa??
Nesse vídeo apenas aparece a utilização, não diz que sistema operativo, está instalado.
Instalou o rpi.gpio??
O raspian instala por defeito, porém, como houve atualizações do python há a necessidade de atualizar o SO, digitamos na linha de comandos.
sudo apt update
sudo apt upgrade
Como sabemos se o rpi.gpio está instalado e a funcionar??
Digitamos na linha de comandos no terminal
Esse comando faz um "find" na pasta usr por ficheiros que tenham gpio.
O resultado será... tenho de passar para outro computador para colar aqui.
/usr/src/linux-headers-5.4.0-1082-raspi/include/config/of/gpio.h
/usr/src/linux-headers-5.4.0-1082-raspi/include/config/bcm2835/devgpiomem.h
/usr/src/linux-headers-5.4.0-1082-raspi/include/config/serio/gpio
/usr/src/linux-headers-5.4.0-1082-raspi/include/config/serio/gpio/ps2.h
/usr/src/linux-headers-5.4.0-1082-raspi/include/config/leds/trigger/gpio.h
/usr/src/linux-headers-5.4.0-1082-raspi/include/config/leds/pca955x/gpio.h
/usr/src/linux-headers-5.4.0-1082-raspi/include/config/leds/pca9532/gpio.h
Como isto é um lib do python vamos ver se temos o python e que versão temos instalada
Neste caso o resultado foi
Command 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3
Isto significa que temos o python v3 que podemos verificar digitando
O resultado será
rui@ubuntu:~$ python3 -V
Python 3.8.10
rui@ubuntu:~$
temos o gpio e o python3 instalados
Todos os OS para o RPi trazem um utilitário que se chama Raspi-config onde o acesso aos pinos pode ser desligado ou ligado. Vai ser descontinuado nas próximas versões mas pode verificar digitando
sudo raspi-config na opção
3 Interface Option
P8 Remote GPIO (enable ou disable GPIO)
Se estiver como disable, não vai conseguir controlar as portas.
Note que no raspian, no mac, no linux existe um (user)utilizador alocado a um grupo.
Se estamos a correr um programa com o user pi no grupo pi, o user pode não ter permissões para correr o ficheiro
Para testar, basta digitar "sudo" antes do comando, vai pedir a password de administrador e executar
Se correr com sudo significa que o user pi(ou seja ele qual for) não tem permissões ara correr o python3.
Vamos ter de dar esses permissões um única vez e permitir que o python não preciso de password quando chamado pelo user pi.
parece confuso mas não é....
A primeira coisa a perceber é o conceito de segurança do Linux. No windows base temos um user, no linux temos um user dentro de um grupo que tem permissões.
Se tiver dificuldade aqui diga-me que tento explicar melhor.