Breakout RaspberryPi (3 / 4 stap)

Stap 3: Programing


Volgende is programmering voor breakout.

1. start up RaspberryPi en IDLE(python 2.7)

2. Kopieer en plak deze code.

 <p>import RPi.GPIO as GPIO<br>import pygame from pygame.locals import* from sys import exit import time</p><p>class blockC(object):</p><p> def __init__(self,name,image,pos):</p><p> self.name = name self.alive = True self.image =image self.speed = 0. self.location = pos</p><p> def render(self,surface):</p><p> if self.alive: x,y = self.location w,h = self.image.get_size() surface.blit(self.image,(x,y))</p><p> def hit(self): self.alive = False</p><p>pygame.init()</p><p>#Circle_picture radius=6 display = (radius*2,radius*2) color=(0,0,0) pos = (radius,radius)</p><p>screen=pygame.display.set_mode(display,0,32) screen.fill((255,255,255))</p><p>pygame.draw.circle(screen,color,pos,radius)</p><p>pygame.image.save(screen,"circle.bmp")</p><p>#board_picture height=6 length=80 color=(0,0,0)</p><p>screen=pygame.display.set_mode((length,height),0,32) screen.fill((color))</p><p>pygame.image.save(screen,"board.bmp")</p><p>#block_picture height=20 length=40 color=(0,0,0)</p><p>screen=pygame.display.set_mode((length,height),0,32) screen.fill((color))</p><p>pygame.image.save(screen,"block.bmp")</p><p>#picture board_image_filename ='board.bmp' circle_image_filename = 'circle.bmp' block_image_filename = 'block.bmp'</p><p>#GPIOsetup GPIO.setmode(GPIO.BCM) GPIO.setup(22, GPIO.IN) GPIO.setup(23, GPIO.IN) GPIO.setup(24, GPIO.IN) GPIO.setup(25, GPIO.IN)</p><p>#pygame,window,font,clock.etc window=pygame.display.set_mode((840,480)) pygame.display.set_caption("block_game") font = pygame.font.SysFont(None,80) font2 = pygame.font.SysFont(None,40)</p><p>board = pygame.image.load(board_image_filename).convert() circle= pygame.image.load(circle_image_filename).convert_alpha() block= pygame.image.load(block_image_filename).convert_alpha() end = font.render("GAME OVER",True,(0,0,255)) complete = font.render("Complete!!",True,(255,100,0)) start = font.render("Push the start button",True,(255,100,20)) point = font2.render("SCORE",True,(255,255,255)) again1 = font2.render("Push the restart button",True,(60,210,16)) again2 = font2.render("if you would like to play again.",True,(60,210,16))</p><p>clock = pygame.time.Clock()</p><p>#roop1 while 1: #board_init board_pos = 320.</p><p> #block_init blocks = {} block_pos_y = 30. i = 1 for num2 in range(1,6): block_pos_x = 45 for num in range(1,12): blocks[i] = blockC(i,block,(block_pos_x,block_pos_y)) i += 1 block_pos_x += 50 block_pos_y += 30 alive_blocks = len(blocks)</p><p> #start_init S = 1 score = 0</p><p> #cicle_init circle_pos_x,circle_pos_y = 0.,0. speed_x,speed_y = 0.,0.</p><p> #roop2 while alive_blocks >= 1: for event in pygame.event.get(): if event.type == QUIT: exit()</p><p> #board if GPIO.input(22): board_pos += 10. elif GPIO.input(23): board_pos -= 10. if board_pos > 560: board_pos = 560. elif board_pos < 0: board_pos = 0.</p><p> #circle time_passed = clock.tick(40) time_passed_seconds = time_passed / 1000.0 circle_pos_x += speed_x * time_passed_seconds circle_pos_y += speed_y * time_passed_seconds if circle_pos_x > 640 - circle.get_width(): speed_x = -speed_x circle_pos_x = 640 - circle.get_width() elif circle_pos_x < 0: speed_x = -speed_x circle_pos_x = 0. if circle_pos_y > 480 - circle.get_height(): break elif circle_pos_y < 0: speed_y = -speed_y circle_pos_y = 0.</p><p> #start if S: circle_pos_x,circle_pos_y = (board_pos+(board.get_width()/2)-5),430. speed_x,speed_y = 0.,0. if GPIO.input(24): S=0 speed_x,speed_y = 1.,-170. else: #refrect_circle_board if 440<=(circle_pos_y+circle.get_height())<=446: if (board_pos-circle.get_width()/2) <= circle_pos_x < (board_pos+16) or (board_pos+64) < circle_pos_x <= (board_pos+board.get_width()-circle.get_width()/2): speed_x = (speed_x/abs(speed_x))*193 speed_y = -200 elif (board_pos+16) <= circle_pos_x < (board_pos+32) or (board_pos+48) < circle_pos_x <= (board_pos+64): speed_x = (speed_x/abs(speed_x))*173 speed_y = -170 elif (board_pos+32) <= circle_pos_x <= (board_pos+48): speed_x = (speed_x/abs(speed_x))*133 speed_y = -170</p><p> #reflect_circle_block and delete offset = 3 for k in range(1,56): if blocks[k].alive: x,y = blocks[k].location if (x-offset) < (circle_pos_x+circle.get_width()) < (x+offset) and (circle_pos_y-block.get_height()-offset)</p><p> #display window.fill(pygame.Color(255,255,255)) pygame.draw.rect(window,(0,0,0),(640,0,200,480)) window.blit(point,(690,200)) score2 = font2.render("%i"%(score),True,(255,255,255)) window.blit(score2,(690,250)) window.blit(circle,(circle_pos_x,circle_pos_y)) window.blit(board,(board_pos,440)) if S: window.blit(start,(40,200)) for k in range(1,56): blocks[k].render(window) pygame.display.update()</p><p> #result while not GPIO.input(25): if alive_blocks >= 1: window.blit(end,(150,200)) else: window.blit(complete,(180,200)) window.blit(again1,(50,300)) window.blit(again2,(200,350)) pygame.display.update()</p> 

Gerelateerde Artikelen

USB-Breakout Board

USB-Breakout Board

Dit is een echt eenvoudige USB-uitbraak die ik gemaakt heb in een half uur zodat ik kon controleren sommige USB Kerstverlichting met een Arduino en een Relais module aangedreven.Er zijn drie manieren om de USB verbinding met dit bord:Soldeer de drade
8 x 8 LED Matrix voor RaspberryPi en 3 programma's

8 x 8 LED Matrix voor RaspberryPi en 3 programma's

Dit is een 8 x 8 LED matrix voor een RaspberryPi en drie programma's uit te voeren op het:1 - een "Hello World" programma met een volledige Engelse lettertype.2 - een dobbelspel.3 - een kleine versie van de 8 x 8 van Conway's Game of Life..U moe
Milieu Monitoring met BeagleBone of RaspberryPI en Ardunio

Milieu Monitoring met BeagleBone of RaspberryPI en Ardunio

dit is een project dat ik heb gewerkt voor een tijdje, en nog steeds hebben manieren om te gaan, maar ik heb genoeg succes nu dat ik kan ik delen wat ik heb.  Dit heeft betrekking op een Beaglebone en een Arduino via TTL seriële en I2C, met behulp va
Burger Sensor: MQ-7 koolmonoxide Breakout Kit

Burger Sensor: MQ-7 koolmonoxide Breakout Kit

dit Instructable zal gaan door de stappen voor het monteren van de eerste burger Sensor kit: de MQ-7 koolmonoxide Gas Sensor Breakout Board.Meer info op: http://citizensensor.cc/makeVoor de aankoop van een kit, e-mail joe: saavedraStap 1: Verzamel ma
Lilypatch: Snelle Lasergesneden zachte Circuit Breakout

Lilypatch: Snelle Lasergesneden zachte Circuit Breakout

Snel maak uw Attinies sewable! De Lilypatch is een snelle en gemakkelijke manier om veel van de voordelen van de sewable arduinos Lilypad-stijl zonder veel van de kosten of inspanning.Kortom, is het een stuk van vilt, gelamineerd met een stuk van gel
Breakout spel

Breakout spel

Hier is een van mijn project voor de geïntegreerde schakeling ontwerp-cursus. De kit die wordt gebruikt voor het ontwikkelen van is FPGA SPARTAANSE 3E en ons programma wordt gecodeerd met behulp van ISE XILINX DESIGN.De basisstructuur van het spel is
Natuurlijke taal klok voor RaspberryPi

Natuurlijke taal klok voor RaspberryPi

Alles wat u nodig hebt is een RaspberryPi, ieder model zal doen.Dit programma is geschreven om te helpen me reacquaint met string handling in C. De RaspberryPi got me geïnteresseerd in programmeren weer na het doen van het niet in ongeveer 20 jaar.Al
Combineren van 1 of meer Arduinos met een RaspberryPi

Combineren van 1 of meer Arduinos met een RaspberryPi

Dit instructable is een demonstratie van de functie van de Drogon Remote Control (DRC) die wordt geleverd met wiringPi.De bibliotheken van de wiringPi, geschreven door Gordon Henderson, de functies waarmee u de GPIO op de RaspberryPi in C in een stij
555 timer calculator voor RaspberryPi, Arduino of een Linux PC

555 timer calculator voor RaspberryPi, Arduino of een Linux PC

Dit instructable is een rekenmachine om te bepalen van de weerstand en een condensator waarden voor gebruik gemeenschappelijke 555 timer-schakelingen. Ik heb ook versies voor de RaspberryPi en de Arduino met eenvoudige schakelingen te knipperen twee
RaspberryPi wekker

RaspberryPi wekker

Dit is een wekker die is gebaseerd op een RaspberryPi. Een RaspberryPi zal werken. Ik gebruikte een model B1 versie 2, omdat het heeft de montagegaten en snelheid maakt niet uit. Ik heb een taak die moet worden uitgevoerd om de andere dag. Om die red
5 as Cnc Breakout Board TB6600 Nema 17

5 as Cnc Breakout Board TB6600 Nema 17

5 as cnc breakout board TB6600 nema 17Yotube video 's
Arduino I2C Master en Breakout

Arduino I2C Master en Breakout

Na het succes van mijn Arduino Uno I2C Master boord begon ik te denken dat ik de Raad van bestuur zou kunnen verbeteren. Nou... het meer extensible voor een ding, en ik wil het gebruiken van de Raad van bestuur voor andere dingen ook. Ik dacht dat al
RaspberryPi puls breedte modulatie demonstratie

RaspberryPi puls breedte modulatie demonstratie

Dit instructable is een demonstratie van de instellingen die bepalen de hardware puls breedte modulatie (PWM) op een RaspberryPi. Als u een LED net vervagen de standaardinstellingen zijn goed genoeg, maar als u probeert te beheersen een servo, een st
RaspbAIRy - de RaspberryPi gebaseerde Airplay-speaker

RaspbAIRy - de RaspberryPi gebaseerde Airplay-speaker

met de levering van mijn tweede RaspberryPi ik eindelijk de kans om deze lange gepland-project te starten:Ik wilde mijn oude badkamer radio vervangen door een meer eigentijdse apparaat door het bouwen van een netwerk-enabled spreker. Omdat ik een geb