Monopoly: Howest edition

Vergelijkbare documenten
DOBBELSTEEN 2.0. Stap-voor-stap instructie

Seven segments of Pi

De Sense HAT programmeren Je eerste computerprogramma

Xilinx JTAG Programmer

Project Embedded Linux Domaza. Elektronica-ICT. Dimitri Kozakiewiez Jonas Govaerts. Academiejaar

Inleiding Programmeren 2

Project 1 Een discolamp

Nespresso Raspberry Pi

Het hele scherm besturen

Raspberry Pi recepten

Raspberry Pi Recepten - Deel 7

Weerstation. Wireless connectie PC en Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 APC module installeren. 2.1 Zenden en ontvangen

Een database gebruiken

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

WORKSHOP ORANGE PI & PYTHON v september 2017

UtlGefOpen Documentation

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

Om een ander voorbeeld aan te halen waar er wel een opsplitsing van toepassing is:

Objectgericht Programmeren. (in Python)

Programmeren van de Raspberry Pi.

Inleiding Programmeren 2

Type Naam Aantal Analoge poorten: A0, A1, A2, A3 4 Digitale poorten: D2,D3,D4,D5,D6,D7,D8 7 UART poorten: UART 1 I2C poorten: I2C 4.

DE DEBUGGER GEBRUIKEN

Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen

HOE%LAAT%KOMT%MIJN%TRAM?-

Raspberry Pi prototyping-board

Programmeermethoden NA. Week 5: Functies (vervolg)

DE ASTRO PI KLAARMAKEN VOOR GEBRUIK

Raspberry Pi Interfacing.

Niet-numerieke data-types

Design Document. If This Then That

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 15 mei 2014

OPEN LED display met lichtkrant Oproepsystemen

Presentatie op bijeenkomst van EmSE: Embedded Systems Eindhoven

Project : Draagbare monitor en internet-gateway voor (draadloze) biosensoren Inleiding Gebruikte componenten

De FOR lus: // terug naar waar je vandaan kwam Serial.begin(115200); // communicatie snelheid met de PC

MICRO:BIT. Uitdaging 5 Magic8. Origineel: Micro:bit Educational Foundation 2016 Vertaling: CoderDojo Kennemerwaard 2017

EmSE presentatie. Raspberry Pi: Mijn eerste hapjes

Inleiding Programmeren 2

GEDETAILLEERDE INHOUD


Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

HANDLEIDING. Juwelen Maken. met een laser cutter

Een spoedcursus python

Arduino Workshop 1 Zuid-Limburg

Inleiding Programmeren 2

1. Sluit de LED aan zoals afgebeeld 2. Sluit de USB-kabel aan op de Arduino 3. Klik op de knop uploaden 4. De LED begint te knipperen

Van BASIC naar Python (1) Verslag uit de praktijk

Persistentie via bestanden. Bestanden

P O P Y T H O N P R O G R AMMER EN: G A N Z E N B O R D

Microcontrollers. Robert Langenhuysen, PA0RYL

Jeroen uit. Extra informatie. Voor de lunch. Arduino zo aangesloten om mijn code te laten werken. (versie voor lunch) (code voor de lunch)

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Modbus Verdyn. Revisie geldig vanaf software versie 1T_V1.1

Inleiding Programmeren 2

N&O: Objectgericht Programmeren. (in Python)

User accounts maken in een Wandy Hotspot, d.m.v. een batch.

Programmeren met de Raspberry Pi

Programmeermethoden NA. Week 5: Functies (vervolg)

Uitwerkingen. Python Assessment

Programmeermethoden NA

Inleiding Programmeren 2

BEGINNER JAVA Inhoudsopgave

TELEPORTEREN MET VARIABELEN

AP21 SSI Display. Display voor positie en snelheid Nokkencontroller Signaalomvormer Display voor niet lineaire bewegingen. 96 mm

Voor afmetingen waarvoor geen bewerkingsprijs staat vermeld gelden de prijzen op aanvraag

[13] Rondjes draaien (loops)

Deze korte handleiding legt uit welke stappen je moet zetten om te kunnen lasersnijden.

Docentenhandleiding Arduino. Handleiding voor bij de module Arduino UNO kit

Cursusbijeenkomst 1 Talent, Techniek en Energie Introductie op het programma

Auto op Rf. Ik ben Robin Vranckx. Ik ben geboren op 11 augustus 1999 in geel en woon al heel mijn leven in Tongerlo.Mijn hobby is fietsen.

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

[8] De ene 1 is de andere niet

Programmeren. Cursus Python

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Game of Life in Java

Introductie lasercutter

HK. Bekers + Bambino. EX. Luxe bekers. Rozetten. GL. + CR. Glasstandaards. KR. Bekers. Z. Resin figuren. SP. Bekers

MS-Office documenten integratie via SAP PI

Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes

Java Les 3 Theorie Herhaal structuren

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018

CTCSS Encoder Super Flexibel Ontwerpen met een Arduino Nano

Arduino CURSUS. door Willy - 09-juni-2017

Modbus Verdyn. Revisie geldig vanaf software versie 1T_V1.1

Transcriptie:

Elien Knockaert 1NMCT3 Monopoly: Howest edition Monopoly: Howest edition is een project die zich baseert op de originele Monopoly maar gebruik maakt van RFID kaarten in plaats van briefjes geld. De belangrijkste sensor is dus de RFID reader. Het is de bedoeling om RFID kaarten in te lezen met de reader en door de verschillende ID s per kaart wordt er een onderscheidt gemaakt of het om een bankkaart, eigendomskaart, station, etc. gaat. De dobbelsteen is een bakje die kan doorgegeven worden, namelijk de speler die aan de beurt is drukt op een knop en er komt op een 4 digit 7 segment display 2 random getallen tevoorschijn van één tot en met zes. Daarnaast staat er een LCD naast het bord om te zien welke speler welk saldo nog heeft. Tot slot is er een website waar je een nieuw spel kan starten, daar geef je op wat de namen van de spelers zijn welke pionnen ze gebruiken en wat de groepsnaam is. Op de website kan het spelbord met de legende opgevraagd worden alsook de geschiedenis van het spel zelf.

Step 1: Let's Get Started! In de bijlage vindt je een excel bestand, BOM (bill of materials). Daar staan de materialen die je nodig hebt, waar je ze kan vinden en hoeveel ze kosten. Ook staat er in het bestand hoeveel het eigenlijke project ongeveer zal kosten. Benodigdheden: Raspberry PiR 4 digit 7 segment display LCD (20 x 4) Click RFID (RFID reader)

Raspberry Pi Click Shield Plexiglas 8mm (50cm op 50cm) Jumper cables Breadboard

4 x 10KΩ resistors 8 x 220Ω resistors SN74HC595N Shift Register

Step 2: Let's Start Wiring Aan de hand van onderstaande fritzing schema s kunnen de verschillende componenten aan elkaar worden gehangen. Opmerking: De Click RFID heeft 2 modes, namelijk SPI en UART.

Step 3: Laser cutting! Door middel van de lasercutter, plexiglas en een illustrator file kunnen we het plexiglas graveren en snijden.

Eerst en vooral wordt alles gegraveerd.

Daarna wordt het bord uitgesneden.

Met als resultaat:

Hetzelfde met de pionnen. Met als resultaat: Step 4: Programming Het programmeren zelf gebeurt via Python (https://www.python.org/ ) RFID reader: import serial import time try: while True: ser = serial.serial('/dev/serial1', 38400, timeout=2) print(ser.name) print(ser.isopen()) print(ser.readlines()) time.sleep(1) except KeyboardInterrupt: print('done')

LCD: class LCD: wait = 1e-3 def init (self, RS=3, RW=15, E=14, D0=12, D1=16, D2=20, D3=21, D4=23, D5=24, D6=25, D7=8): self.rs = RS self.rw = RW self.e = E self.d0 = D0 self.d1 = D1 self.d2 = D2 self.d3 = D3 self.d4 = D4 self.d5 = D5 self.d6 = D6 self.d7 = D7 def setup(self): DataBits = [self.d0, self.d1, self.d2, self.d3, self.d4, self.d5, self.d6, self.d7] GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(self.RS, GPIO.OUT) GPIO.setup(self.RW, GPIO.OUT) GPIO.setup(self.E, GPIO.OUT) for i in range(8): GPIO.setup(DataBits[i], GPIO.OUT) def Enable(self): GPIO.output(self.E, 1) time.sleep(lcd.wait) GPIO.output(self.E, 0) time.sleep(lcd.wait) def reset(self): LCD.write4bits(self, int("0011", 2)) LCD.write4bits(self, int("0011", 2)) LCD.write4bits(self, int("0011", 2)) LCD.write4bits(self, int("0010", 2)) def initlcd4bit(self): LCD.reset(self) LCD.write4bitsTwice(self, 0x2C, 0) LCD.write4bitsTwice(self, 0x0F, 0) LCD.write4bitsTwice(self, 0x01, 0) LCD.write4bitsTwice(self, 0x06, 0) def write4bitstwice(self, value, rs_mode): GPIO.output(self.RS, rs_mode) DataBits = [self.d0, self.d1, self.d2, self.d3, self.d4, self.d5, self.d6, self.d7] time.sleep(lcd.wait) for i in range(4): GPIO.output(DataBits[i + 4], 1 if ((value >> i + 4) & 1) > 0 else 0) LCD.Enable(self) for i in range(4): GPIO.output(DataBits[i + 4], 1 if ((value >> i) & 1) > 0 else 0) LCD.Enable(self)

def write4bits(self, value): GPIO.output(self.RS, 0) DataBits = [self.d0, self.d1, self.d2, self.d3, self.d4, self.d5, self.d6, self.d7] time.sleep(lcd.wait) for i in range(4): GPIO.output(DataBits[i + 4], 1 if ((value >> i) & 1) > 0 else 0) LCD.Enable(self) def printmsg(self, msg): for l in msg: LCD.write4bitsTwice(self, ord(l), 1) def message(self): self.printmsg('speler 1: 5000') self.write4bitstwice(0xc0, 0) self.printmsg("speler 2: 14000") self.write4bitstwice(0x94, 0) self.printmsg('speler 3: 2200') self.write4bitstwice(0xd4, 0) self.printmsg('speler 4: 1900') def str (self): pass try: run = LCD() run.setup() run.reset() run.initlcd4bit() run.message() while True: pass except (KeyboardInterrupt, SystemExit): destroy = LCD() destroy.reset() GPIO.cleanup()

Step 5: Database We maken gebruik van MySQL (https://www.mysql.com/ ) om een database te maken. In dit project wordt gebruik gemaakt van 5 tabellen, namelijk spelers, eigendomskaarten, overige_kaarten, spelers_has_eigendomskaarten en spelers_has_overige_kaarten. Daarin worden alle gegevens opgeslagen van de kaarten (staat vast) en de spelers die het spel spelen (wordt na ieder spel gewist).

Step 6: Website Maak een website waar de gegevens uit de database in een tabel terug kunnen worden gegeven. Dit kan met behulp van Flask in Python. (http://flask.pocoo.org/) De website die ik gemaakt heb voor dit project ziet er als volgt uit:

Link naar GitHub: https://github.com/elienknockaert/monopoly