Slide 1

Slide 1 text

Create interactive games using electronics and MicroPython with BBC micro:bit Juliana Karoline de Sousa (@julianaklulo)

Slide 2

Slide 2 text

➔ Bachelor in Computer Science (UFSCar) ➔ PyLadies São Carlos | co-founder & organizer ➔ grupy-sanca and sancaLUG | co-founder & organizer ➔ Omnivector | software engineer ➔ IoT, robotics and kitties enthusiast Juliana Karoline de Sousa @julianaklulo

Slide 3

Slide 3 text

DEVELOPMENT BOARDS I`VE USED INTEL EDISON INTEL GALILEO ARDUINO MEGA ARDUINO UNO NODE MCU RASP PI PICO

Slide 4

Slide 4 text

BBC MICRO:BIT + GAMEPAD WHAT I WILL USE FOR THIS PRESENTATION

Slide 5

Slide 5 text

AGENDA ➔ BBC micro:bit project overview ➔ Gamepad overview ➔ GPIO pins, digital and analog IO ➔ Programming the micro:bit ➔ Code examples of interactive games ◆ Genius ◆ Chase the Dot ◆ Car Crash

Slide 6

Slide 6 text

ABOUT THE BBC MICRO:BIT PROJECT

Slide 7

Slide 7 text

BBC MICRO:BIT PROJECT OVERVIEW

Slide 8

Slide 8 text

BBC MICRO:BIT V2 SPECIFICATIONS

Slide 9

Slide 9 text

BBC MICRO:BIT V2 SPECIFICATIONS

Slide 10

Slide 10 text

GPIO: GENERAL PURPOSE INPUT/OUTPUT

Slide 11

Slide 11 text

ANALOG AND DIGITAL SIGNALS

Slide 12

Slide 12 text

ABOUT THE GAMEPAD FOR BBC MICRO:BIT

Slide 13

Slide 13 text

GAMEPAD FOR MICRO:BIT SPECIFICATIONS FEATURES BBC micro:bit edge connector Dual channel joystick Onboard battery and charger circuit Battery indicator 4 Push buttons 2 Side buttons 1 Buzzer

Slide 14

Slide 14 text

GAMEPAD PINOUT SYMBOL PIN DESCRIPTION A 5 Button A B 11 Button B C 15 Button C D 14 Button D E 13 Button E F 12 Button F X 1 Joystick X axis Y 2 Joystick Y axis P 8 Joystick press Buzzer 0 Buzzer

Slide 15

Slide 15 text

DIGITAL AND ANALOG INPUT/OUTPUT Analog Input Digital Input Analog and Digital Output

Slide 16

Slide 16 text

PROGRAMMING THE MICRO:BIT

Slide 17

Slide 17 text

PROGRAMMING THE MICRO:BIT

Slide 18

Slide 18 text

MICRO:BIT PYTHON TEXT EDITOR

Slide 19

Slide 19 text

DISPLAY EXAMPLE

Slide 20

Slide 20 text

BUTTON EXAMPLE

Slide 21

Slide 21 text

BUZZER EXAMPLE

Slide 22

Slide 22 text

ACCELEROMETER EXAMPLE

Slide 23

Slide 23 text

GPIO EXAMPLE

Slide 24

Slide 24 text

JOYSTICK EXAMPLE

Slide 25

Slide 25 text

GAME EXAMPLES

Slide 26

Slide 26 text

GAME #1: GENIUS

Slide 27

Slide 27 text

GAME #1: GENIUS https://www.youtube.com/watch?v=YnDZ1uw0zpU

Slide 28

Slide 28 text

#1 GENIUS: START GAME

Slide 29

Slide 29 text

#1 GENIUS: GENERATE THE SEQUENCE

Slide 30

Slide 30 text

#1 GENIUS: READ THE USER INPUT

Slide 31

Slide 31 text

#1 GENIUS: VALIDATE THE USER INPUT

Slide 32

Slide 32 text

#1 GENIUS: END GAME

Slide 33

Slide 33 text

#1 GENIUS: RUN THE GAME

Slide 34

Slide 34 text

GAME #2: CHASE THE DOT

Slide 35

Slide 35 text

GAME #2: CHASE THE DOT https://www.youtube.com/watch?v=NVJH6F-3XuU

Slide 36

Slide 36 text

#2 CHASE THE DOT: GENERATE THE DOT

Slide 37

Slide 37 text

#2 CHASE THE DOT: READ THE USER INPUT

Slide 38

Slide 38 text

#2 CHASE THE DOT: MOVE THE PLAYER

Slide 39

Slide 39 text

#2 CHASE THE DOT: CHECK COLLISION

Slide 40

Slide 40 text

#2 CHASE THE DOT: RUN THE GAME

Slide 41

Slide 41 text

GAME #3: CAR CRASH

Slide 42

Slide 42 text

GAME #3: CAR CRASH https://www.youtube.com/watch?v=vGMr4VFS-Q8

Slide 43

Slide 43 text

#3 CAR CRASH: PLAYER AND OBSTACLE

Slide 44

Slide 44 text

#3 CAR CRASH: BORDER

Slide 45

Slide 45 text

#3 CAR CRASH: SCREEN

Slide 46

Slide 46 text

#3 CAR CRASH: SCREEN BUFFER B O R D E R B O R D E R OBSTACLE PLAYER

Slide 47

Slide 47 text

#3 CAR CRASH: RUN THE GAME

Slide 48

Slide 48 text

CONCLUSION micro:bit + MicroPython == FUN

Slide 49

Slide 49 text

Thank you! julianaklulo https://github.com/julianaklulo/pycon2023-interactive-games

Slide 50

Slide 50 text

Q/A and live demonstration Embedded Python Open Space Today (Friday) at 5pm Room 251AB