Ir ao conteúdo
  • Cadastre-se

Lucca Rodrigues

Membros Plenos
  • Total de itens

    127
  • Registro em

  • Última visita

  • Qualificações

    N/D

Reputação

41

1 Seguidor

  • Visitante

Sobre Lucca Rodrigues

  • Data de Nascimento 03/09/2001 (18 anos)

Informações gerais

  • Cidade e Estado
    Londrina/PR
  • Sexo
    Prefiro não dizer

Outros

  • Ocupação
    Engenharia Elétrica UEL
  • Interesses
    Tomate
  1. @CarlosCarrera Só uma ideia aqui que eu tive: se você quer contar de 0 a 9, daria pra alimentar o circuito com um delay off com 555, assim, por exemplo, se o clock fosse de 1Hz, como são 10 leds, o ciclo seria de 10 segundos, aí você poderia alimentar o circuito com um delay off de 10 segundos, então depois de 1 ciclo, os leds apagam.
  2. @Renato.88 Conseguiu encontrar? kk
  3. Olá. Gostaria de saber se há algum fator que faria com que o seguinte não funcionasse: Queria usar um transmissor de áudio por IR com uma escuta de transistor, pra tentar, ao falar, transmitir o áudio, esses são os circuitos da escuta e do transmissor IR, respectivamente, o primeiro eu já testei e sei que funciona, minha dúvida é ao introduzir ele ao transmissor, se irá funcionar:
  4. @Renato.88 Deve ser gambiarra, mas quando eu liguei o Q10 no Q5 no laboratório deu certo kk, eu achei que iria multiplicar 1024 por 32 e resultaria em divisão de 32768. Vou usar um 4013 na saída de 2Hz então.
  5. @Renato.88 Por esse link é mais fácil de visualizar, mas acho que o erro mesmo é no clock, teria que ser de 1Hz, pois não faria sentido ser outro valor, vou recriar no proteus pra ter certeza, não fiz isso antes porque a versão gratuita não salva, uma pena ter que perder a montagem toda. De qualquer forma, acho que seria melhor usar um cristal de relógio em si, fazendo um circuito com 4060 sai 1Hz certinho, já com o 555, o erro é bem maior.
  6. Olá, gostaria de tirar algumas dúvidas acerca do relógio digital abaixo: Eu imagino que seja um relógio de 24h, certo? Caso não seja, poderiam me dar alguma explicação? Entendo que os displays dos segundos estão configurados para contar de 0~9 a unidade e de 0~5 a dezena, para os minutos é a mesma coisa, já para as horas é um pouco diferente, depois isso tudo é levado para decodificador 7447 e passado para o display. Porque o clock usado é de aproximadamente 100Hz (cap. 1µF, Res1. 4.7K, Res2. 4.7K)? Não deveria ser de 1Hz? Acho que poderia ser um erro do autor.
  7. @rmlazzari58 Sim, mas no caso a chave só tem 2 posições, então quando o circuito for alimentado, a chave já vai estar em uma delas, iniciando um dos ciclos. O que tentei fazer foi justamente isso, só que por conta do simulador ser ruim, não me deixa visualizar o resultado. @Isadora Ferraz É uma longa história, eu e meus amigos jogávamos Minecraft antigamente, e como nosso professor acabou de nos instruir a cerca do 555 no modo monoestável, a gente queria tentar recriar os circuitos do jogo com o timmer. Acontece que no jogo, ativando uma alavanca, com o uso de um repetidor (delay de 1 à 4 segundos), um pistão seria acionado, desativando, o pistão retorna à posição inicial com o mesmo delay que acionou.
  8. Olá. Estou querendo fazer um projeto, o funcionamento dele seria assim: Utilizando uma chave H-H de 2 posições, em uma das posições, será acionado um delay on de 1 à 4 segundos, sua saída irá acionar um delay off de 1 segundo que irá ligar um motor. Na outra posição da chave, será acionado outro delay on de 1 à 4 segundos que irá acionar um delay off de 1 segundo, porém dessa vez, irá inverter o giro do motor. Tentei fazer isso com 4 CI's 555 e uma ponte H de NPN's, não sei se fiz certo, e também o fato de eu ter feito num simulador que apresenta os componentes como eles são, não sua simbologia, que seria mais fácil de analisar, só torna mais bagunçado. Agradeço por qualquer dica ou sugestão.
  9. @Semnet Pode sim, você utiliza as funções para organizar o programa, o ideal seria montar seu código com elas, mas não são totalmente indispensáveis. Caso queira um material de apoio, deixarei os slides do meu professor para você dar uma olhada: Apoio1.pptx Apoio2.pdf
  10. Preciso atribuir imagens às plataformas, como faço isso? from pygame import * import random window_x = 500 window_y = 550 init() window = display.set_mode((window_x, window_y)) display.set_caption('Cloud Jumper') clock = time.Clock() class Stick_Man: def __init__(self): self.crouch = image.load('mario.png') self.fall = image.load('mario.png') self.jumping_right = image.load('mario.png') self.jumping_left = transform.flip(self.jumping_right, True, False) self.stand = image.load('mario.png') self.reset() def reset(self): self.speed_x = 0 self.speed_y = 0 self.max_speed_x = 5 self.max_speed_y = 15 self.x_acceleration = 0.5 self.img = self.jumping_right self.jump_speed = 15 scale = 7 self.width, self.height = 7 * scale, 12 * scale self.scale = scale self.x = (window_x - self.width) / 2 self.y = window_y - self.height def update(self,p): self.side_control() self.physics(p) self.move() self.show() self.x += self.speed_x self.y -= self.speed_y return (self.img, (self.x, self.y, self.width, self.height)) def physics(self, p): on = False for colour, rect in p: x,y,w,h = rect #X range if self.x + self.width / 2 > x and self.x - self.width / 2 < x + w: #Y range if self.y + self.height >= y and self.y + self.height <= y + h: if self.speed_y < 0: on = True if not on and not self.y >= window_y - self.height: self.speed_y -= 0.5 elif on: self.speed_y = self.jump_speed else: self.y = window_y - self.height self.speed_x = 0 self.speed_y = 0 if self.x != (window_x - self.width) / 2: if self.x > (window_x - self.width) / 2: self.x = max((window_x - self.width) / 2, self.x - 6) else: self.x = min((window_x - self.width) / 2, self.x + 6) else: keys = key.get_pressed() if keys[K_SPACE]: self.speed_y = self.jump_speed def side_control(self): if self.x + self.width < 0: self.x = window_x - self.scale if self.x > window_x: self.x = -self.width def show(self): if self.speed_y > 0: if self.speed_x > 0: self.img = self.jumping_right elif self.speed_x < 0: self.img = self.jumping_left else: self.img = self.fall def slow_character(self): if self.speed_x < 0: self.speed_x = min(0, self.speed_x + self.x_acceleration / 6) if self.speed_x > 0: self.speed_x = max(0, self.speed_x - self.x_acceleration / 6) def move(self): keys = key.get_pressed() if not self.y >= window_y - self.height: if keys[K_LEFT] and keys[K_RIGHT]: self.slow_character() elif keys[K_LEFT]: self.speed_x -= self.x_acceleration elif keys[K_RIGHT]: self.speed_x += self.x_acceleration else: self.slow_character() self.speed_x = max(-self.max_speed_x, min(self.max_speed_x, self.speed_x)) self.speed_y = max(-self.max_speed_y, min(self.max_speed_y, self.speed_y)) platform_spacing = 100 class Platform_Manager: def __init__(self): self.platforms = [] self.spawns = 0 self.start_spawn = window_y scale = 3 self.width, self.height = 24 * scale, 6 * scale def update(self): self.spawner() return self.manage() def spawner(self): if window_y - info['screen_y'] > self.spawns * platform_spacing: self.spawn() def spawn(self): y = self.start_spawn - self.spawns * platform_spacing x = random.randint(-self.width, window_x) self.platforms.append(Platform(x,y,random.choice([1,-1]))) self.spawns += 1 def manage(self): u = [] b = [] for i in self.platforms: i.move() i.change_direction() b.append(i.show()) if i.on_screen(): u.append(i) self.platforms = u return b class Platform: def __init__(self,x,y,direction): self.x = x self.y = y self.direction = direction self.speed = 2 self.colour = (random.randint(0,255), random.randint(0,255), random.randint(0,255)) scale = 3 self.width, self.height = 24 * scale, 6 * scale def move(self): self.x += self.speed * self.direction self.change_direction() def change_direction(self): if self.x <= 0: self.direction = 1 if self.x + self.width >= window_x: self.direction = -1 def on_screen(self): if self.y > info['screen_y'] + window_y: return False return True def show(self): return ((0,0,0), (self.x, self.y, self.width, self.height)) def random_colour(l,h): return (random.randint(l,h),random.randint(l,h),random.randint(l,h)) def blit_images(x): for i in x: window.blit(transform.scale(i[0], (i[1][2],i[1][3])), (i[1][0], i[1][1] - info['screen_y'])) def event_loop(): for loop in event.get(): if loop.type == KEYDOWN: if loop.key == K_ESCAPE: quit() if loop.type == QUIT: quit() f = font.SysFont('', 50) def show_score(score, pos): message = f.render(str(round(score)), True, (100,100,100)) rect = message.get_rect() if pos == 0: x = window_x - rect.width - 10 else: x = 10 y = rect.height + 10 window.blit(message, (x, y)) info = { 'screen_y': 0, 'score': 0, 'high_score': 0 } stick_man = Stick_Man() platform_manager = Platform_Manager() while True: #MATH THINGS event_loop() platform_blit = platform_manager.update() stick_blit = stick_man.update(platform_blit) info['screen_y'] = min(min(0,stick_blit[1][1] - window_y*0.4),info['screen_y']) info['score'] = (-stick_blit[1][1] + 470)/50 #print(stick_blit[1][1], info['screen_y']) if stick_blit[1][1] - 470 > info['screen_y']: info['score'] = 0 info['screen_y'] = 0 stick_man = Stick_Man() platform_manager = Platform_Manager() clock.tick(60) #DISPLAY THINGS window.fill((255,255,255)) blit_images([stick_blit]) for x in platform_blit: i = list(x) i[1] = list(i[1]) i[1][1] -= info['screen_y'] draw.rect(window, i[0], i[1]) info['high_score'] = max(info['high_score'], info['score']) show_score(info['score'],1) show_score(info['high_score'],0) display.update()
  11. @curto_circuito É um trimpot de carvão vertical, tem a mesma função de um potenciômetro, mas é menor e normalmente não precisa ser ajustado, deixando esse papel para o próprio potenciômetro.
  12. Olá. O jogo que pretendo fazer é o seguinte: será um jogo no qual o jogador terá que saltar em plataformas (nuvens) e acumular pontos, o que tenho até agora é um personagem que se movimenta pela tela em todas as direções e ao atingir uma nuvem, o jogo se encerra. O placar aumenta graduavelmente, ao terminar de uma partida e iniciar de outra, a melhor pontuação é mostrada, caso o jogador atinja uma melhor pontuação, esta é atualizada. O jogo se inicia ao apertar qualquer tecla, e reinicia da mesma forma, o que preciso é de qualquer ajuda a respeito de como faria para o personagem efetuar o pulo, talvez teria que usar um pouco da teoria daquele caso especial do MRUV, o movimento em queda livre. Também gostaria de saber como faria para estabelecer limites para as plataformas, como feito para a janela do jogo (o jogador é impossibilitado de sair da janela). Eu dei uma lida num código de um jogo chamado Dodger, a partir dele é que adaptei para o meu, mas não mudei muita coisa, agradeço por qualquer ajuda e esclarecimento. import pygame, random, sys from pygame.locals import * WINDOWWIDTH = 800 WINDOWHEIGHT = 600 TEXTCOLOR = (20, 150, 255) BACKGROUNDCOLOR = (0, 0, 0) FPS = 40 BADDIEMINSIZE = 120 BADDIEMAXSIZE = 180 BADDIEMINSPEED = 5 BADDIEMAXSPEED = 8 ADDNEWBADDIERATE = 50 PLAYERMOVERATE = 10 def terminate(): pygame.quit() sys.exit() def waitForPlayerToPressKey(): while True: for event in pygame.event.get(): if event.type == QUIT: terminate() if event.type == KEYDOWN: if event.key == K_ESCAPE: terminate() return def playerHasHitBaddie(playerRect, baddies): for b in baddies: if playerRect.colliderect(b['rect']): return True return False def drawText(text, font, surface, x, y): textobj = font.render(text, 1, TEXTCOLOR) textrect = textobj.get_rect() textrect.topleft = (x, y) surface.blit(textobj, textrect) pygame.init() mainClock = pygame.time.Clock() windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT)) pygame.display.set_caption('Cloud Jumper') pygame.mouse.set_visible(False) font = pygame.font.SysFont(None, 48) playerImage = pygame.image.load('mario.png') playerRect = playerImage.get_rect() baddieImage = pygame.image.load('quadrado.png') drawText('Cloud Jumper', font, windowSurface, (WINDOWWIDTH / 2.75), (WINDOWHEIGHT / 5)) drawText('Aperte uma tecla para começar', font, windowSurface, (WINDOWWIDTH / 4.15) - 30, (WINDOWHEIGHT / 3) + 60) pygame.display.update() waitForPlayerToPressKey() MelhorPontuação = 0 while True: baddies = [] Pontuação = 0 playerRect.topleft = (WINDOWWIDTH / 2, WINDOWHEIGHT - 100) moveLeft = moveRight = moveUp = moveDown = False reverseCheat = slowCheat = False baddieAddCounter = 0 while True: Pontuação += 1 for event in pygame.event.get(): if event.type == QUIT: terminate() if event.type == KEYDOWN: if event.key == ord('z'): reverseCheat = True if event.key == ord('x'): slowCheat = True if event.key == K_LEFT or event.key == ord('a'): moveRight = False moveLeft = True if event.key == K_RIGHT or event.key == ord('d'): moveLeft = False moveRight = True if event.key == K_UP or event.key == ord('w'): moveDown = False moveUp = True if event.key == K_DOWN or event.key == ord('s'): moveUp = False moveDown = True if event.type == KEYUP: if event.key == ord('z'): reverseCheat = False Pontuação = 0 if event.key == ord('x'): slowCheat = False Pontuação = 0 if event.key == K_ESCAPE: terminate() if event.key == K_LEFT or event.key == ord('a'): moveLeft = False if event.key == K_RIGHT or event.key == ord('d'): moveRight = False if event.key == K_UP or event.key == ord('w'): moveUp = False if event.key == K_DOWN or event.key == ord('s'): moveDown = False if event.type == MOUSEMOTION: playerRect.move_ip(event.pos[0] - playerRect.centerx, event.pos[1] - playerRect.centery) if not reverseCheat and not slowCheat: baddieAddCounter += 1 if baddieAddCounter == ADDNEWBADDIERATE: baddieAddCounter = 0 baddieSize = random.randint(BADDIEMINSIZE, BADDIEMAXSIZE) newBaddie = {'rect': pygame.Rect(random.randint(0, WINDOWWIDTH-baddieSize), 0 - baddieSize, baddieSize, baddieSize), 'speed': random.randint(BADDIEMINSPEED, BADDIEMAXSPEED), 'surface':pygame.transform.scale(baddieImage, (baddieSize, baddieSize)), } baddies.append(newBaddie) if moveLeft and playerRect.left > 0: playerRect.move_ip(-1 * PLAYERMOVERATE, 0) if moveRight and playerRect.right < WINDOWWIDTH: playerRect.move_ip(PLAYERMOVERATE, 0) if moveUp and playerRect.top > 0: playerRect.move_ip(0, -1 * PLAYERMOVERATE) if moveDown and playerRect.bottom < WINDOWHEIGHT: playerRect.move_ip(0, PLAYERMOVERATE) pygame.mouse.set_pos(playerRect.centerx, playerRect.centery) for b in baddies: if not reverseCheat and not slowCheat: b['rect'].move_ip(0, b['speed']) elif reverseCheat: b['rect'].move_ip(0, -5) elif slowCheat: b['rect'].move_ip(0, 1) for b in baddies[:]: if b['rect'].top > WINDOWHEIGHT: baddies.remove(b) windowSurface.fill(BACKGROUNDCOLOR) drawText('Pontuação: %s' % (Pontuação), font, windowSurface, 10, 0) drawText('MelhorPontuação: %s' % (MelhorPontuação), font, windowSurface, 10, 40) # Draw the player's rectangle windowSurface.blit(playerImage, playerRect) # Draw each baddie for b in baddies: windowSurface.blit(b['surface'], b['rect']) pygame.display.update() if playerHasHitBaddie(playerRect, baddies): if Pontuação > MelhorPontuação: MelhorPontuação = Pontuação break mainClock.tick(FPS) drawText('Fim de jogo', font, windowSurface, (WINDOWWIDTH / 2.65), (WINDOWHEIGHT / 4)) drawText('Aperte uma tecla para jogar novamente', font, windowSurface, (WINDOWWIDTH / 4.45) - 80, (WINDOWHEIGHT / 3) + 50) pygame.display.update() waitForPlayerToPressKey() As imagens usadas são essas (personagem e plataforma, respectivamente):
  13. @fspjonny Não funcionou, fiz o que estava no site e está dando o mesmo erro.
  14. @cleidon dias fonseca A primeira imagem é de um capacitor multicamadas aparentemente, e a segunda é de um capacitor SMD, nenhum dos dois tem polaridade. É meio difícil achar de 22uF por 10V desse tipo, talvez seja por isso que você não encontrou, normalmente são de tântalo ou eletrolíticos (ambos tem polaridade), se for pesquisar, pesquise pelo seu código (226). Não, o E no final não é de eletrolítico, e o capacitor não tem como ser cerâmico e eletrolítico ao mesmo tempo, são duas constituições diferentes, não sei direito o que é, diria que é o código de tolerância do capacitor que está em torno de ± 0.5 pF, normalmente a letra é pra indicar a tensão máxima de operação, mas como você já disse que a tensão dele é de 10V, acho que não poderia ser isso então. Se quiser saber mais sobre: capacitores.
  15. @wainstock Use um multímetro para identificar as saídas, verifique a tensão e use um led para observar os comandos, fora isso, você pode observar a mudança na corrente também, creio que é isso que faz decair ou aumentar a potência na lanterna.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

ebook grátis "Aprenda a ler resistores e capacitores", de Gabriel Torres

GRÁTIS! BAIXE AGORA MESMO!