Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. ·...

36
Naam: Jordi Timmers Klas: T3EI6 Geïntegreerde proef Smart Coffee Table 2019-2020

Transcript of Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. ·...

Page 1: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

Naam: Jordi Timmers

Klas: T3EI6

Geïntegreerde proef

Smart Coffee Table

2019-2020

Page 2: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 2

Inleiding Ik ben Jordi Timmers. Mijn hobby’s zijn basket, coaching, fitness en

gamen. Ik studeer de richting Elektronica/ICT in Sint-Jozefinstituut Geel. Ik heb deze richting gekozen nadat ik twee jaar Industriële

Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer geïnteresseerd in programmeren, elektronica en minder in de

grote industriële machines, mechanica en elektriciteit.

Voor mijn eindwerk heb ik gekozen om een ‘Smart Coffee Table’ te maken. De bedoeling hiervan is dat er op de koffietafel spelletjes gespeeld

kunnen worden. Maar als je geen spelletjes aan het spelen bent kan je

andere thema’s instellen die je standaard koffietafel een beetje mooier zal laten ogen.

Page 3: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 3

Samenvatting Voor mijn eindwerk heb ik een koffietafel gekozen. Deze zal verschillende

programma’s kunnen runnen. De programma’s kan je via een website met data base aansturen. Om te detecteren of er iets op de tafel staat werk ik

met infrarood. Voor de ledjes ga ik een ledstrip gebruiken, die ik van elkaar knip en terug aan elkaar soldeer.

De spelletjes/thema’s kunnen variëren. Hier enkele voorbeelden: Snake,

Tetris, Lichteffecten op muziek,…

In dit document ga ik meer uitleg geven over hoe ik alles heb gedaan en

welke componenten ik heb gebruikt.

Page 4: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 4

Inhoudstabel

Inhoud Inleiding .......................................................................................... 2

Samenvatting ................................................................................... 3

Inhoudstabel .................................................................................... 4

Figurentabel ..................................................................................... 7

1 Prijslijst en Vermogen berekening ................................................. 8

2 Blokschema ................................................................................ 9

2.1 Beschrijving blokschema ......................................................... 9

3 Situatieschema ......................................................................... 10

3 Keuze componenten ..................................................................... 11

4.1 Microcontroller/Microprocessor ............................................... 11

4.1.1 Arduino ....................................................................... 11

4.1.2 Raspberry Pi ................................................................. 11

4.1.3 Mijn keuze ................................................................... 12

4.2 Sensor ................................................................................ 12

4.2.1 Capacitieve touch sensor ............................................... 12

4.2.2 Infrarood zender/ontvanger ........................................... 13

4.2.3 Mijn keuze ................................................................... 13

4.3 Belichting ............................................................................ 14

4.3.1 Individuele RGB’s .......................................................... 14

4.3.2 LED strip I²C/SPI .......................................................... 14

4.3.3 Mijn keuze. .................................................................. 14

4.4 Hout ................................................................................... 15

4.4.1 MDF ............................................................................ 15

4.4.2 Afgewerkt meubelpaneel ................................................ 15

4.4.3 Mijn keuze ................................................................... 15

5 Constructie tafel ........................................................................ 16

5.1 Poten .................................................................................. 16

5.2 Kader .................................................................................. 16

5.3 Raster & latten ..................................................................... 16

6 Eagle to JLCPCB ........................................................................ 17

6.1 Create board ........................................................................ 17

Page 5: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 5

6.2 Eagle board to Gerber-File ..................................................... 17

6.3 Printjes bestellen .................................................................. 19

7 Componenten ........................................................................... 20

7.1 IR333 (IR-Zender) ................................................................ 20

7.2 TSOP 31238 (IR-Ontvanger) .................................................. 21

7.3 APA102C (Ledstrip) ............................................................... 22

8 Raspberry Pi ............................................................................. 23

8.1 OS ...................................................................................... 23

8.2 Installeren ........................................................................... 23

8.3 Hardware ............................................................................ 23

8.4 Bussen ................................................................................ 24

8.4.1 I²C .............................................................................. 24

8.4.2 SPI.............................................................................. 24

9 Programmeertalen ..................................................................... 25

9.1 Python ................................................................................ 25

9.2 HTML (HTML5) ..................................................................... 25

10 Matrix .................................................................................... 26

10.1 Werking matrix .................................................................. 26

10.2 Matrix IR-zenders .............................................................. 27

10.3 Matrix IR-ontvangers .......................................................... 27

11 Code ..................................................................................... 28

11.1 Led strip ........................................................................... 28

11.2 Infrarood ontvangers .......................................................... 29

12 Werking ................................................................................. 30

12.1 Werking IR zender/ontvanger .............................................. 30

12.1.1 Ontvanger .................................................................... 30

12.1.2 Zender ........................................................................ 30

12.2 APA102C protocol .............................................................. 31

13 Prototype ............................................................................... 32

13.1 Eerste jury ........................................................................ 32

13.2 Tweede jury ...................................................................... 32

14 Debugging ............................................................................. 34

14.1 IR Zender frequentie .......................................................... 34

14.1.1 Probleem ..................................................................... 34

14.1.2 Niet-Geslaagde oplossing ............................................... 34

14.1.3 Uiteindelijke oplossing ................................................... 34

Page 6: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 6

14.2 Infrarood licht te fel ........................................................... 34

14.2.1 Probleem ..................................................................... 34

14.2.2 Niet-Geslaagde oplossing ............................................... 34

14.2.3 Uiteindelijke oplossing ................................................... 35

14.3 Matrix detecteert niet ......................................................... 35

14.3.1 Probleem ..................................................................... 35

14.3.2 Niet-Geslaagde oplossing ............................................... 35

14.3.3 Uiteindelijke oplossing ................................................... 35

14.4 Matrix werkt niet ................................................................ 35

14.4.1 Probleem ..................................................................... 35

14.4.2 Niet-Geslaagde oplossing ............................................... 35

14.4.3 Uiteindelijke oplossing ................................................... 36

Page 7: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 7

Figurentabel Figuur 1 - Blokschema ....................................................................... 9

Figuur 2 - Situatieschema ................................................................ 10

Figuur 3 - Arduino ........................................................................... 11

Figuur 4 - Raspberry Pi .................................................................... 11

Figuur 5 - Touch Sensor .................................................................. 12

Figuur 6 - Infrarood Z/O .................................................................. 13

Figuur 7 - Individuele LED ................................................................ 14

Figuur 8 - Led Strip ......................................................................... 14

Figuur 9 - MDF ............................................................................... 15

Figuur 10 - Meubelpaneel ................................................................ 15

Figuur 11 - Poten ............................................................................ 16

Figuur 12 - Kader ........................................................................... 16

Figuur 13 - Lasercut ........................................................................ 16

Figuur 14 - TSOP 31238 .................................................................. 21

Figuur 15 - Python .......................................................................... 25

Figuur 16 – HTML ........................................................................... 25

Figuur 17 - Principe IR Z/O .............................................................. 30

Figuur 18 - Eerste jury .................................................................... 32

Figuur 19 - Twede jury .................................................................... 33

Page 8: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 8

1 Prijslijst en Vermogen berekening

Naam Aantal Prijs enkel Prijs totaal

Raspberry Pi 3B+ 1X 39 euro 39 euro

HC-06 Bluetooth module 1X 6 euro 6 euro

Adressable RGB Lightstrip 1X

25 euro

25 euro

IR 333-H0L10 EVL 50X 0,17 euro 8,5 euro

TSOP 31238 (ingebouwde weerstand) x50 0,57 euro 28,5 euro

Resistor 47 Ohm (IR LED) x20 0,083 euro 1,66 euro

RE 200-C3 x2 4,47 euro 8,96 euro

Hout, verf,… - 26,99 euro 26,99 euro

------------------------

144,61 euro

Naam GEM. Vermogen Max vermogen

Led strip 0.2W/Led 1W/Led

Infrarood Led 0,5W/Led 5W/Led

Infrarood ontvanger 0,00015W/stuk 0,01W/stuk

Raspberry Pi 1,75W 4,75W

-------------------- -------------------

2,5W 11W

Page 9: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 9

2 Blokschema

Figuur 1 - Blokschema

2.1 Beschrijving blokschema Mijn eindwerk vertrekt vanaf een Raspberry Pi. Deze gaat infrarood

sensoren inlezen en aan de hand van die gegevens de led’s aansturen. Wanneer de Raspberry Pi de led’s gaat aansturen, zal afhangen van het

programma dat hij aan het runnen is. Deze programma’s zal ik kunnen inschakelen via een website met een database. In deze database zullen

dus de verschillende programma’s zoals het spelletje ‘Snake’ in opgeslagen worden. Als uitbereiding zou ik een app willen maken

waarmee ik dan de programma’s zou kunnen aansturen, in plaats van een website. Dit is iets wat ik al heel lang heb willen leren en als ik er tijd voor

heb ga ik dit zeker proberen te maken door zelfstudie.

Page 10: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 10

3 Situatieschema

Figuur 2 - Situatieschema

Page 11: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 11

3 Keuze componenten

4.1 Microcontroller/Microprocessor

4.1.1 Arduino

Een Arduino is een microcontroller die in het eerste opzicht is gemaakt om het

gebruik van microcontrollers simpel te maken, maar is ondertussen

uitgegroeid naar een relatief krachtige microcontroller.

Een voordeel van de Arduino is dat hij analoge inputs heeft. In mijn project

zou dit kunnen gebruikt worden om de waarde van de infrarood ontvanger te

lezen.

Het grote nadeel bij een Arduino is dat hij eerder is ontworpen voor simpele en repetitieve programma’s uit te voeren. Een Arduino heeft dan

ook maar 1 core. Multithreaden zal dus al geen optie zijn. Als je de Arduino dus 2 dingen tegelijk wil laten doen zal hij dit dus niet kunnen.

4.1.2 Raspberry Pi

In tegenstelling tot de Arduino, is de

Raspberry Pi eerder een computer (SingleBoardComputer) dan een

microcontroller. Het is ontworpen door de hooggeprezen Universiteit

van Cambridge en word dus ook vooral gebruikt voor educatieve

doeleinden.

Voordelen van de Raspberry Pi zijn uiteraard dat hij 4 cores heeft en dat

die cores dan ook nog eens krachtig

zijn. Dit maakt het mogelijk om complexere programma’s te runnen. Een ander voordeel van de Raspberry

Pi is dat hij echt op een besturingssysteem draait. Meestal word hier Linux voor gebruikt, maar je kan zelfs een oudere versie van Windows er op

draaien.

Een nadeel van de Raspberry Pi is dat hij zonder een ADC (Analoog-Digitaal-Converter), geen analoge data kan inlezen. Al de GPIO pinnen

kunnen alleen een 1 of een 0 inlezen. GPIO staat voor General Purpose

Figuur 3 - Arduino

Figuur 4 - Raspberry Pi

Page 12: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 12

Input/Output. Een ander klein nadeel is dat het laatste model van de Raspberry Pi (3B+) moeite had met de warmte van de processor. Je bent

bijna verplicht om er nog zelf een koelvin op te plaatsen. Als je dit niet doet en je laat een zwaarder programma draaien, zal de CPU

(Central processing unit) veel te warm worden. Als een processor te warm word gaat hij aan ‘thermal throttling’ doen. Wat wil zeggen dat wanneer

de CPU niet meer op een veilige warmte kan blijven (bij het 3B+ model 80°C), de core frequentie van de CPU verminderd zal worden. Als de

frequentie van 1.5GHz naar 1.2GHz gaat, zal de performance van de CPU dalen.

4.1.3 Mijn keuze

Beide keuzes hebben hun voor- en nadelen. Ik heb gekozen om voor dit

project de Raspberry Pi 3B+ te gebruiken. Ondanks het gebrek aan analoge inputs denk ik dat dit toch de betere optie is. Het inlezen van het

analoge signaal van mijn infrarood ontvangers is te omzeilen met het gebruik van een ADC (Analoog Digitaal Converter). Voor dit project kan ik

ook zeker de meerdere cores gebruiken.

4.2 Sensor

4.2.1 Capacitieve touch sensor

Een capacitieve touch sensor is een sensor

die zal detecteren als je huid het aanraakt.

Het voordeel van deze sensor is dat het heel gemakkelijk is om te programmeren

aangezien de output van deze sensor een waarde geeft die 1 of 0 is.

Het grote nadeel hiervan is dat dit alleen

huid detecteert. Als je iets anders over deze sensor legt gaat dit niet werken. Je kan deze

sensor ook niet gebruiken door plexiglas, wel door een dun laagje glas.

Figuur 5 - Touch Sensor

Page 13: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 13

4.2.2 Infrarood zender/ontvanger

Infrarood zender en ontvanger kunnen op verschillende manieren worden gebruikt. De

zender straalt simpelweg infrarood uit. Als je de ontvanger er tegenover zet kan je het

gebruiken als detecteersensor. Leest de

ontvanger geen infrarood in, wil dat zeggen dat er iets tussen staat en is er dus iets

gedetecteerd.

Je kan infrarood ook als een soort afstandsmeter laten werken. Infrarood kan

weerkaatsen op een aantal oppervlakken. Als bijvoorbeeld het licht kaatst tegen een auto in een garage, dan kan de

infrarood ontvanger de lichtintensiteit meten en het zo kalibreren dat de lichtintensiteit gelinkt is aan afstand.

In mijn project zou ik een combinatie van de twee methodes doen. Ik zou mijn zender en ontvanger langs elkaar zetten, aangezien ze beide onder

het plexiglas moeten, maar ik zou geen afstand meten. Ik zou wel op dezelfde manier als met afstand meten, de lichtintensiteit opvragen. Als je

iets op de tafel zet en het IR licht kaatst tegen het voorwerp dat op de

tafel staat, dan gaat de lichtintensiteit dus hoger worden. Als de intensiteit ‘hoog’ is, dan zou mijn programma zeggen dat er iets oplicht en anders

niet. Op die manier kan ik al de verschillende programma’s maken.

4.2.3 Mijn keuze

Voor mijn project heb ik eigenlijk maar 1 keuze als ik plexiglas wil gaan

gebruiken en dat is de infrarood zender/ontvanger. Het is wel iets dat snel problemen met zich mee kan brengen maar het is dan ook goedkoper dan

de touch sensors.

Figuur 6 - Infrarood Z/O

Page 14: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 14

4.3 Belichting

4.3.1 Individuele RGB’s

Voor de belichting van mijn eindwerk kan ik gaan werken met individuele RGB led’s per

‘blokje’ van de tafel.

Het voordeel hiervan zou zijn dat deze relatief makkelijk zijn aan te sturen en dat de prijs

laag ligt.

Het nadeel is dat ik heel veel GPIO pinnen

nodig zou hebben dus dat ik dan nog IO-expanders zou moeten gaan bijkopen wat het

dan weer iets moeilijker en duurder maakt.

4.3.2 LED strip I²C/SPI

Deze led strips zijn individueel bestuurbaar.

Dit wil dus zeggen dat ik elk ledje een andere kleur kan geven ook al is het een

strip. De aansturing hiervan gebeurt met het

I²C protocol of SPI protocol.

Voordelen hiervan zijn dat je niet veel GPIO pinnen nodig hebt aangezien je deze led

strip serieel aanstuurt en dat de helderheid van een led strip sterker is dan van

individuele ledjes.

Het nadeel is wel dat een ‘adressible’ led strip wel relatief veel kost.

4.3.3 Mijn keuze.

Omdat ik met zo min mogelijk IO-expanders wil gaan werken, aangezien

ik deze al moet gebruiken bij mijn zenders en ontvangers, heb ik gekozen om een led strip te gebruiken. De kostprijs ligt wel een heel deel hoger

maar het heeft wel een aantal cruciale voordelen ten opzichte van individuele RGB led’s.

Figuur 7 - Individuele LED

Figuur 8 - Led Strip

Page 15: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 15

4.4 Hout

4.4.1 MDF

MDF of Medium-Density Fibreboard is geperst hout met een middelhoge dichtheid. Deze

middelhoge dichtheid zorgt er wel voor dat deze plaat moeilijk te verven is aangezien het

hout verf kan opnemen. Dit is te omzeilen door er eerst een laag primer over te doen. Primer

zorgt er voor dat de verf wel op het hout blijft.

Het voordeel van MDF is dat het een relatief glad hout is zonder houtnerven. Dit is mooi als

je zoals mij, het hout wit wil verven. MDF kost ook niet veel.

Het nadeel is dat het niet altijd het

gemakkelijkste hout is om mee te werken

aangezien MDF dus verf, etc.. kan opnemen.

4.4.2 Afgewerkt meubelpaneel

Een andere optie zou zijn om een afgewerkt

meubelpaneel te kopen en op maat te laten zagen.

Het voordeel is dat ik deze niet meer moet

verven en het me dus tijd zou besparen.

Maar het nadeel is wel, als je het hout laat

zagen dan heb je houtkleurige zijkanten. Hier moet je dan weer iets over maken dat

dit bedekt, wat op zich niet zo erg is, maar het steekt dan aan beide kanten weer een

aantal millimeter naar buiten wat mij dan weer irriteert.

4.4.3 Mijn keuze

Ik heb, ondanks het de iets moeilijkere optie is, toch gekozen om met

MDF te gaan werken omdat ik denk dat ik hiermee een mooier resultaat kan behalen dan met afgewerkte meubelpanelen.

Figuur 9 - MDF

Figuur 10 - Meubelpaneel

Page 16: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 16

5 Constructie tafel

5.1 Poten Om de poten te maken heb ik een lange tuinbalk

gekocht. Hier heb ik 4 gelijke stukken van afgezaagd en daarna heb ik ze geveild en

opgeschuurd. Omdat ik het hout te licht vond, heb ik er nog twee lagen kleurvernis op gedaan. Dit

zorgt er voor dat het hout gladder aanvoelt en algemeen beter is afgewerkt.

5.2 Kader Om het kader van de tafel te maken heb ik een

grote MDF plaat laten zagen in de afmetingen die ik nodig had. Ik heb er 2 lagen primer over gedaan

zodat de witte verf beter blijft. Daarna heb ik de platen gewoon wit geverfd.

5.3 Raster & latten Het raster en de latten om de

vakjes te onderscheiden is ook MDF hout. Ik heb deze beide

laten lasercutten. Ze zijn allemaal uitgesneden uit platen

van 3mm dik.

Figuur 11 - Poten

Figuur 12 - Kader

Figuur 13 - Lasercut

Page 17: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 17

6 Eagle to JLCPCB

6.1 Create board

Maak je board zoals je ze normaal zou maken. Let wel op de kabeldiktes en dat deze niet te dicht bij elkaar liggen. Anders kan dit problemen

geven bij het maken van de printjes

6.2 Eagle board to Gerber-File

Open de ‘CAM Processor’.

Page 18: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 18

Kies in de linker balk ‘Gerber’ en selecteer ‘Gerber RS247-X’

als output-type

Klik nu op ‘Process Job’. Al de nodige Gerber files

worden nu aangemaakt. Om het jezelf makkelijk te maken kan je best direct een map aanmaken om de

Gerber files in te zetten.

Als je ook met drill files

werkt moet je na de gerber files, ook nog

‘Excellon files’ aanmaken. Dit kan je doen door in de

linkerbalk ‘Drill’ aan te klikken en opnieuw op

‘Process Job’ klikken.

Page 19: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 19

Je zou nu volgende files moeten hebben:

• *.cmp (Copper, component side) • *.drd (Drill file)

• *.dri (Drill Station Info File) – Meestal niet nodig • *.gpi (Photoplotter Info File) – Meestal niet nodig

• *.plc (Silk screen, component side) • *.pls (Silk screen, solder side)

• *.sol (Copper, solder side)

• *.stc (Solder stop mask, component side)

• *.sts (Solder stop mask, solder side)

Maak van je gerber files nu een .ZIP of

.RAR (Rechter muisklik op map)

6.3 Printjes bestellen Ga naar https://jlcpcb.com/

Kies het aantal

printjes, layers,..

Klik op ‘Add your gerber file’ en selecteer je

.ZIP op .RAR map.

Kijk nog een laatste keer na of al de gegeven informatie klopt en dan kan

je de printjes bestellen!

Page 20: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 20

7 Componenten

7.1 IR333 (IR-Zender)

Maximum waardes:

Karakteristieken:

Page 21: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 21

7.2 TSOP 31238 (IR-Ontvanger)

Maximum waardes:

Karakteristieken:

1 = GND, 2 = Vs, 3 = OUT:

Figuur 14 - TSOP 31238

Page 22: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 22

7.3 APA102C (Ledstrip)

Specificaties:

Connecties:

Protocol: Zie bladzijde 30.

Page 23: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 23

8 Raspberry Pi

8.1 OS

De Raspberry Pi die ik gebruikt draait op het besturingssysteem ‘Raspbian’. Dit is een versie van Linux die speciaal is ontworpen voor

Raspberry Pi’s. Ik heb Raspbian geinstalleed doormiddel van een image die we van school hebben gekregen. Hier staan de meeste instellingen al

juist en een aantal programma’s al op geïnstalleerd zoals bijvoorbeeld WiringPi (Library voor het besturen van GPIO pinnen).

8.2 Installeren

Webserver installeren:

• sudo apt-get install apache2 • sudo apt-get install php5

• sudo service apache2 restart

Bestanden die moeten aangepast worden om vlot met Wi-Fi te werken: • etc/dhcpcd.conf

• etc/wpa_supplicant/wpa_supplicant.conf

Pc programma’s: • Sublime Text Editor

• Putty • Filezilla

8.3 Hardware De Raspberry Pi versie die ik gebruik is de 3B+.

Dit zijn de specs: • SoC: Broadcom BCM2837B0 quad-core A53 (ARMv8) 64-bit @

1.4GHz • GPU: Broadcom Videocore-IV

• RAM: 1GB LPDDR2 SDRAM

• Networking: Gigabit Ethernet (via USB channel), 2.4GHz and 5GHz 802.11b/g/n/ac Wi-Fi

• Bluetooth: Bluetooth 4.2, Bluetooth Low Energy (BLE) • Storage: Micro-SD

• GPIO: 40-pin GPIO header, populated • Ports: HDMI, 3.5mm analogue audio-video jack, 4x USB 2.0,

Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)

• Dimensions: 82mm x 56mm x 19.5mm, 50g

Page 24: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 24

8.4 Bussen

8.4.1 I²C

I²C is een bus die werkt op basis van twee buslijnen, namelijk SDA (serial data) en SCL (serial clock). Dataoverdracht werkt al volgt:

• Data verzenden wordt geïnitieerd met een startbit.

• Nuttige data wordt verzonden. • Als de overdracht compleet is wordt een stopbit.

• Ten einde valse detecties te voorkomen wordt het niveau van de SDA veranderd op de dalende flank van SCL.

8.4.2 SPI

SPI is een bus die werkt op basis van drie lijnen:

• SCLK : seriële clock: wordt geleverd door de master.

• MOSI : Master output slave input: op deze lijn wordt de data verzonden die de output van de master en de input van de slave is.

• MISO: Master input slave output: de data van de slave wordt hierover naar de master gestuurd.

• SS: Slave select: Deze lijn wordt actief laag aangestuurd. De lijn voor de geselecteerde slave zal laag zijn

Een van de grote voordelen van SPI is dat het full duplex is. Er kan dus

simultaan gezonden en ontvangen worden. Als nadeel heeft SPI wel dat hij 4 draden nodig heeft terwijl I²C er maar 2 nodig heeft.

Page 25: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 25

9 Programmeertalen

9.1 Python Python is een van de meest gebruikte

programmeertalen van de wereld. De taal word gebuikt. De taalconstructies en

objectgeoriënteerde aanpak zijn bedoeld om programmeurs te helpen duidelijke, logische code

te schrijven voor kleine en grote projecten.

In mijn eindwerk gebruik ik python als hoofdtaal. Ik zal met python al mijn actoren en sensoren inlezen en

aansturen. Ook zal mijn Flask server werken met python. Hiermee ga ik informatie van python naar

de html code sturen.

9.2 HTML (HTML5)

Hypertext Markup Language oftewel HTML is de standaard opmaaktaal voor documenten ontworpen

om te worden weergegeven in een webbrowser. Meestal word HTML ondersteund door Cascading

Style Sheets (CSS) en een scripttaal zoals

JavaScript of PHP.

In mijn project gebruik ik HTML in combinatie met CSS om mijn website op te maken en te lay-outen.

Een deel van de informatie die de HTML code zal weergeven krijgt hij van de python code. (zie 9.1)

Figuur 15 - Python

Figuur 16 – HTML

Page 26: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 26

10 Matrix

10.1 Werking matrix Een matrix is een aaneenschakeling van inputs en/of outputs. Hiermee

kan je inputs en/of outputs mee aansturen of inlezen zonder al te veel kabels te hoeven gebruiken. Een voorbeeld, als je 9 drukknoppen wil

inlezen zou je normaal gezien 27 kabels nodighebben. 9 als voeding, 9 als GND en 9 als data.

Je zou ook een matrix kunnen maken van 3 op 3 drukknoppen. Je hebt

dan 3 kabels nodig voor voeding, 3 als GND, en 3 als data. Hetzelfde principe kan ook toegepast worden op uitgangen, dit is een voorbeeld van

een matrix van 9 led’s.

Figuur 17 - Matrix Led's

Als je bij dit schema led 5 zou willen laten branden voed je de 2de pin en trek je de 2de pin naar de GND. Natuurlijk zou dit in de realiteit met

voorschakelweerstanden moeten gebeuren. Als er altijd maar 1 led tegelijkertijd moet branden kan je gewoon werken met 3

voorschakelweerstanden die je bij de voedingen zet.

Page 27: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 27

10.2 Matrix IR-zenders

In mijn eindwerk heb ik twee matrixen. De eerste is die van de IR-zenders. Deze is hetzelfde opgebouwd als het schema op de vorige

pagina. Het enige verschil is dat ik werk met een 9 op 5 matrix en ik heb voor elke led individueel nog een voorschakelweerstand.

10.3 Matrix IR-ontvangers Voor mijn ontvangers moet ik natuurlijk werken met een extra lijn om te

weten of de ontvangers een signaal ontvangen of niet.

Figuur 18 - Matrix Schakelaars

Page 28: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 28

11 Code

11.1 Led strip

Om in python met de led strip te communiceren maak ik gebruik van een

library. Om deze te installeren moet je dit in de shell ingeven:

• sudo pip3 install apa102-pi

Nu kunnen we deze library gaan gebruiken in python. Om de library te importeren in python gebruik ik volgende code:

• from apa102_pi.driver import apa102

Het enige wat we nu nog moeten doen om de strip aan te sturen is er voor zorgen dat python onze strip kent. We gaan hier ook meegeven

hoeveel leds je hebt. In mijn geval zijn dit er 45. Ook zeggen we hier dat de volgorde van de kleuren R (Red), G (Green), B (Blue) is. Als de kleuren

van de ledstrip zouden omgedraaid zijn zou je hier bijvoorbeeld ook ‘bgr’ kunnen zetten om het op te lossen.

• strip = apa102.APA102(num_led=150, order='rgb')

Om te beginnen laat ik eerst al de led’s uit gaan. Deze stap is niet persé

nodig als je het vorige programma altijd goed hebt verlaten, maar ik zet het er toch bij uit zekerheid. Op deze manier ben ik er zeker van dat ik

met een led strip start dat alle led’s uit zijn.

• strip.clear_strip()

Nu kan ik de leds individueel aansturen. (de library gebruikt pixel als

benaming voor 1 led) Je moet met deze functie 2 dingen meegeven: De nummer van de led die je aanstuurt (0-45), en de kleur. De kleur wordt

wel hexadecimaal aangegeven. Alleen groen is bijvoorbeeld ‘0x00FF00’. Dit wil wel zeggen dat je in totaal alle 16,777,216 RGB kleuren kan

maken.

• strip.set_pixel_rgb(2, 0x00FF00) #Groen • strip.set_pixel_rgb(5, 0x0000FF) # Blue

Nu als je deze functie doorloopt zal je merken dat de ledjes nog niet

oplichten. Dit komt omdat deze objecten in een buffer gaan geduwd worden van de led strip. Om de led strip dan te laten oplichten moet je

volgende code gebruiken

• strip.show()

Page 29: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 29

Nu worden al de objecten die in de buffer staan de led strip echt laten oplichten. In mijn code zorg ik er voor dat elke ‘pixel’ de gewenste kleur in

de buffer heeft zitten voor ik de led strip laat oplichten.

Tot slot moeten we voor we de code afsluiten, de verbindingen voorbereiden voor het volgende gebruik. Hiervoor gebruiken we deze code

als we het programma gaan afsluiten.

• strip.cleanup()

Dit is dus alles wat ik gebruik om de led strip aan te sturen. Welke led ik welke kleur geef zal af hangen van het programma of spel dat op die

moment aan het runnen is.

11.2 Infrarood ontvangers

De ontvangers die ik gebruik geven als output 5V of 0V, afhankelijk van als hij een 38kHz signaal ontvangt of niet. (5V als hij niks ontvangt) Dit is

dus simpel in te lezen. Ik laat de uitgang van de ontvangers rechtstreeks naar mijn Raspberry Pi gaan.

• if GPIO.input(Pinnummer):

doorloop functie

• else:

doorloop functie

Als ik dit per kolom van mijn matrix doe is dat alles wat ik nodig heb on

de ontvangers in te lezen.

Page 30: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 30

12 Werking

12.1 Werking IR zender/ontvanger De bedoeling is dat er gedetecteerd word als er iets op de tafel staat/ligt.

Zoals al aangehaald heb ik gekozen om dit te doen met een infrarood zender en ontvanger. De IR zender (IR led) zal naar boven schijnen. Als

er zich niets bevind, zal er niets gedetecteerd worden. Als er wel iets staat of ligt boven de led, zal het infrarood signaal weerkaatst worden. De

ontvanger gaat dan het signaal ontvangen en dan kunnen we spreken van een gedetecteerd voorwerp.

Figuur 19 - Principe IR Z/O

12.1.1 Ontvanger

De ontvanger die ik heb gekozen is de TSOP31238. Dit is eigenlijk een ontvanger voor afstandsbedieningen van bijvoorbeeld Tv’s. Dit heeft voor-

en nadelen. Deze ontvanger leest niet zomaar een infrarood signaal in. Het leest pulsen in op 38kHz, dit zorgt er voor dat het moeilijker is om het

juiste signaal te bekomen. Het grote voordeel hiervan, is dat zonlicht, wat heel het lichtspectrum bevat, geen enkel invloed zal hebben op mijn

ontvanger.

12.1.2 Zender

De zender die ik heb gekozen is een simpele IR LED. Ik heb deze gekozen

met typenummer IR333. Zoals aangehaald moet ik deze aansturen tegen 38kHz. In plus minus 0.00002 seconden moet de led dus 1 periode

hebben doorlopen. De enige manier om dit te doen is met hardware PWM (Pulse-Width Modulation). Ik gebruik een ULN in combinatie met een

Page 31: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 31

mosfet type IRL530. Ik heb maar 1 hardware pin dus ik trek al mijn led’s 38000 keer per seconde naar de GND.

12.2 APA102C protocol Eerst en vooral start het protocol met een start frame van 32 bits. Deze

frame bestaat uit alleen maar nullen. Vanaf dan gaan er led frames worden verstuurd. Een led frame start altijd met 3 enen, vervolgens 5

algemene bits die gebruikt worden voor de intensiteit. Hierna zullen er voor elke kleur (rood, groen, blauw) 8bits zijn voorzien.

Deze informatie zal worden verwerkt door middel van een soort

schuifregister. Ik zeg een soort schuifregister omdat deze led strip niet werkt zoals de schuifregisters van de iets bekendere ws2812b led strips.

Een APA102C led ontvangt een SPI signaal en zal ook een SPI terug

uitzenden naar de volgende led. De data lijn is alleen nuttig als de clocklijn stijgend is. Dit zou normaal een probleem zijn. Het simpelweg

invoeren van het ingangssignaal naar de uitgang zou niet genoeg tijd

overlaten om de binnenkomende gegevens te checken en eventueel wijzigingen te maken. Dit zou kunnen resulteren in vervelende

omstandigheden.

Om dit probleem op te lossen is de output van de APA102C met een halve clock vertraagd. dit wordt gedaan door het binnenkomende kloksignaal

aan de uitgang om te keren. De gegevensuitvoer wordt doorgestuurd tijdens de stijgende flank van de inkomende klok, maar wordt alleen

geldig voor het volgende apparaat aan de stijgende flank van de uitgaande klok. Dit is heel handig omdat er nu geen interne clockbron

nodig is.

Page 32: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 32

13 Prototype

13.1 Eerste jury

Voor onze eerste evaluatie wou ik, zonder dat ik al alles af had, de jury toch een goed idee geven over hoe mijn tafel er uit zou zien. Ik heb mijn

tafel zelf laten zien en een miniatuurversie gemaakt van het praktische.

Mijn

eerste prototype bestond uit een miniatuurtafel die was gelasercut. Hierin zaten twee modules, gemaakt met een printplaat die ik zelf had

gesoldeerd, die bestond uit een infrarood zender en ontvanger en ook een led. Als je een voorwerp boven op het tafeltje zette dan lichtte de led op.

13.2 Tweede jury

Voor mijn tweede jury wou ik de tafel in zijn geheel laten zien. Natuurlijk kan dan nog niet alles werken want dan zou alles al af zijn, maar ik wou

toch een goed idee geven van wat de mogelijkheden waren.

Figuur 20 - Eerste jury

Page 33: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 33

Figuur 21 - Tweede jury

Fysiek was de tafel volledig af. Alle printjes zaten in de tafel, de plexiglas plaat lag er op en de led strip was ook al geïnstalleerd. Het enige wat niet

werkte was de matrix. Ik heb 1 vakje laten detecteren of er iets op lag of niet. Als er iets op lag kwam er een lichteffect tevoorschijn. Het effect kon

je kiezen op de website.

Page 34: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 34

14 Debugging

14.1 IR Zender frequentie

14.1.1 Probleem

Toen ik begon met mijn project kwam ik al direct mijn eerste probleem tegen. Ik moet mijn led’s sturen tegen 38kHz, maar ik heb maar 1

hardware-pwm pin op mijn Raspberry Pi.

14.1.2 Niet-Geslaagde oplossing

Ik heb geprobeerd om dezelfde frequentie te sturen met zowel software

PWM en DMA (Direct Memory Acces) PWM. Beide werkten niet. Na wat opzoekwerk heb ik dus ondervonden dat onze Pi niet tegen die snelheid

softwarematig kan sturen.

14.1.3 Uiteindelijke oplossing

Ik kan de led’s niet allemaal gelijk aansturen want ik heb maar 1 hardware pin. Maar met behulp van een mosfet kan ik wel de led’s

allemaal samen naar de GND trekken. Dus ik gebruik nu een ULN die aan de GND hangt door middel van de mosfet. Van mijn hardware pin stuur ik

een signaal van 38kHz wat er dus voor gaat zorgen dat als de ULN pin van de LED hoog wordt gemaakt dat de LED 38 duizend keer per seconde naar

de GND wordt getrokken.

14.2 Infrarood licht te fel

14.2.1 Probleem

Wanneer ik mijn eerste prototype heb gemaakt merkte ik dat het

infrarood licht te fel was. Dit zorgde er voor dat als je een voorwerp er ver boven hield, de ontvanger het licht al detecteerde. Dit kan ook als gevolg

hebben dat als je het licht schuin zou weerkaatsen dat je infrarood

ontvangers van andere vakjes kan laten afgaan. Dit is uiteraard niet de bedoeling.

14.2.2 Niet-Geslaagde oplossing

Ik dacht er aan om de duty cycle van mijn led aan te passen zodat de led minder aan staat per periode. Dit zou als resultaat moeten geven dat de

lichtintensiteit daalt. Ik kan dit niet doen met de ontvanger die ik gebruik. Om de ontvanger iets in te laten lezen moet je led tegen 38kHz laten

pulsen. De duty cycle moet 50% zijn dus kan ik deze niet veranderen met

de ontvanger die ik gebruik.

Page 35: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 35

14.2.3 Uiteindelijke oplossing

Ik had eerst een weerstand van 50 Ohm gebruikt om voor mijn infrarood led te zetten aangezien deze toch 100mA kan trekken. Ik heb de

weerstandswaarde verhoogd tot 470 Ohm zodat er een kleinere stroom gaat vloeien en de led dus minder fel oplicht.

14.3 Matrix detecteert niet

14.3.1 Probleem

De matrix van mijn ontvangers detecteerde niet of er iets boven de

ontvanger lag of niet. Zonder de matrix werkte dit niet maar in de matrix niet.

14.3.2 Niet-Geslaagde oplossing

Ik dacht eerst dat dit aan de ontvanger zelf lag omdat deze hoog zijn

(Vcc) wanneer er niks gedetecteerd wordt. Ik heb dan een multimeter gebruikt om te kijken of er iets veranderde wanneer ik een 38kHz signaal

stuur.

14.3.3 Uiteindelijke oplossing

Eerst was ik de ontvanger aan het voeden door een UTC62783 en de

negatieve kant van de ontvanger gewoon aan de GND te hangen. De matrix werkt alleen als ik de pluspool aan de 5V hang en de minpool naar

een ULN2803A laat gaan, die dan zal bepalen of deze ook echt naar de

GND wordt getrokken of niet.

14.4 Matrix werkt niet

14.4.1 Probleem

Ik heb eerst geprobeerd om een simpele 1x3 matrix op te bouwen, maar

heb zelfs dit in stappen gedaan. Wanneer ik 1x1 stuurde werkte dit perfect. Wanneer ik 1x2 stuurde werkte alleen de tweede en wanneer ik

1x3 stuurde werkte geen enkele meer.

14.4.2 Niet-Geslaagde oplossing

Ik heb geprobeerd verschillende dingen te veranderen in mijn code (tijd aan, tijd uit, tijd tussen laten). Maar geen enkele van deze dingen bleek te

werken.

Page 36: Smart Coffee Tablejordi20192020.kogekaschoolverlaters.be/Downloads/Jordi... · 2020. 6. 11. · Wetenschappen heb gedaan in Technisch Heilig-Hartinstituut Tessenderlo. Ik was meer

T3Ei6

Jordi Timmers Smart Coffee Table 36

14.4.3 Uiteindelijke oplossing

Ik heb een condensator tussen de 5V en de GND gezet. Dit is een tantaal condensator. Sinds dien werkt elke matrix. Dus ook de 5x9