Python é uma das linguagens mais utilizadas no mundo dos computadores e hoje também está sendo muito utilizada no mundo dos microcontroladores e eletrônicos. é o caso da placa Raspberry PI4B, que podemos programar em Python. A maioria dos projetos que faremos na placa Raspberry PI4B será na linguagem Python, daí a importância de conhecer esta linguagem.
Para programar em Python existem muitas interfaces e ambientes de desenvolvimento. Para praticar os programas de exemplo que veremos neste capítulo e nos próximos, você pode usar qualquer ambiente de desenvolvimento que suporte a linguagem Python. Alguns desses ambientes de desenvolvimento são: Thonny Python IDE, Visual Studio, Visual Studio Code, Anaconda, etc. Para o desenvolvimento desses capítulos, usei o Visual Studio Code, mas você pode usar o que quiser. A imagem a seguir mostra o ambiente de desenvolvimento: Visual Studio Code for Python:
A placa Raspberry Pi4B é um computador que possui portas de entrada/saída digitais. Esses pinos são organizados em 2 fileiras de 20 pinos cada. Além de poder usar esses pinos como entrada/saída, os pinos podem ser alternados para outros periféricos, como: I2C, UART, SPI, etc. A imagem a seguir mostra esse conector:
A imagem a seguir destaca as tensões fornecidas pelo conector de 40 pinos:
A seguir está o circuito eletrônico para o conector de E/S de 40 pinos:
Podemos ver no conector de 40 pinos que, além das entradas/saídas (GPIO), existem pinos para a porta serial, porta I2C e portas SPI. Para controlar e programar esses pinos, você precisa conhecer a linguagem Python e a forma como os dados são declarados. Além disso, é necessário conhecer as operações matemáticas e lógicas que podemos realizar no cartão Raspberry Pi4B. A imagem a seguir mostra a lógica digital do processador, para as instruções de 64 bits na placa Raspberry Pi4B:
Usaremos essa imagem para destacar o desempenho da linguagem Python.
O OPERADOR DE ATRIBUIÇÃO.
Em Python, o caractere: “igual” (=) é usado para atribuir um valor a um local de memória. Por exemplo, na seguinte linha de código, o valor: zero (0) está sendo atribuído à variável: “counter_box”:
counter_box = 0
Quase todos os idiomas usam o caractere: igual (=), para atribuir um valor a uma variável. O mesmo acontece nas operações aritméticas que realizamos na escola ou faculdade. Lembre-se que também na linguagem assembly atribuímos valores conforme mostrado no programa a seguir:
TIPO DE DADOS.
Os tipos de dados em Python são declarados dinamicamente, isso significa que Python analisa o valor atribuído e, assim, declara automaticamente o tipo de dados. Por exemplo: na linguagem C/C++, para declarar um tipo de dado inteiro (int), é necessária uma linha de código como:
int counter_box = 0;
A linguagem Python, por ser tipada dinamicamente, para declarar um tipo de dado: integer (int), pode ser feito assim:
counter=box = 0
Observe que não era necessário informar ao programa que a variável é do tipo inteiro (int), nem era necessário colocar o ponto e vírgula no final da linha de código. Veremos os tipos de dados que serão mais utilizados nos projetos que realizaremos no cartão Raspberry Pi4B.
Quando declaramos algum tipo de dado no cartão Raspberry Pi4B, ele é armazenado na memória RAM. Observe na imagem a seguir uma representação da memória RAM.
Quando iniciamos um projeto ou programa em Python, a RAM fica em branco, sem endereço ou dados declarados. Escrevendo uma linha de código como:
counter_box = 0
Um endereço de memória está sendo marcado e a imagem abaixo representa o que aconteceu na RAM.
O acima é válido para quaisquer dados declarados em um programa Python. Qualquer quantidade de dados pode ser declarada, na memória RAM. Os dados declarados na memória RAM também são chamados de: “Variáveis”. A declaração de variáveis afetará a memória RAM, que pode ser vista na imagem a seguir:
Os tipos de dados mais simples em Python são: Bool (bool), Integer (int), Floating Point (float) e String (str). O tipo de dados Bool (bool) pode armazenar 2 valores: True ou False. Em alguns textos representam o valor: True com 1 e o valor False com 0 (zero). Também pode ser usado, em alguns textos: Alto (alto) e baixo (baixo). Para programar em Python é comum usar: True ou False como veremos no programa de exemplo a seguir:
flag_maq_enable = False
print(flag_maq_enable)
A saída deste programa resultará no seguinte valor:
False
O que o programa faz: é declarar uma variável do tipo: “bool” e atribuir a ela o valor: “False”. Então utilizamos a função: “print()”, para imprimir na saída do console, o valor contido na variável: “flag_maq_enable”. Por exemplo, o seguinte programa:
flag_maq_enable = True
print(flag_maq_enable)
Ele mostrará na saída do console, o valor:
True
Tipos de dados inteiros (int) podem ser declarados assim:
counter_box = 17
print(counter_box)
A saída deste programa resultará no seguinte valor:
counter_box = -23
print(counter_box)
A saída deste programa resultará no seguinte valor:
Podemos notar que o Python identifica se um número inteiro é positivo ou negativo e, consequentemente, imprime o respectivo sinal no console de saída. Para números positivos, o Python omite o símbolo "+".
Os números de ponto flutuante (float) permitem que uma parte do número tenha uma fração. Por exemplo, o seguinte programa exibe um número de ponto flutuante:
temperature = 30.57
print(temperature)
A saída deste programa resultará no seguinte valor:
30.57
O tipo de dados: "string de texto" (str) armazena uma string de caracteres. Por exemplo, o seguinte programa imprime o valor que atribuímos à variável: "nome":
name = “Jhon”
print(name)
A saída deste programa resultará no seguinte valor:
John
Dados simples são os mais utilizados em projetos eletrônicos. Existem outros tipos de dados, mas veremos mais adiante, quando o projeto assim o exigir.
OPERAÇÕES MATEMÁTICAS
As instruções usadas com mais frequência em um programa Python são as instruções ou operações matemáticas. Estes são comuns a quase todas as linguagens de programação. A seguir está uma lista das operações matemáticas que podemos fazer em Python:
- Adição.
- Subtração.
- Divisão.
- Módulo.
- Multiplicação.
- Exponenciação.
Todas essas operações ou instruções serão realizadas na "unidade lógica aritmética" como pode ser visto na imagem a seguir:
A instrução de adição é a operação matemática que permite adicionar outro valor a um valor, por exemplo:
7 + 14 = 21
Na operação de adição anterior, usamos a instrução de adição que normalmente encontramos em qualquer livro ou cálculo. Nós o usamos diariamente, geralmente na programação. Em Python, a soma pode ser feita da seguinte forma:
a = 7
b = 14
c = a + b
print(c)
A saída deste programa resultará no seguinte valor:
21
Lembre-se que a operação de adição pode ser realizada em linguagem assembly, como pode ser visto no programa a seguir:
A instrução “subtrair” é a operação que nos permite subtrair algo de um valor. Por exemplo:
35 – 25 = 10
Subtraímos de 25, o valor de 35 e assim seu resultado é 10. Em Python podemos realizar a subtração da seguinte forma:
*a = 35
b = 25
c = a – b
print(c)
A saída deste programa resultará no seguinte valor:
10
Lembre-se que em linguagem assembly, uma subtração pode ser feita conforme mostrado no seguinte programa:
A instrução de multiplicação usa o símbolo de asterisco (*) na linguagem Python. Vejamos o seguinte exemplo:
4 * 12 = 48
Lembre-se que em matemática normalmente usamos X para operações de multiplicação. Assim, a operação anterior ficaria assim:
4 X 12 = 48
A operação de multiplicação em Python pode ser usada assim:
a = 4
b = 12
c = a * b
print(c)
A saída deste programa resultará no seguinte valor:
48
A instrução “split” na linguagem Python usa o caractere de barra (/), que se assemelha a uma barra. Vejamos o seguinte exemplo:
23/2 = 11,5
Na operação anterior o resultado é 11,5. Caso haja sobra ou sobra, será devolvido, pois esta operação sempre retorna ponto flutuante (float). Vejamos o seguinte programa:
a = 23
b = 2
c = a / b
print(c)
A saída deste programa resultará no seguinte valor
11.5
Para descartar a parte fracionária da divisão e receber como resultado um número inteiro, é necessário utilizar o operador: “//”. Vejamos o seguinte programa:
a = 23
b = 2
c = a // b
print(c)
A saída deste programa resultará no seguinte valor
11
Para retornar a parte restante de uma divisão (módulo), você pode usar o operador: “%”. Vejamos um exemplo:
a = 23
b = 2
c = a % b
print(c)
A saída deste programa resultará no seguinte valor
1
ra exponenciar um número, podemos usar o operador: "**". Um programa de exemplo seria assim:
a = 3
b = 5
c = a ** b
print(c)
A saída deste programa resultará no seguinte valor
243
Esses são os operadores aritméticos básicos da linguagem Python.
OPERADORES DE COMPARAÇÃO.
Os operadores de comparação permitem avaliar valores e verificar: se são iguais, se são diferentes, se um é menor ou maior, etc. Quando esses operadores avaliam uma comparação, eles retornam um valor booleano (True ou False) como resultado. A lista a seguir mostra os operadores de comparação:
- Igual. ==
- Diferente. !=
- Menor que. <
- Maior do que. >
- Menos que ou igual a. <=
- Maior ou igual. >=
Por exemplo, para saber se um número é igual a outro, usamos o operador: "==". O programa a seguir usa o operador de igualdade:
a = 3
b = 5
c = a == b
print(c)
A saída deste programa resultará no seguinte valor
False
Assista ao seguinte programa:
a = 3
b = 3
c = a == b
print(c)
A saída deste programa resultará no valor: “True”, pois os dois valores avaliados são iguais.
True
Todas as operações de comparação ocorrem na "unidade lógica aritmética", como pode ser visto na imagem a seguir:
Para avaliar se dois valores são diferentes podemos utilizar o operador: “!=”. Vejamos um exemplo:
a = 3
b = 3
c = a!= b
print(c)
Este programa está avaliando se os 2 valores são diferentes. A saída deste programa resultará no valor: “False”, pois os dois valores avaliados são iguais.
False
Para avaliar se um valor é menor que outro, utilizamos o operador: “<”. Assista ao seguinte programa:
a = 3
b = 7
c = a < b
print(c)
A saída deste programa resultará no seguinte valor:
True
Assim, é possível comparar 2 valores. Você pode experimentar outros operadores de comparação.
Conclusão.
Como você pode ver, fazer aritmética e declarar variáveis em Python é muito fácil. Se compararmos com a maioria das outras linguagens, podemos ver que é mais fácil declarar variáveis na linguagem Python, pois elas são reconhecidas automaticamente. O Python analisa o tipo de dados que foi atribuído à variável e, assim, determina qual é o seu tipo. Observe que os tipos básicos como: bool, int, float e str, são os mais utilizados em programas ou projetos feitos com a linguagem Python. A prática é o professor de qualquer assunto.