Jaolmos /
raspberry-python-lab-server
Servidor self-hosting Raspberry Pi 5 como laboratorio de desarrollo Python. Hardware, Nginx, Docker, Cloudflare Tunnel y seguridad. Sin puertos expuestos, SSL automático.
52/100 healthLoading repository data…
pyladiesdf / repository
Tutorial de como aprender Python criando um clone do Flappy Bird
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Arquivo com o esqueleto do tutorial
Bem-vinda ao Tutorial do Flappy Bird das Pyladies! Estamos felizes em vê-la aqui :) Este tutorial é uma pequena viagem pelo mundo da programação. Vamos entender um pouco como os programas que governam nossos computadores funcionam usando um método muito direto: criando nosso primeiro programa de computador!
Como todas as coisas desconhecidas, isto vai ser uma aventura - mas não se preocupe! Já que você teve coragem para estar aqui, você vai ficar bem :)
Neste tutorial, vamos criar um joguinho estilo Flappy Bird e aprender o suficiente de programação para que você tenha independência para modificar o jogo e consiga criar outros joguinhos diferentes do zero. A notícia boa é que com apenas alguns poucos conceitos, podemos criar uma infinidade de novos jogos, programas de computador, websites etc. Conhecer os blocos básicos da programação nos leva bem longe. É lógico que nem sempre é fácil: programação é um desafio constante e mesmo programadores e programadoras experientes de vez em quando encontram dificuldades inesperadas, ou pegam becos sem saída, abordagens mal planejadas, etc. Esses obstáculos fazem parte da diversão e são como um quebra-cabeça: se for muito fácil e previsível, logo perdemos o interesse.
Nosso tutorial segue um caminho um pouco diferente de outros tutoriais de programação. Isso porque não vamos montar nosso Flappy Bird da base até o topo. A abordagem é inversa: começamos com um módulo que possui uma versão completa do jogo e vamos abrir, desmontar, entender e, aos poucos, substituir cada pedaço por código que nós mesmas criamos. No fim do tutorial, sobrará apenas o nosso código e este módulo auxiliar poderá ser descartado.
No meio do caminho, vamos brincar com os parâmetros do jogo, inventar novas regras, mudar as cores e fazer todo tipo de coisa estranha. Esperamos que, ao terminar o tutorial, todas tenham o conhecimento necessário para começar um novo projeto do zero e a se desafiar. Será que você consegue fazer um jogo como o Pong do zero? Quais regras do Flappy Bird você alteraria? Pensa em outros efeitos visuais? Você tem uma idéia para criar um jogo que ninguém fez? E que tal um web site? Um aplicativo de celular? Um algoritmo de aprendizado de máquina? Enfim, o objetivo do tutorial é abrir a caixa de Pandora, o resto é com você!
Programação é uma mistura de criatividade com técnica. Pense como faz um artista ou artesão: criatividade é muito importante, mas a técnica é necessária para usar os instrumentos corretamente e obter o efeito desejado.
O instrumento básico de um programador é o editor de código. É onde escrevemos e lemos o código dos nossos programas. Cada linguagem de programação exige algumas ferramentas adicionais. No caso do Python, precisamos de um interpretador de Python instalado na máquina. Este é um programa que lê código Python e executa as instruções encontradas. Por fim, dependendo do projeto, precisamos de instalar alguns módulos ou programas adicionais. No nosso caso, vamos instalar o Pyxel, que é uma espécie de extensão do Python (em linguagem de programador, uma "biblioteca") que permite a criação de joguinhos retrô, estilo 8-bit. (Alguém aqui já jogou Atari, ou isso é velho demais?)
Vamos à lista de recursos que devemos preparar antes de começar:
Se você ainda não possui estes recursos instalados, siga um dos tutoriais abaixo, a depender do sistema operacional no seu computador:
Agora que temos tudo preparado, vamos começar com o nosso tutorial. O primeiro passo é criar uma pasta onde vamos guardar nosso projeto e abrir o Visual Studio Code nesta pasta. Nosso projeto começa vazio e precisamos criar um arquivo contendo o código fonte e copiar alguns arquivos auxiliares.
O primeiro passo é ir para a pasta do projeto e copiar os arquivos
flappy.py e
data.pyxres para a pasta do projeto.
Ao lado destes dois arquivos, crie um arquivo vazio chamado jogo.py usando a função
Arquivo > Novo Arquivo (ou Ctrl+N) no VSCode. Vamos abrir este arquivo e começar a trabalhar.
Abra o arquivo jogo.py e copie e cole as duas linhas abaixo:
import flappy
flappy.comecar()
A primeira linha diz para o Python importar o módulo auxiliar flappy, que irá nos ajudar ao longo
deste tutorial. Já a segunda linha, flappy.comecar() manda o Python executar a função
comecar definida dentro deste módulo. Em programação, uma função é uma espécie de maquininha: quando pedimos
para executá-la, o computador realiza uma série de instruções ao final pode retornar um resultado ou
realizar um conjunto de ações. Neste caso, a função comecar simplesmente executa o jogo.
A primeira parte deste comando, flappy.comecar representa o nome completo da função dentro do programa. Algo como
sobrenome.nome da função, já que todas funções que começam com o mesmo prefixo flappy fazem parte do mesmo
módulo. Já os parênteses após o nome da função dizem para o Python que queremos executá-la sem passar nenhum
parâmetro adicional (os parâmetros adicionais, se existissem, ficariam entre os parênteses).
Com estas duas linhas, criamos o jogo completo. Simples, né?
Claro que não! Um programa de computador tipicamente funciona em camadas. Criamos funções que
executam operações simples, depois juntamos estas funções para criar operações um pouco mais complexas,
que juntamos em outras funções ainda mais elaboradas e assim por diante. No caso do nosso jogo, a flappy.comecar
esconde uma enorme complexidade: esta função executa outras funções que, entre outras coisas, desenham o
estado do jogo na tela, atualizam a posição dos elementos, verificam colisões, etc. A função de desenhar pode
chamar outras funções responsáveis por operações mais simples
como, por exemplo, desenhar somente o passarinho, ou desenhar os canos. Estas, por sua vez, podem chamar funções
ainda mais fundamentais que manipulam pixels específicos na tela e interagem com o sistema
operacional, placa de vídeo e outros detalhes de baixo nível.
Nós não vamos descer o buraco até o nível mais fundamental dos bits: se puxarmos o fio de qualquer programa de computador trivial, iríamos nos deparar com um conjunto imenso de milhões de linhas de código feitas por milhares de programadoras e programadores do mundo inteiro ao longo de décadas e que lidam com detalhes altamente técnicos do funcionamento da memória, processador e outros dispositivos. É muita coisa para qualquer um acompanhar! Mas vamos descer o suficiente para que as novas habilidades sejam úteis: que você consiga criar novos jogos, pensar em novos projetos e personalizar o Flappy Bird para ele funcionar exatamente do jeito que você deseja!
Podemos executar o nosso programa jogo.py diretamente no VSCode. Basta abrir um terminal clicando
no menu Terminal > Novo Terminal (ou Ctrl+Shift+') e digitar a seguinte instrução: python jogo.py. Você deve
ver uma janela parecida com esta:
Aproveita a chance e tenta quebrar o seu recorde do Flappy Bird ;-)
A função flappy.comecar analisa seu código procurando por várias dicas de personalização. Podemos
redefinir funções para controlar aspectos específicos do jogo (por exemplo, como desenhamos o passarinho),
mas o jeito mais simples de interagir é modificando variáveis de configuração.
Em Python, podemos criar uma variável simplesmente usando a notação <nome-da-variável> = <valor>. Assim,
é possível escrever variáveis entre as linhas import flappy e flappy.comecar() e, caso o nome da variável
seja reconhecido pelo módulo flappy, seu valor irá influenciar a execução do jogo.
Modifique o arquivo jogo.py para ficar mais ou menos como abaixo:
import flappy
largura_tela = 150
altura_tela = 255
gravidade = 1.0
pulo = 8.0
flappy.comecar()
Os números mostrados são os valores padrão de cada uma destas variáveis. Modifique estes números para
ver o que acontece. Você verá o tamanho da tela se alterar e a gravidade funcionando de modos estranhos.
As variáveis que terminam com .0 aceitam valores quebrados
como, por exemplo, gravidade = 0.75 e até valores negativos. Importante: os valores da tela
devem estar entre 0 e 255.
Você também pode criar a variável que quiser no programa, (ex.: numero_preferido = 42), mas, a
não ser que a variável tenha um nome reconhecido pelo módulo flappy, ela ainda não terá efeito algum.
Existem algumas pequenas limitações a respeito do nome. Nomes válidos de variáveis podem conter letras,
números e o "underscore" _. Um nome também não pode começar com um número ou conter espaços ou
hífens em qualquer posição.
Dica: o lado direito de uma definição de variável pode ser uma expressão matemática como, por exemplo,
pulo = 16 / 2. O Python reconhece as 4 operações fundamentais e outras operações um pouco mais avançadas como
exponenciação, resto da divisão, entre outras.
Ao calibrar os valores das variáveis, podemos controlar apenas alguns aspectos básicos do jogo. Agora é hora de abrir o brinquedo, ver o que tem dentro e mexer nas engrenagens. Vamos começar com a primeira função importante, que é desenhar os elementos do jogo na tela: o céu, nuvens, o passarinho, os canos, etc.
Para fazermos isto, é necessário aprender como se cria novas funções. Com isso, vamos trocar
a função responsável por pintar a tela pela nossa própria versão personalizada. Vimos que para chamar uma
função, basta escrever o nome da mesma e abrir e fechar um parênteses no final (como em flappy.comecar()).
O módulo flappy entende que se você criar uma função chamada desenhar, ele irá utilizá-la ao invés de usar a versão
padrão desta função. Podemos testar essa idéia definindo a variável desenhar = None no nosso código. O valor
especial None (que "nulo/nada" em português) representa situações onde queremos anunciar que uma determinada variável
ainda não possui um valor bem definido, ou que está em um estado inválido ou inconsistente. No nosso caso,
se falarmos que a função desenhar é nula, estamos pedindo para o módulo flappy não fazer nada quando esta função
for chamada. Coloque a linha desenhar = None antes de iniciar o jogo e você verá que a tela permanece preta!
Talvez este último experimento não tenha sido muito útil, mas no espírito de desmontar o brinquedo e depois colocar as peças
Selected from shared topics, language and repository description—not editorial ratings.
Jaolmos /
Servidor self-hosting Raspberry Pi 5 como laboratorio de desarrollo Python. Hardware, Nginx, Docker, Cloudflare Tunnel y seguridad. Sin puertos expuestos, SSL automático.
52/100 healthO sistema de reconhecimento facial possui um funcionamento bem simples, operando na placa Dragonboard 410c em linux utilizando apenas dois scripts em python e um banco de dados local criado por meio de pacotes do linux, possui uma precisão considerável, para um sistema fácil de ser feito e relativamente barato. Add TipAsk Question Step 1: Passo 1: Descrição E Materiais Para o desenvolvimento do sistema de reconhecimento facial foi utilizada a placa Dragonboard 410c além de dois LEDs, um Buzzer, uma webcam e alguns pacotes do linux instalados no linaro, sistema operacional da placa. Foram utilizados os pacotes "mc", "MySQL" e "open cv". Toda a programação foi escrita em python e, portanto, utiliza as respectivas bibliotecas da linguagem. Todos os pacotes foram instalados com o auxílio do "aptitude". Para o funcionamento do programa são necessários o script em python para a captura das informações de nome, idade e rosto do usuário, o banco de dados feito no MySQL para a manipulação de dados e comunicação com o próximo item: o script de leitura facial, também em python. Add TipAsk Question Step 2: Passo 2: Configuração Do Banco De Dados A primeira coisa que deve ser feita é a configuração de um banco de dados para a troca de informações entre o script de adicionar usuário e o de procurar usuários. Vale lembrar que as imagens gravadas pela câmera para comparação com o vídeo serão gravadas em uma pasta local, fora do banco de dados. Inicialmente é instalado o MySQL para estabelecer o banco de dados que será utilizado nos scripts. Para criar bancos de dados basta seguir os passos do link à seguir: https://www.vivaolinux.com.br/artigo/Gerenciando-b... No banco de dados se pode criar inúmeras variáveis para serem requisitadas pelo script para o preenchimento das informações do usuário, para efeito deste tutorial foram criadas duas variáveis, o nome e o CPF, mas estes são apenas exemplos, poderiam ter sido criadas n variáveis, como por exemplo a idade, a cor do cabelo, altura, etc. Também está presente no banco de dados uma possibilidade de ser colocado um número de identificação para a informação armazenada. No script de saída há apenas dois prints para mostrar o nome e o CPF do usuário identificado. Uma vez configurado o banco de dados, já se pode trabalhar no script para receber as informações. Add TipAsk Question Step 3: Passo 3: Configurando a Recepção De Dados Do Usuário Nesta parte do tutorial será feita a programação em python do script para receber os dados do usuário, na forma de "raw_input()" para a determinação do nome e do CPF. Para a recepção de dados da câmera já é necessária a utilização do open cv, baixado por meio do linux, além do MySQL para atrelar o código om o banco de dados. O código está disponível nesta página. Attachments criando_inf.pycriando_inf.pyDownload Add TipAsk Question Step 4: Passo 4: Programando O Reconhecimento Facial E Periféricos Picture of Passo 4: Programando O Reconhecimento Facial E Periféricos A programação utilizada neste script é responsável por comunicar-se com o banco de dados enquanto reconhece a face do usuário, além de ativar os Groves extras ( Buzzer, LEDs). Para esta última é necessário um comando diferente para o python, para que execute comandos no terminal do linux para habilitar a funcionalidade dos pinos corretos na Dragonboard e assegurar que operem corretamente. Os periféricos utilizados estão mostrados na imagem disponível junto ao código disponibilizado. Attachments recon_face.pyrecon_face.pyDownload Add TipAsk Question Step 5: Passo 5: Testes Nesse tipo de experimento erros são bastante comuns. Normalmente erros ocorrem devido à falhas no código, pinagem, ou até mesmo, imprecisões nos periféricos, como a webcam, portanto, é recomendável fazer diversos teste, com fundos de cores diferentes, pessoas diferentes etc. Este código é mais recomendável para apenas um usuário por vez, já que podem haver problemas com a detecção e reconhecimento de mais de uma face.
JonathanGGB /
Tutorial para crear una API básica que consume una base de datos y cómo usarla en Python
30/100 healthMISW4406 /
Repositorio con código base para la implementación del patrón Saga usando orquestación como mecanismo de coordinación.
44/100 healthhansalemaos /
Raspagem de Dados Esportivos: Como Extrair Odds da Sportingbet com Python
46/100 healthVicMCA /
Tutoriais e guias curtos sobre assuntos diversos para uso como referência. Alguns criados por mim, e diversos forks para centralizar minhas referências. Confiram meu "Guia de Referências de Python"! Agradeço todo e qualquer feedback! <3
32/100 health