domingo, 27 de outubro de 2019

Criando um jogo com python #4

Fala pessoal, blz?

Esse código fonte utilizado no vídeo:

import pygame
from random import randint
pygame.init()

x = 230 # max 530 min 230
y = 100
pos_x = 526
pos_y = 800
pos_y_a = 1200
pos_y_c = 1600

velocidade_outros = 12

velocidade = 10
fundo = pygame.image.load('tela.PNG')
carro = pygame.image.load('carro_menor2.png')
policia = pygame.image.load('policia2.png')
ambulancia = pygame.image.load('ambulancia.png')
camionete = pygame.image.load('carro_preto.png')

janela = pygame.display.set_mode((800,600))
pygame.display.set_caption("Criando um jogo com Python")

janela_aberta = True
while janela_aberta :
pygame.time.delay(50)

for event in pygame.event.get():
if event.type == pygame.QUIT:
janela_aberta = False

comandos = pygame.key.get_pressed()

if comandos[pygame.K_RIGHT] and x<= 530:
x += velocidade
if comandos[pygame.K_LEFT] and x >= 230:
x -= velocidade

if (pos_y <= -180) and (pos_y_a <= -180) and (pos_y_c <= -180) :
pos_y = randint(800,2000)
pos_y_a = randint(800,2000)
pos_y_c = randint(800,2000)

pos_y -= velocidade_outros + randint(1,10)
pos_y_a -= velocidade_outros + randint(1,10)
pos_y_c -= velocidade_outros + randint(1,10)


janela.blit(fundo,(0,0))
janela.blit(carro,(x,y))
janela.blit(policia, (pos_x, pos_y))
janela.blit(ambulancia, (pos_x - 300, pos_y_a))
janela.blit(camionete, (pos_x - 136, pos_y_c))
pygame.display.update()

pygame.quit()

sábado, 16 de fevereiro de 2019

Tkinter: Como fazer um menu

Fala pessoal, blz?
Hoje vou mostrar como criar um menu em python com o módulo tkinter.



Como sempre, vou deixar aqui o código e o link do vídeo no youtube com a explicação:
Link:  https://www.youtube.com/watch?v=e95MdwE3xtA

                                                        CÓDIGO

from tkinter import *
janela = Tk()
janela.geometry("500x500")

def funcao1():
    label_1["foreground"]= "blue"
def funcao2():
    label_1["foreground"]= "red"
def funcao3():
    label_1["foreground"]= "green"
def funcao4():
    label_1["foreground"]= "yellow"

label_1 = Label(janela, text="Mude a cor no menu", font="Arial 25")
label_1.place(x=80, y=150)

m = Menubutton(janela, text="Meu menu",font="Arial 20",background="white")
m.menu = Menu(m)
m["menu"] = m.menu

m.menu.add_command(label="Azul",command=funcao1)
m.menu.add_command(label="Vermelho",command=funcao2)
m.menu.add_command(label="Verde",command=funcao3)
m.menu.add_command(label="Amarelo",command=funcao4)

m.place(x=180, y=10)
janela.mainloop()

quinta-feira, 14 de fevereiro de 2019

Tkinter + Serial + ESP32

No post de hoje, vou ensinar como enviar dados pela serial através de uma interface gráfica feita com python e ler esses dados com o ESP32.


Vou deixa aqui o link do vídeo com a explicação do código utilizado:
Link: https://www.youtube.com/watch?v=uME3aRGIoAY&t=190s

Segue os códigos utilizados no projeto, qualquer dúvida deixe uma mensagem.

                                                              CÓDIGO ESP32
int ledAzul = 18;
int ledVermelho = 14;
int valor_recebido;

void setup() {
  Serial.begin(9600);
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledAzul, OUTPUT);

}

void loop() {
  if(Serial.available() > 0)
  {
    valor_recebido = Serial.read();
  }
  if(valor_recebido == '1'){
    digitalWrite(ledVermelho,HIGH);
  }
  else if(valor_recebido == '0'){
    digitalWrite(ledVermelho,LOW);
  }
   else if(valor_recebido == '2'){
    digitalWrite(ledAzul,HIGH);
  }
   else if(valor_recebido == '3'){
    digitalWrite(ledAzul,LOW);
  }

}
                                                            CÓDIGO PYTHON

import serial
from tkinter import *

valor_led = 1
valor_led2 = 1

esp32 = serial.Serial('COM6', 9600)




def funcao_botao():
    global valor_led
    global esp32

    if valor_led == 1:
        valor_led = 0
        esp32.write(b'1')
        label_estado_led["text"]="Ligado"
        label_estado_led["foreground"] = "blue"
    else:
        valor_led = 1
        esp32.write(b'0')
        label_estado_led["text"] = "Desligado"
        label_estado_led["foreground"] = "blue"

def funcao_botao2():
    global valor_led2
    global esp32

    if valor_led2 == 1:
        valor_led2 = 0
        esp32.write(b'2')
        label_estado_led2["text"] = "Ligado"
        label_estado_led2["foreground"] = "blue"
    else:
        valor_led2 = 1
        esp32.write(b'3')
        label_estado_led2["text"] = "Desligado"
        label_estado_led2["foreground"] = "blue"



janela = Tk()

label_1 = Label(janela, text="LED VERMELHO: ", font="Arial 15",background="light blue",foreground="red")
label_1.place(x=300,y=50)

label_estado_led = Label(janela,text="",font="Arial 22",background="light blue")
label_estado_led.place(x=315,y=140)

botao_1 = Button(janela, width=20, text="ENVIAR", command=funcao_botao ,background="yellow")
botao_1.place(x=300, y=200)

janela.geometry("500x400+0+0")
janela.configure(background="light blue")


label_2 = Label(janela, text="LED VERDE: ", font="Arial 15",background="light blue",foreground="green")
label_2.place(x=50,y=50)

label_estado_led2 = Label(janela,text="",font="Arial 22",background="light blue")
label_estado_led2.place(x=50,y=140)

botao_2 = Button(janela, width=20, text="ENVIAR", command=funcao_botao2 ,background="yellow")
botao_2.place(x=50, y=200)

janela.mainloop()

segunda-feira, 28 de janeiro de 2019

Tkinter #1 Labels

Fala galera blz?

Vou ensinar o "hello world" com o tkinter. Como criar uma janela com uma label.



Abaixo está o video com a  explicação e o código utilizado.



                                                                       Código:

from tkinter import *

janela = Tk()

label_1 = Label(janela, text="eletronica e programacao", font="Arial 20")
label_1.place(x=200, y=200)

janela.geometry("800x600+0+0")
janela.mainloop()




Comunicação serial com python e ESP8266 ( ou Arduino)

Eae pessoal, blz?
Nesse post vou mostrar como fazer comunicação entre serial entre um microcontrolador e um programa em python.

O código criado em python envia caracteres pela serial. Esse
s caracteres são lidos pelo ESP8266 e executam uma função determinada de acordo com o caractere que foi enviado.


Essa é a montagem que foi feita, o ESP foi conectado a porta USB do notebook, e o circuito externo é composto de um LED e um servo motor.

Vou deixar aqui o código feito em python para enviar os caracteres e o código do ESP8266 que recebe os caracteres e aciona o LED e/ou servo motor de acordo com o caractere enviado.

                                                       CÓDIGO PYTHON

import serial

arduino = serial.Serial('COM6', 9600)

while 1:
    dados = input("digite o comando \n")

    if dados == '1':
        arduino.write(b'1')
        print("led ligado")
    elif dados == '0' :
        arduino.write(b'0')
        print("led desligado")
    elif dados == '2' :
        arduino.write(b'2')
        print("0 graus ")
    elif dados == '3' :
        arduino.write(b'3')
        print("90 graus")
    elif dados == '4' :
        arduino.write(b'4')
        print("180 graus")


                        
                       CÓDIGO ESP8266

#include <Servo.h>

int ledVermelho = 0;
int valor_recebido;
Servo s;

void setup() {
  Serial.begin(9600);
  pinMode(ledVermelho, OUTPUT);
  s.attach(16);
  s.write(10);
}

void loop() {
  if(Serial.available() > 0)
  {
    valor_recebido = Serial.read();
  }
  if(valor_recebido == '1'){
    digitalWrite(ledVermelho,HIGH);
  }
  else if(valor_recebido == '0'){
    digitalWrite(ledVermelho,LOW);
  }
  else if(valor_recebido == '2'){
    s.write(10);
  }
  else if(valor_recebido == '3'){
    s.write(90);
  }
  else if(valor_recebido == '4'){
    s.write(170);
  }
}



Link do Canal no Youtube: 
https://www.youtube.com/c/Eletr%C3%B4nicaePrograma%C3%A7%C3%A3o

Criando um jogo com python #4

Fala pessoal, blz? Esse código fonte utilizado no vídeo: import pygame from random import randint pygame.init() x = 230 # max 530 min 23...