laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  ·...

64
Geïntegreerde proef Robot sorteerder 2019-2020 Naam: Laurence Leysen Klas: T3EI6

Transcript of laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  ·...

Page 1: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Geïntegreerde proef

Robot sorteerder2019-2020

Naam: Laurence Leysen

Klas: T3EI6

Page 2: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

Voorwoord Ik ben Leysen Laurence. Ik woon in Geel. Ik ben 17 jaar en mijn hobby is fitness en gamen. Ik heb mijn eerste 2 jaar STEM (Sience Technology Engineering Mathematics) gevolgd in het Sint Aloysius (SAG) hier in Geel. Daarna ben ik naar het Sint Jozef gegaan en omdat ik graag wou leren programmeren heb ik in de 2de graad voor Mechatronische wetenschappen (EI) gekozen. Hierna ben ik in de 3de graad naar Elektronica-ICT gekomen.

Later zou ik graag cyber security gaan doen of web design. Hier heb ik sinds vroeger altijd al iets voor gehad. Na wat nadenken wou ik eerst een smart mirror maken maar hier was niet genoeg hardware aan dus wou ik een grijpmachine maken en toen kwam Mr. Smets met het idee voor een transportband met 2 robotarmen omdat deze beschikbaar waren op school. Dit leek me zeer interessant want ik had ook nagedacht over een robotarm te maken dus dit word het uiteindelijk.

2

Page 3: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

Inleiding Als eindwerk heb ik gekozen voor een robot sorter machine. De van werking de transportband gaat als volgend er ligt een blokje op de startpositie en robot arm 1 pakt dit blokje en plaatst het op de transportband. Nu detecteert een infrarood ontvanger en zender of het signaal word onderbroken als dat gebeurd weet de transportband dat hij mag beginnen met het verplaatsen. Op het einde zullen 2 sensors detecteren wat voor object het is. De eerste sensor (een inductieve) zal detecteren als de impedantie in de spoel veranderd dat gebeurd als er een metalen object voorbij komt. De 2de sensor zal de kleur van het object detecteren de eerste kleur zal in een bak worden gelegd en de 2 de kleur zal op de andere band worden gezet. Hier zal weer een sensor detecteren of er iets op de band staat en dan beginnen met het verplaatsen. Ook zal de kleur of het soort materiaal dan (metaal of hout) worden aangegeven door de RGB strip naast de transportband. Deze gegevens van welke blokjes er voorbij zijn gekomen zullen dan ook opgeslagen worden in een database waar alle details staan en gegevens.

Graag zou ik nog een aantal personen willen bedanken die mij geholpen hebben om dit project te realiseren. Allereerst gaat mijn grootste dank naar Mr. Smets hij was er altijd om te helpen al ser een probleem was. Daarnaast wil ik ook mijn vader bedanken voor altijd met mij naar de winkel te willen gaan als er een component ontbrak of als ik een component had kapot gemaakt en deze niet op school kon halen vanwege corona.

3

Page 4: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

Inhoud Voorwoord..............................................................................................................Inleiding.................................................................................................................Inhoud....................................................................................................................1 Blokschema......................................................................................................

1.1 Uitleg blokschema...................................................................................82 Situatieschema................................................................................................3 Controller.......................................................................................................10

3.1 Raspberry Pi..........................................................................................103.2 Operating system..................................................................................103.3 Programmeertalen en verwanten..........................................................10

3.3.1 Python.............................................................................................113.3.2 HTML5.............................................................................................123.3.3 PHP..................................................................................................133.3.4 JavaScript........................................................................................133.3.5 CSS.................................................................................................143.3.6 SQL.................................................................................................143.3.7 Apache server.................................................................................153.3.8 Flask server.....................................................................................153.3.9 MySQL.............................................................................................15

4 Object detectie...............................................................................................164.1 Ultrasone sensor...................................................................................16

4.1.1 Voor en nadelen van de ultrasone sensor (HC-SR04)......................164.2 Infrarood zender ontvanger...................................................................16

4.2.1 Voor en nadelen van de infrarood zender ontvanger......................164.3 Inductieve sensor..................................................................................16

5 Componenten................................................................................................175.1 Robotarm..............................................................................................17

5.1.1 De servo motor...............................................................................175.1.2 Specificaties....................................................................................175.1.3 Informatie foto’s..............................................................................17

5.2 Aansturing servo’s.................................................................................185.3 Werking van een servo..........................................................................185.4 Vanbinnen in een servo.........................................................................19

5.4.1 I2C...................................................................................................195.4.2 PCA9685 servo driver......................................................................205.4.3 Simpel connectie schema met 1 servo...........................................205.4.4 Voeden van servo’s.........................................................................20

5.5 Transportband.......................................................................................22

4

Page 5: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.5.1 Transportband.................................................................................225.5.2 Stappenmotor (NEMA23).................................................................225.5.3 Unipolaire stappenmotoren.............................................................235.5.4 Bipolaire stappenmotoren...............................................................235.5.5 Aansturen NEMA 23 (stappenmotor driver DM542)........................24

5.6 Objectdetectie / keuze..........................................................................255.6.1 Specificaties....................................................................................255.6.2 De HC-SR04 in detail.......................................................................26

5.7 Kleurdetectie.........................................................................................275.7.1 Specificaties....................................................................................275.7.2 Keuze..............................................................................................275.7.3 De TCS2300 kleurensensor in detail...............................................28

6 Veiligheid transportband................................................................................306.1 Andere ideeën voor het eindeloopcontact.............................................306.2 Schema van eindeloopcontact..............................................................316.3 Monteren van eindeloop contacten.......................................................32

7 Het monteren van alles..................................................................................337.1 Robotarm monteren..............................................................................337.2 Transportbanden monteren...................................................................357.3 Transportband en robotarmen gemonteerd..........................................36

8 Printplaat.......................................................................................................378.1 Ontwerp 1.............................................................................................378.2 Ontwerp 2.............................................................................................388.3 Oplossing voedingslijn...........................................................................398.4 Robotarmstuk........................................................................................408.5 Waarom deze print? Wat gaat dit doen?...............................................41

9 Eagle to JLCPCB..............................................................................................429.1 Create board.........................................................................................429.2 Eagle board to Gerber-File....................................................................429.3 Printjes bestellen...................................................................................45

10 Prijsberekening..............................................................................................4611 Vermogenberekening.....................................................................................47

11.1 Maximum vermogen Actoren.............................................................4711.2 Maximum vermogen voeding.............................................................47

12 Besluit............................................................................................................4813 Gebruikte bronnen.........................................................................................49

5

Page 6: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

AfbeeldingenFiguur 1 : Blokschema.........................................................................................8Figuur 2 : Raspberry Pi 3B+...............................................................................10Figuur 3 : Raspbian............................................................................................10Figuur 4 : Python logo........................................................................................11Figuur 5 : HTML5 logo........................................................................................12Figuur 6 : Voorbeeldcode...................................................................................12Figuur 7 : Logo PHP............................................................................................13Figuur 8 : JavaScript...........................................................................................13Figuur 9 : Logo CSS............................................................................................14Figuur 10 : SQL..................................................................................................14Figuur 11 : SQL voorbeeldcode..........................................................................14Figuur 12 : Logo Apache webserver...................................................................15Figuur 13 : Logo Flask........................................................................................15Figuur 14 : Logo MySQL.....................................................................................15Figuur 15 : Aansluitingen servo.........................................................................17Figuur 16 : Puls voorbeeld.................................................................................17Figuur 17 : PCA9685..........................................................................................18Figuur 18 : Voorbeeld werking servo Figuur 19 : Gestuurde pulsen............18Figuur 20 : I2C protocol.....................................................................................19Figuur 21 : Voorbeeld opstelling met de PCA9685.............................................20Figuur 22 : Kabelmod PSU..................................................................................21Figuur 23 : Waardes PSU...................................................................................21Figuur 24 : Transportband.................................................................................22Figuur 25 : NEMA23 stappenmotor....................................................................22Figuur 26 : Unipolair schema.............................................................................23Figuur 27 : Bipolair schema...............................................................................23Figuur 28 : NEMA23 datasheet..........................................................................23Figuur 29 : Dipswitches driver 5-8.....................................................................24Figuur 30 : Dipswitches driver 1-3.....................................................................24Figuur 31 : Werking ultrasone sensor................................................................26Figuur 32 : Verloopschema TCS2300.................................................................28Figuur 33 : In de fotodiode.................................................................................28Figuur 34 : Waarheidstabel kleurensensor.........................................................29Figuur 35 : Aansluiting kleurensensor................................................................29Figuur 36 : Schema eindeloopcontact................................................................31Figuur 37 : Werking eindeloopcontact...............................................................31Figuur 38 : Begin ijzeren plaatje........................................................................32Figuur 39 : Afgeslepen ijzeren plaatje................................................................32Figuur 40 : Aangesloten ijzeren plaatje..............................................................32Figuur 41 : Gemonteerd ijzeren plaatje.............................................................32Figuur 42 : Houtenplank....................................................................................33Figuur 43 : Gemonteerde robotarm...................................................................34Figuur 44 : Close-up gemonteerde robotarm.....................................................34Figuur 45 : Foto montagetransportband............................................................35Figuur 46 : Montage transportband...................................................................35Figuur 47 : Montage schuifmoertjes...................................................................35Figuur 48 : Robotarmen en transportband gemonteerd....................................36Figuur 49 : Eerste printontwerp.........................................................................37Figuur 50 : Printplaat.........................................................................................38Figuur 51 : Extra schakeling robotarmen...........................................................39Figuur 52 : Robotarm print.................................................................................40Figuur 53 : Main printplaat.................................................................................42Figuur 54 : Eagle naar gerber............................................................................426

Page 7: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

Figuur 55 : Eagle naar gerber............................................................................43Figuur 56 : Eagle naar gerber...........................................................................44Figuur 57 : Eagle naar gerber JLCPCB...............................................................45Figuur 58 : JLCPCB.............................................................................................45

7

Page 8: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

1 Blokschema

Figuur 1 : Blokschema

1.1 Uitleg blokschemaDe werking van het blokschema is simpel en gaat als volgend:

- Wanneer een blokje op de startpositie komt start je het programma hierdoor gaat de eerste robotarm het blokje oppakken en op de transportband leggen.

- Nu het blokje op de transportband ligt gaat een infrarood zender en ontvanger zijn signaal verbroken worden zo weet de transportband dat er een blokje op de band ligt en dat hij mag beginnen met verplaatsen. Hierdoor gaat de stappenmotor beginnen met draaien en beweegt het plateau waar het blokje opstaat.

- Wanneer de transportband op het einde komt gaan de twee sensors detecteren of het inductief is (metaal) en welke kleur.

- Nu weet het systeem wat voor blokje er ligt en wat de robotarm ermee moet doen dus als het metaal is legt de arm het blokje in doos één bij kleur één in doos 2 en als het kleur twee heeft legt hij het op de andere transportband.

- Als de robotarm het op de tweede transportband heeft gelegd gaat nog een infrarood verzender en ontvanger hun signaal verbroken worden hierdoor weet het systeem dat er iets op ligt.

- Hierdoor gaat nu de transportband weer het blokje vervoeren naar het volgende punt waar het blokje op zijn plaats word gelegd.

8

Page 9: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

2 Situatieschema

9

Kleuren sensor + ultrasoon sensor

ultrasoon sensor

ultrasoon sensor

Page 10: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

3 Controller Als controller voor deze GIP heb ik gekozen voor de Raspberry Pi 3B+

3.1 Raspberry PiDe Raspberry Pi is een goedkope kleine computer gemaakt om programmeren makkelijker te maken voor programmeurs. Deze heeft ook de mogelijkheid voor makkelijke aansluitingen via I/O GPIO en meer complexe zoals SPI, I2C of webservers zoals flask. Hiermee kan je ook al meer geavanceerde programma’s mee gaan maken.

3.2 Operating systemIk heb gekozen voor Raspbian Stretch simpelweg omdat we hier mee zijn begonnen en hiermee hebben geleerd te werken dus dat is het simpelste.

3.3 Programmeertalen en verwantenVoor mijn geïntrigeerde proef zal ik verschillende computertalen moeten gebruiken om het project te laten werken zoals Python, HTML5, PHP, JavaScript, CSS, Apache server, Flask server, MySQL

10

Figuur 2 : Raspberry Pi 3B+

Figuur 3 : Raspbian

Page 11: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

3.3.1 Python

Python is een populaire programmeertaal. Het is een geïnterpreteerde, algemene programmeertaal op hoog niveau.

Je gebruikt het voor:- webontwikkeling (server-side),- software ontwikkeling,- wiskunde,- systeem scripting.

Wat kan Python doen?- Python kan op een server worden gebruikt om webapplicaties te

maken.- Python kan naast software worden gebruikt om “workflows” te maken.- Python kan verbinding maken met databasesystemen. Het kan ook

bestanden lezen en wijzigen.- Python kan worden gebruikt om grote data te verwerken en complexe

wiskunde berekeningen uit te voeren.- Python kan worden gebruikt voor “rapid” prototyping of voor

productieklare softwareontwikkeling.

Waarom Python?- Python werkt op verschillende platforms (Windows, Mac, Linux,

Raspberry Pi, enz.).- Python heeft een eenvoudige syntaxis vergelijkbaar met de Engelse

taal.- Python heeft syntaxis waarmee ontwikkelaars programma's kunnen

schrijven met minder regels dan sommige andere programmeertalen.- Python draait op een interpretersysteem, wat betekent dat code kan

worden uitgevoerd zodra deze is geschreven. Dit betekent dat prototyping erg snel kan zijn.

- Python kan procedureel, objectgeoriënteerd of functioneel worden behandeld.

Python-syntaxis vergeleken met andere programmeertalen- Python is ontworpen voor leesbaarheid en heeft enige

overeenkomsten met de Engelse taal met invloed van wiskunde.- Python gebruikt nieuwe regels om een opdracht uit te voeren, in

tegenstelling tot andere programmeertalen die vaak puntkomma's of haakjes gebruiken.

- Python vertrouwt op inspringen, met behulp van witruimte, om bereik te definiëren; zoals het bereik van lussen, functies en klassen. Andere programmeertalen gebruiken hiervoor vaak accolades.

11

Figuur 4 : Python logo

Page 12: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

3.3.2 HTML5

HTML5 is de nieuwste versie van de HTML-standaard. Hij is verbeterd ten opzichte van de vorige versies van HTML ook de kleine fouten die er nog in zaten ook levert hij betere ondersteuning voor webapplicaties.

HTML is de standaard opmaaktaal voor het maken van webpagina's.

- HTML staat voor Hyper Text Markup Language- HTML beschrijft de structuur van een webpagina- HTML bestaat uit een reeks elementen- HTML-elementen vertellen de browser hoe de inhoud moet worden

weergegeven- HTML-elementen worden voorgesteld door tags- HTML-tags labelen stukjes inhoud zoals "kop", "alinea", "tabel",

enzovoort- Browsers geven de HTML-tags niet weer, maar gebruiken ze om de

inhoud van de pagina weer te geven

Voorbeeldcode:

12

Figuur 5 : HTML5 logo

Figuur 6 : Voorbeeldcode

Page 13: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

3.3.3 PHP

PHP (PHP: Hypertext Preprocessor) is een scripttaal, die bedoeld is om op webservers dynamische webpagina's te creëren.

De bedoeling hiervan gaat als volgt:- Wanneer een browser een PHP-document oproept, wordt op de server

eerst de in het document opgenomen PHP-code uitgevoerd. Dit gebeurt door de PHP-interpreter (de PHP-engine). Het resultaat (meestal HTML) wordt door de webserver naar de browser gestuurd. PHP kan echter ook andere documenttypen, zoals afbeeldingen of XML, genereren. PHP-documenten hebben vaak de extensie .php, maar ook de oudere extensies worden nog (weliswaar sporadisch) gebruikt.

3.3.4 JavaScript

JavaScript is een veelgebruikte scripttaal om webpagina's interactief te maken en webapplicaties te ontwikkelen. Naast HTML en CSS is JavaScript een van de kerntechnologieën van het wereldwijde web. JavaScript kan client-side of server-side werken.

3.3.4.1 Client-side

In deze toepassing wordt JavaScript vooral gebruikt in interactieve webpagina's.

De JavaScript wordt door middel van speciale voorzieningen in HTML (met name het script-element) in de pagina opgenomen, als onderdeel van de pagina geladen door de webbrowser, en vervolgens hierin uitgevoerd.

De code kan de pagina op allerlei manieren aanpassen en zelfs, met behulp van AJAX, nieuwe pagina-inhoud of scriptcode laden en weergeven.

3.3.4.2 Server-side

JavaScript kan ook gebruikt worden voor server-side scripting. De webservers van Netscape waren de eerste die deze ondersteuning boden. Maar ook de webserver van Microsoft, IIS, ondersteunt JavaScript in Active Server Pages en ASP.NET. De laatste jaren maakt node.js een grote opgang.

13

Figuur 7 : Logo PHP

Figuur 8 : JavaScript

Page 14: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

3.3.5 CSS

Cascading Style Sheets (afgekort tot CSS), stijlbladen, zijn een mogelijkheid om de vormgeving van webpagina's los te koppelen van hun feitelijke inhoud en centraal vast te leggen. Het Engelse "style" heeft de betekenis van "opmaak", niet van schrijfstijl. Het begrip "cascading" (als een waterval) verwijst naar de mogelijkheid van het overerven van opmaak-eigenschappen.

Met Cascading Style Sheets kan de vormgeving van elk element in een webpagina worden bepaald. Een element van een webpagina wordt gedefinieerd door het gebruik van een HTML-tag. De term cascading geeft aan dat de stijl van elementen overerving vertoont: elk element neemt de stijl over van zijn parent-element, tenzij er een eigen stijl voor dat element is gegeven. Elke webbrowser heeft een ingebouwde stylesheet die de vormgeving van alle elementen bepaalt als er geen stylesheets aan een document worden meegegeven.

3.3.6 SQL

SQL (Structured Query Language) is een ANSI/ISO-standaardtaal voor een relationeel databasemanagementsysteem (DBMS). Het is een gestandaardiseerde taal die gebruikt kan worden voor taken zoals het bevragen en het aanpassen van gegevens in een relationele database. SQL kan met vrijwel alle moderne relationele databaseproducten worden gebruikt.

3.3.6.1 Werking

SQL maakt voor de communicatie met het DBMS gebruik van zogenaamde query's. Een query is een ASCII-tekenreeks en is een opdracht die naar het DBMS wordt verzonden. Het DBMS zal de opdracht interpreteren en uitvoeren en stuurt eventueel gegevens terug naar het opdrachtgevende programma.Een SQL-query ziet er bijvoorbeeld als volgt uit:

Figuur 11 : SQL voorbeeldcode

De betekenis van bovenstaande query is als volgt:

- SELECT: hierachter wordt geplaatst welke velden (kolommen) worden geselecteerd; * betekent 'alle velden'.

- FROM: hierachter komt de naam van de tabel, in dit geval tblKlanten.- WHERE: hierachter komen veldnamen met waarden waaraan de

velden moeten voldoen.In dit geval: alle records waarvan het veld krediet in de tabel tblKlanten kleiner is dan 0.

14

Figuur 9 : Logo CSS

Figuur 10 : SQL

Page 15: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

3.3.7 Apache server

Apache HTTP Server is een opensourcewebserver voor Windows, macOS, Linux en andere Unix-achtige besturingssystemen. Apache HTTP Server wordt ook wel Apache of httpd genoemd.

Apache wordt gebruikt in combinatie met verschillende databases, template-talen, scripttalen en programmeertalen ten behoeve van webapplicaties.

3.3.8 Flask server

Flask is een micro web framework geschreven in Python. Het is geclassificeerd als een microframework omdat het geen specifieke tools of bibliotheken vereist. Het heeft geen database-abstractielaag, formuliervalidatie of andere componenten waar reeds bestaande bibliotheken van derden gemeenschappelijke functies bieden. Flask ondersteunt echter extensies die toepassingsfuncties kunnen toevoegen alsof ze in Flask zelf zijn geïmplementeerd. Er bestaan extensies voor object-relationele mappers, formuliervalidatie, uploadverwerking, verschillende open authenticatietechnologieën en verschillende gemeenschappelijke raamwerk-gerelateerde tools. Extensies worden veel vaker geüpdatet dan het kernprogramma van Flask.

3.3.9 MySQL

MySQL is een propriëtair opensource-managementsysteem voor relationele databases. SQL is de taal die wordt gebruikt om een database van dit systeem op te bouwen, te bevragen en te onderhouden. MySQL werd allereerst vooral gebruikt voor internettoepassingen zoals fora en gastenboeken, meestal in combinatie met PHP. MySQL vormt de basis van vele internettoepassingen en standalone software.

De naam MySQL is een combinatie van "My", de naam van het dochtertje van medeoprichter Michael "Monty" Widenius, en "SQL", de afkorting voor Structured Query Language.

15

Figuur 12 : Logo Apache webserver

Figuur 13 : Logo Flask

Figuur 14 : Logo MySQL

Page 16: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

4 Object detectie Om objecten te kunnen detecteren die op de transportband worden gezet hebben we een detectie systeem nodig. De 2 makkelijkste manieren zijn een ultrasone sensor afstand laten detecteren ofwel een infrarood zender en ontvanger maken en wanneer dit signaal word onderbroken weet het of er een object staat.

4.1 Ultrasone sensorDe werking van een ultrasone sensor is vrij simpel hij stuurt een frequentie deze weerkaatst op een object en komen dan terug dan word een berekening gedaan en weet je de afstand van het object.

4.1.1 Voor en nadelen van de ultrasone sensor (HC-SR04)

De meest gebruikte ultrasone sensor voor kleine projectjes is de HC- SR04 deze heb ik zelf ook al gebruikt en heeft voor en nadelen. Het grootste nadeel is dat deze niet tegoei meet op een te korte afstand voor de rest is alles wel goed. Een groot voordeel is dat deze door stof, rook, mist, … etc kan meten.

4.2 Infrarood zender ontvangerEen infrarood LED gaat branden deze infrarode stralen komen bij een ontvanger die gaat geleiden als er een infrarode straal op komt. Als er een object tussen komt word het signaal verbroken en hierdoor weet het programma dat er een object tussen is gekomen.

4.2.1 Voor en nadelen van de infrarood zender ontvanger

Een groot nadeel van de infrarood zender ontvanger is dat zonlicht het signaal kan verstoren en je hierdoor valse output kan krijgen. Een voordeel is dat deze methode betrouwbaarder is om te gaan detecteren of er een object tussenkomt zeker als het moet worden gecheckt op een korte afstand.

4.3 Inductieve sensorEen inductieve nabijheidsensor is een sensor die werkt volgens het principe van verandering van inductie. Dit type sensor wordt gebruikt als nabijheidsschakelaar. Wanneer deze sensor dicht bij een metalen object komt, verandert de impedantie in de spoel. De verandering van deze impedantie hangt af van de afstand tussen het metalen object en de sensor. Deze sensor heeft als voordeel dat hij niet beïnvloed wordt door niet-geleidende materialen zoals kunststof of hout.

16

Page 17: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5 Componenten Hier zal ik gaan uitleggen welke componenten er worden gebruikt en waarom ik deze heb gekozen in mijn GIP. Van het simpele waarvoor het gebruikt wordt tot hoe ze werken in detail.

5.1 RobotarmDe robotarm heb ik “gekregen” van school deze zat in een bouwpakket hier zaten al servo motors bij en de andere onderdelen dus deze moet ik niet zelf niet tekenen en laten maken.

5.1.1 De servo motor

Hiervoor gebruiken we de mg996r high torque servo. High torque staat voor hoog koppel dat wil zeggen dat deze meer vermogen gaat hebben als een normale servomotor.

5.1.2 Specificaties

Gewicht 55gAfmetingen 40,7 x 19,7 x 42,9 mmMaximum draaimoment 9.4 kgf·cm (4.8 V ), 11 kgf·cm (6 V)Werksnelheid 0.17 s/60º (4.8 V), 0.14 s/60º (6 V)Werkspanning 4,8V - 7,2VWerkstroom 500mA – 900mA (6V)Piekstroom 2,5A (6V)Temperatuur 0 ºC – 55 ºCPulse Van 1ms(0º tot 2ms(180º)

5.1.3 Informatie foto’s

17

Figuur 15 : Aansluitingen servoFiguur 16 : Puls voorbeeld

Page 18: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.2 Aansturing servo’sHet aansturen van de servomotoren zal gebeuren via een module de adafruit-pca9685. Dit is een simpele PWM servo driver die via een I2C interface werkt.

Figuur 17 : PCA9685

5.3 Werking van een servoServo's worden door een elektrische puls met variabele breedte of pulsbreedtemodulatie (PWM) bestuurd. Er is een minimale puls, een maximale puls en een herhalingssnelheid. Een servomotor kan meestal slechts 90 ° in beide richtingen draaien voor een totale beweging van 180 °. De neutrale positie van de motor wordt gedefinieerd als de positie waarbij de servo dezelfde hoeveelheid potentiaalrotatie heeft, zowel met de klok mee als tegen de klok in. De PWM die naar de motor wordt gestuurd, bepaalt de positie van de as en op basis van de duur van de puls die via de besturingsdraad wordt verzonden; draait de rotor naar de gewenste positie. De servomotor verwacht elke 20 milliseconden (ms) een puls te zien en de lengte van de puls bepaalt hoe ver de motor draait. Een puls van 1,5 ms zorgt er bijvoorbeeld voor dat de motor naar de 90 ° -stand draait. Korter dan 1,5 ms beweegt het tegen de klok in in de richting van de 0 ° positie, en langer dan 1,5 ms zal de servo met de klok mee draaien in de richting van de 180 ° positie.

Wanneer deze servo's de opdracht krijgen om te bewegen, zullen ze naar de positie gaan en die positie behouden. Als een externe kracht tegen de servo duwt terwijl de servo een positie aanhoudt, zal de servo weerstaan om uit die positie te komen. De maximale hoeveelheid kracht die de servo kan uitoefenen, wordt het koppel van de servo genoemd. Servo's zullen hun positie echter niet voor altijd behouden, de positiepuls moet worden herhaald om de servo te instrueren in positie te blijven.

Figuur 18 : Voorbeeld werking servo Figuur 19 : Gestuurde pulsen

5.4 Vanbinnen in een servo18

Page 19: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

Om volledig te begrijpen hoe de servo werkt, moet je een kijkje onder de motorkap nemen. Binnenin is er een vrij eenvoudige opstelling: een kleine DC-motor, potentiometer en een stuurcircuit. De motor is bevestigd door tandwielen aan het besturingswiel. Terwijl de motor draait verandert de weerstand van de potentiometer zo weet het stuurcircuit hoeveel beweging er is en in welke richting.

Wanneer de as van de motor zich in de gewenste positie bevindt, wordt de stroomtoevoer naar de motor gestopt. Zo niet, dan wordt de motor in de juiste richting gedraaid. De gewenste positie wordt via elektrische pulsen door de signaaldraad gestuurd. De snelheid van de motor is evenredig met het verschil tussen de werkelijke positie en de gewenste positie. Dus als de motor zich in de buurt van de gewenste positie bevindt, draait deze langzaam, anders draait deze snel. Dit wordt proportionele controle genoemd. Dit betekent dat de motor alleen zo hard zal draaien als nodig is om de taak uit te voeren dus zeer efficiënt.

5.4.1 I2C

De I2C-bus (spreek uit als: I kwadraat C bus), eertijds aangeduid met IIC-bus (Inter-IC-bus), is een synchrone, seriële bus, ontwikkeld voor datacommunicatie tussen microprocessoren en andere IC's, meestal op één enkele printplaat. De werking hiervan is niet zo simpel de theorie wel maar de code ervan is iets meer gecompliceerd. Kortom I2C werkt op basis van twee buslijnen, namelijk SDA (serial data) en SCL (serial clock). Over de SDA-lijn wordt de data verzonden en over de SCL-lijn wordt het kloksignaal verzonden. In dit schema wordt het een beetje verduidelijkt.

De werking van I2C dataoverdracht: Data verzenden wordt geïnitieerd met een STARTbit (S) die de SDA het

signaal geeft om omlaag getrokken te worden, terwijl de SCL hoog blijft. SDA zet de eerste databit gelijk, terwijl SCL laag gehouden wordt

(gedurende de blauwe tijdsbalk.). De data wordt ontvangen als SCL naar omhoog gaat (groen).

Als de overdracht compleet is wordt een STOPbit (P) verzonden door de datalijn vrij te geven en deze zo in staat te stellen om omhoog getrokken te worden, terwijl SCL continu hoog gehouden wordt.

Ten einde valse detecties te voorkomen wordt het niveau van de SDA veranderd op de dalende flank (overgang van hoog naar laag) van SCL. Het uitlezen gebeurt op de stijgende flank (de overgang van laag naar hoog) van SCL.

19

Figuur 20 : I2C protocol

Page 20: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.4.2 PCA9685 servo driver

Je gebruikt slechts twee I2C pinnen om 16 free-running PWM outputs te controleren! Je kan zelf tot 62 shields gaan om zo 992 PWM outputs te controleren (wat ons gaaf lijkt te zien aangezien het zo'n meter hoog zou moeten worden. Omdat I2C een gedeelde bus is, kun je ook andere I2C devices en sensoren aansluiten aan de SCL/SDA pinnen zolang de adressen niet conflicteren (dit shield heeft adres 0x40).

Specificaties:

Spanning Vcc pin: 3-5V Spanning signaal pinnen: 3-5V Maximale spanning V+ pin: 6V (aansluiting via terminal block) Resolutie PWM signalen: 12-bit Soldeervlakken om het I2C adres in te stellen (62 combinaties mogelijk) Kan als een ketting doorgekoppeld worden om tot wel 992 uitgangen via

I2C aan te sturen Ompoolbeveiliging op de V+ pin Vier 3mm gaten voor montage

5.4.3 Simpel connectie schema met 1 servo

Figuur 21 : Voorbeeld opstelling met de PCA9685

5.4.4 Voeden van servo’s

We kunnen de servo’s niet rechtstreeks voeden dus gaan we een externe voeding

20

Page 21: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

gebruiken. Hiervoor heb ik een oude computer PSU waarvan ik de 5V lijn heb gesplit in 12 draden (12 servo’s) en de GND lijn naar 13 GND lijnen (1 naar de servo driver print voor GND door te verbinden).

Het gebruiken van deze voeding is niet zo moeilijk je moet alleen de voeding manipuleren zodat hij denkt dat hij is verbonden met het moederbord van een computer. Dit is makkelijk opgelost door pin 15 en 16 te verbinden met elkaar. Dit kan met een zelfs met een paperclip. Nu hebben we een voeding die 5V en 30A kan leveren.

21

Figuur 22 : Kabelmod PSU

Figuur 23 : Waardes PSU

Page 22: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.5 TransportbandDe transportband heb ik ook “gekregen” van school deze zat in een bundel. In deze bundel zat een stappenmotor en transportband.

5.5.1 Transportband

Dit is een C-Beam XL dit is eigenlijk geen transportband maar wordt gebruikt voor een XY-as bij CNC machines. Specificaties:

5.5.2 Stappenmotor (NEMA23)

Deze transportband zal aangestuurd worden door een stappenmotor. De werking gaat als volgend de stappenmotor draait een schroefdraad hierdoor zal een mechanisme aan de transportband zorgen dat het plateau zal beginnen met bewegen.

Een stappenmotor is een synchrone elektromotor waarvan je de hoekverdraaiing heel nauwkeurig mee kan besturen (meest voorkomend in stappen van 1,8° per stap. Met een beetje zelf programmeren kan je de toestand van de stappenmotor bijhouden en heel nauwkeurig aansturen terwijl je weet in welke hoek hij staat.

Er zijn ook verschillende soorten windingstypes stappenmotoren unipolair en bipolair.

22

Figuur 24 : Transportband

Figuur 25 : NEMA23 stappenmotor

Reisafstand 885 mmPositionering 0.026 mmMax kracht 115 NMax snelheid 8000 mm/minLengte 1000 mm

Page 23: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.5.3 Unipolaire stappenmotoren

De unipolaire stappenmotor bezit twee wikkelingen met elk een middenaftakking en heeft dus zes aansluitingen. De middenaftakkingen (common) worden permanent aan één kant van de voedingsspanning aangesloten. In sommige gevallen zijn beide common-aansluitingen samengenomen en heeft de motor vijf aansluitingen. De vier andere aansluitingen worden door de besturing steeds wel of niet met het andere eind van de spanning verbonden. Op deze wijze worden hoogstens twee halve wikkelingen tegelijk bekrachtigd, zodat op enig gegeven moment minstens de helft van de wikkelingen ongebruikt blijft. Daardoor is een compacte bouw niet mogelijk. Het voordeel is echter de relatief eenvoudige besturing; er zijn maar vier vermogenstransistoren nodig. Met de komst van de hoog-geïntegreerde elektronica is dit echter niet langer een economisch voordeel; dit type motor raakt in onbruik.

5.5.4 Bipolaire stappenmotoren

De bipolaire stappenmotor bezit twee wikkelingen zonder middenaftakking en heeft dus vier aansluitingen. Tegenwoordig is dit het gangbare type. De wikkelingen worden in beide richtingen bekrachtigd en moeten daarom elk in een transistorbrugschakeling geplaatst worden. Dit is ook het type dat mijn motor is.

Hier zijn enkele belangrijke specificaties van de NEMA 23 :

23

Figuur 26 : Unipolair schema

Figuur 27 : Bipolair schema

Figuur 28 : NEMA23 datasheet

Page 24: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.5.5 Aansturen NEMA 23 (stappenmotor driver DM542)

Voor het aansturen van de stappenmotor hebben we een stappenmotor driver nodig. Zo gaan we de motor makkelijk kunnen aan/uit zetten, de richting veranderen en pulsen sturen via onze Raspberry pi. Met de driver kan je zelf de stroom bepalen die naar de motor gaat met de DIP switches aan de zijkant. Ook kan je een microstap selectie aanduiden om de motor nog nauwkeuriger aan te sturen.

Er zijn in totaal 8 switches op deze foto’s kan je zien wat je ermee kan doen :

De driver werkt op een spanning van 18VDC – 50VDC. Hier komt nog een externe voeding aan bod die 24VDC en minstens 6A (2 stappenmotoren) kan sturen. Dan kunnen we met de DIP switches de OUT stroom bepalen voor de stappenmotor. Aan de driver zijn 12 aansluitingen :

PUL+ / PUL- Pulse inputDIR+ / DIR- Richting bepalen van motorENA+ / ENA- De driver aan/uit zettenGND Ground van power supply+V Voedspanning van power supplyA+ Motor winding A+A- Motor winding A-B+ Motor winding B+B- Motor winding B-

24

Figuur 29 : Dipswitches driver 1-3

Figuur 30 : Dipswitches driver 5-8

Page 25: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.6 Objectdetectie / keuze5.6.1 Specificaties

Pulsotronic D-5276 Type 9919-2000- Duur- Detecteert tot 10mm afstand- Detecteert alleen inductief

HC-SR04- Goedkoop- Detecteert tot 4000mm afstand- Detecteert meeste voorwerpen (oppassen voor dichtheid)

Infrarood- Goedkoop- Afstand hangt af van componenten maar wel redelijk ver(denk aan TV

afstandsbediening)- Nauwkeurig signaal

De HC-SR04 is een ultrasone sensor ik verkies deze boven een inductieve sensor omdat het makkelijker is om mee te werken in dit project. Hierdoor hoeven we geen zorgen te maken dat de sensor dicht genoeg bij het object hoeft te staan en kunnen we dit vanaf een iets verdere afstand doen. Ook is er nog infrarood detectie hier zijn ook wat nadelen aan t.o.v. de ultrasone sensor zoals dat deze verstoord kan worden door andere infrarood signalen of door rook/mist het signaal kan worden verstoord.

25

Page 26: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.6.2 De HC-SR04 in detail

Ultrasoonsensoren zijn sensoren die werken met behulp van geluidsgolven op frequenties hoger dan waarneembaar voor het menselijk oor. Dit gaat om golven met een frequentie hoger dan 18 kHz tot 200 kHz. In dergelijke sensoren verzendt een transmitter een ultrasone golf. Door reflectie op een voorwerp of materie ontstaat een echo van deze geluidsgolf. Door het tijdsinterval tussen het verzenden en het ontvangen van de geluidsgolf te meten kan men afstanden bepalen. Afhankelijk van de fysieke afstand tussen transmitter en receiver moet men nog een meetkundige bewerking uitvoeren, zoals triangulatie, om de correcte afstand te bekomen. Ook dient men rekening te houden met het medium waarin de ultrasone golf wordt verzonden, zoals lucht of water. De ultrasone golf verplaatst zich door elke medium met een verschillende snelheid. Bij lucht bedraagt deze 340 m/s bij kamertemperatuur. Deze snelheid is ook afhankelijk van de temperatuur.

Naargelang de nauwkeurigheid van de gebruikte transmitter en receiver kan men een ultrasoonsensor gebruiken in vochtige, stoffige ruimtes. Ook kan bij sommige toestellen een glazen of doorzichtige oppervlakte gedetecteerd worden. Wel neemt de nauwkeurigheid in dergelijke situaties af. Sponsachtige texturen, kleding en rubbers kunnen ernstige problemen geven voor een ultrasoon sensor, door het hoge absorptievermogen van dit materiaal.

Voordelen- Ultrasone sensoren zijn onafhankelijk van de kleur en optische

reflectie van een object- Geen (kunstmatige) belichting nodig: ze werken ook in het donker- Detectie van (onzichtbare) scheuren en barsten- Eenvoudige en goedkope omvormers (transducenten)- De snelheid waarmee de golf terugkomt is lineair met de afstand

Nadelen- Kan niet gebruikt worden in ruimtes met een hoge dichtheid aan

voorwerpen, omdat de reflectie in dergelijke ruimtes niet meer correct is

- Kan niet gebruikt worden op voorwerpen met een te hoog absorptievermogen, zoals sponzen, rubber en kleding

- Zonder temperatuurcompensatiesensor kan een ultrasoonsensor niet gebruikt worden bij zeer lage en hoge temperaturen, omdat de snelheid van de uitgezonden golf afhankelijk is van het gebruikte medium

- Ultrasone sensoren zijn ook beïnvloedbaar door luchtvochtigheid, luchtdruk en bepaalde deeltjes in de atmosfeer

- Ze hebben een minimale meetafstand

26

Figuur 31 : Werking ultrasone sensor

Page 27: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.7 KleurdetectieEr worden verschillende blokjes gesorteerd op basis van kleur. Dus hiervoor gaan we een RGB kleurendetector voor nodig hebben. Het eerste waar je op komt op Google is de TCS2300 en zo goed als alle pagina’s gaan over dit type als je “RGB color sensor electronics” opzoekt. Je komt ook nog een iets ander type tegen genaamd de TCS34725.

5.7.1 Specificaties

TCS2300- Werkt op: 2.7V to 5.5V- Interface: Digital TTL- Afstand :hangt af van objectgrootte en omgeving

TCS34725- Werkt op: 3V-5V (3.3V regulator)- Interface: I2C- Afstand :hangt af van objectgrootte en omgeving

5.7.2 Keuze

Ik zal heb gekozen voor de TCS2300 omdat het makkelijker is om met een gewone digitale interface werkt en dan hoef ik niet met een extra I2C adress te werken. De prijs is hetzelfde en ze doen allebei wat ze moeten doen.

27

Page 28: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

5.7.3 De TCS2300 kleurensensor in detail

De TCS2300 registreert kleurlicht met behulp van een 8 x 8 reeks fotodiodes. Vervolgens worden de meetwaarden van de fotodiodes met behulp van een stroom-naar-frequentie-omzetter omgezet in een blokgolf met een frequentie die recht evenredig is met de lichtintensiteit. Ten slotte kunnen we met behulp van een Raspberry pi de blokgolfuitvoer lezen en de resultaten voor de kleur krijgen.

Figuur 32 : Verloopschema TCS2300

Als we de sensor beter bekijken, kunnen we zien hoe deze verschillende kleuren detecteert. De fotodiodes hebben drie verschillende kleurenfilters. Zestien van hen hebben rode filters, nog eens 16 hebben groene filters, nog eens 16 hebben blauwe filters en de andere 16 fotodiodes zijn helder zonder filters.

28

Figuur 33 : In de fotodiode

Page 29: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

Elke 16 fotodiodes zijn parallel verbonden, dus met behulp van de twee stuurpennen S2 en S3 kunnen we selecteren welke daarvan worden gelezen. Dus als we bijvoorbeeld een rode kleur willen detecteren, kunnen we gewoon de 16 rood gefilterde fotodiodes gebruiken door de twee pinnen in te stellen op een laag logisch niveau volgens de tabel.

Figuur 34 : Waarheidstabel kleurensensor

De sensor heeft nog twee besturingspinnen, S0 en S1, die worden gebruikt voor het schalen van de uitgangsfrequentie. De frequentie kan worden ingesteld naar drie verschillende vooraf ingestelde waarden van 100%, 20% of 2%. Met deze frequentie-instelfunctie kan de output van de sensor worden geoptimaliseerd voor verschillende frequentietellers of microcontrollers.

Figuur 35 : Aansluiting kleurensensor

29

Page 30: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

6 Veiligheid transportband Als het programma zou crashen en de transportband zou niet tijdig stoppen zal deze het C-Beam frame verwoesten en de stappenmotor zal een hoge stroom trekken omdat er dan zeer veel weerstand tegenkomt.

Om dit probleem op te lossen gaan we met eindeloopcontacten werken. Als de transportband te ver gaat zal deze het contact aantikken en deze zal schakelen van NC (normally closed) naar NO (normally open). Hiermee zullen wij de ENABLE + van de stappenmotor driver aansturen en de driver uitschakelen. Als deze 5V krijgt is de driver “disabled” en als hij naar de ground (gnd) is geschakeld zal deze “enabled” zijn.

6.1 Andere ideeën voor het eindeloopcontactIk had eerst het idee voor de stappenmotor rechtstreeks aan het eindeloopcontact te hangen maar dit zou niet gekund hebben omdat zo’n eindeloopcontact maximum 1 ampère aankan en de stroom is 3 ampère. Dus hiervoor heb ik een andere oplossing moeten zoeken en dat is dus dat we de driver gaan afschakelen.

30

Page 31: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

6.2 Schema van eindeloopcontact

Eindeloopcontact aansluiting

De werking hiervan is simpel en gaat als volgend:

- Voor de stappenmotor aan te sturen hebben we een stappenmotor driver nodig dus we gaan deze uitschakelen.

- Het uitschakelen kan door de ENABLE+ pin van de driver op 5V te zetten. Aanzetten kan dan ook gebeuren door naar de ground te schakelen.

- Dus op het eindeloopcontact heb je 3 aansluitingen één is voor het signaal en de andere 2 zijn een normally open (NO) en een normally closed (NC) aansluiting.

- Dus we hangen 5V aan NO en de ground aan NC.- Als de transportband nu te ver gaat zal deze schakelen naar de 5V en

zal de driver uitschakelen waardoor de stappenmotor meteen zal stoppen met draaien.

31

Figuur 36 : Schema eindeloopcontact Figuur 37 : Werking eindeloopcontact

Page 32: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

6.3 Monteren van eindeloop contactenHet monteren van de eindeloopcontactjes is simpel ik schuif schuifmoeren in het frame van de transportband en dan boren we gaten met dezelfde grootte als de schuifmoeren in een ijzeren plaatje. Zo kan ik dan een plaatje vastmaken op het frame.

Alleen lijkt dit simpel maar hier zijn 2 problemen bijgekomen.- De winkel had geen ijzeren plaatjes op mijn maat.- De gaatjes moeten geboord worden zowel voor de bouten als voor het

eindeloopcontactje te monteren.

Dus eerst heb ik het ijzeren plaatje de juiste grootte moeten maken. En daarna nog extra gaatjes aanmaken voor het eindeloopcontact.

6.4

32

Figuur 39 : Begin ijzeren plaatje Figuur 38 : Afgeslepen ijzeren plaatje

Figuur 41 : Gemonteerd ijzeren plaatje Figuur 40 : Aangesloten ijzeren plaatje

Page 33: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

7 Het monteren van alles Omdat het eindwerk bedoeld is voor in de toekomst te gebruiken op school wil ik dit zo duurzaam/stevig mogelijk maken. Hiervoor zal ik dan ook deftig stevig materiaal gebruiken.

De basis hiervan is een plank van multiplex van 160cm x 65cm.Waarom multiplex?

De voordelen van multiplex:

- Efficiënter gebruik van het hout, ook de anders minderwaardige stukken van de boom worden gebruikt, bijvoorbeeld voor de binnenlagen van het multiplex.

- Door de gekruiste lagen is de plaat in sommige richtingen sterker dan massief hout van dezelfde afmetingen en hetzelfde gewicht.

- Multiplex vertoont minder werking dan massief hout.

- Verkrijgbaar in verschillende diktes (van minder dan 1 mm tot 40 mm en meer) en afmetingen (standaard meestal 2,50 of 2,44 m x 1,22 m, maar ook tot 12 m lang indien nodig)

- Multiplex is veel sterker en lichter dan MDF, en kent vrijwel geen kruip. Multiplex geniet daarom voor belaste beplating de voorkeur.

In het begin was het de bedoeling om een plank te maken zo groot als een bank (130cm x 45cm) maar toen deze was gezaagd en we keken dit na viel dit veel te klein. Dus heb ik gekozen voor een iets grotere plank van 160cm x 65 cm.

7.1 Robotarm monterenDe 2de stap is om in de houten plank gaten in te krijgen voor de robotarm te monteren. Dit is met de hand gedaan. Eerst was dit op school gebeurd maar om de plaat opnieuw te laten maken op school zou te lang duren om nog eens te doen dus dit is thuis gebeurd. Omdat we niet de machines hebben zoals op school hebben we dit met de hand geboord.

De bedoeling van het monteren is dat alles er makkelijk is af te halen. Zodat je alles kan weghalen moest je dit niet meer nodig hebben of als je bv 1 onderdeel hiervan ergens anders nodig zou hebben dat dit niet permanent erop vast staat. Het moeilijke hiervan is dan wel om alles zo stevig mogelijk te monteren.

33

Figuur 42 : Houtenplank

Page 34: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

De werkwijze ging als volgend:- Eerst heb ik 2 multiplex plaatjes laten zagen van 9cm x 9cm (even

groot als de voet van de robotarm). Dit wordt als een soort van “verhoogje” gebruikt bij de robotarmen.

- Ik heb als eerste 1 blokje van 9cm x 9cm op zo’n robotvoet gezet en vastgeklemd en hierdoor kon ik door de gaten van de robotvoet die al waren er al waren boren zodat een bout perfect zou passen.

- Dit heb ik dan ook gedaan bij het andere blokje van 9cm x 9cm. - Dan heb ik de transportbanden op de juiste plaats gezet 4 cm van de

breedte en 3 cm van de lengte. - Zo heb ik dan gekeken waar het het beste zou uitkomen van hoe ik de

robot armen ga plaatsen. - Nu kan ik de bouten en vlindermoeren monteren met de robotarm.

Uiteindelijk is dit het resultaat:

34

Figuur 44 : Close-up gemonteerde robotarm Figuur 43 : Gemonteerde robotarm

Page 35: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

7.2 Transportbanden monterenVoor de transportbanden stevig te monteren was het wel een beetje moeilijk. Maar er was uiteindelijk wel een oplossing. Hiervoor moeten we wel wat componenten zelf gaan aanpassen omdat dit redelijk custom is.

Ten eerste de band is 4cm van de breedte gelegd en 3cm van de lengte.

Voor de band vast te zetten moeten we de bouten kunnen vastmaken in het frame gelukkig bestaan schuifmoeren deze schuif je zo in het frame. Dan pak je een versterkingshoek plaats je die langst de zijkant en doe je er een bout door en draait deze goed vast. Nu staat ook de transportband vast.

Het nadeel was, ik vond geen versterkingshoekjes met de juiste diameter van gaatjes dus ik heb door elk gaatje opnieuw moeten boren met een iets dikkere kop.

Dan het 2de probleem was dat de plaatjes die ik had waren te lang het wieltje van de transportband zou tegengehouden worden door het versterkingshoekje omdat dit te hoog is. Dus heb ik ook elk plaatje moeten inkorten.

Op deze foto is duidelijk het verschil te zien en ook hoe de schuifmoertjes eruit zien.

35

Figuur 45 : Montage transportband Figuur 46 : Montage schuifmoertjes

Figuur 47 : Foto montagetransportband

Page 36: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

7.3 Transportband en robotarmen gemonteerdNu alles gemonteerd is voor zo gemakkelijk mogelijk gebruik waar alles makkelijk af te halen is en ook zeer stevig op vast staat hebben we dit als eindresultaat.

Dit was zeker niet makkelijk om te behalen omdat zoveel moest aangepast worden en je niet zomaar weet welke winkel elk component precies heeft. Hierdoor is er vaak rondgereden voor alles te vinden wat veel tijd heeft gekost. En dan moest het nog gemonteerd en op maat gemaakt worden.

36

Figuur 48 : Robotarmen en transportband gemonteerd

Page 37: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

8 Printplaat Voor mijn GIP zal ik een printplaat ontwerpen. De reden hiervoor is omdat er zoveel kabels aan bod komen. Ditz al het makkelijker maken voor voor in de toekomst een een onderdeel er van af te halen en dan terug aan te sluiten.

8.1 Ontwerp 1 Het eerste ontwerp had al direct problemen. Omdat ik 2 robotarmen moet aansturen van 6servo’s elk (dus 12 in total) hebben we een groot stroomprobleem. Aangezien de piekstroom van deze servo 2.5A is zou er een héél dikke baan aangelegd moeten worden zoals u kan zien op de foto.

Dan is er nog een probleem er zouden zo goed als geen GPIO pinnen meer vrij zijn dus er zal nog een I/O expander nodig zijn.

Figuur 49 : Eerste printontwerp

37

Page 38: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

8.2 Ontwerp 2Voor het 2de ontwerp zijn er meerdere kleine veranderingen geweest maar dit is het resultaat zonder al de kleine problemen die er zijn geweest.

Figuur 50 : Printplaat

Dit is het eindresultaat. Deze problemen zijn opgelost:

1. Dikke voedingslijnen - De 24V 3A lijn zullen we direct van de voeding naar de servo drivers

laten gaan.- De 5V 30A lijn hebben we opgelost met een simpele schakeling met

een mosfet waarmee we ook de servo’s kunnen monitoren en uitschakelen indien nodig.

2. Te weinig GPIO’s- Het toevoegen van een I²C I/O expander op de print.

3. Een analog digital converter?- Deze zal gebruikt worden om de gegevens van de mosfet (monitoren

van stroom door een shunt weerstand) omzetten van analoog naar digitaal.

38

Page 39: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

8.3 Oplossing voedingslijnVoor het probleem van de dikke voedingslijn is er een aparte schakeling opgebouwd.

Figuur 51 : Extra schakeling robotarmen

Via de raspberry Pi kunnen we de mosfet aan/uit schakelen. Door de spanning van de Pi zal de mosfet open of dicht schakelen. Als de mosfet gaat doorlaten zal de GND van de servo doorverbonden worden waardoor het circuit van de servo zal kunnen werken. R2 is een shuntweerstan een weerstand waar we de waarde van weten waardoor we de stroom kunnen berekenen. Als de stroom >5A is, dus de piekstroom van 2 servo’s zullen we de analoge waarde inlezen via de ADC op de print en dan omzetten naar het echte voltage. Zo kan ik de stroom monitoren. Als deze de waarde overschrijd zal ik de mosfet uitschakelen waardoor de GND van de servo niet meer is verbonden en zal deze stoppen met werken.

39

Page 40: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

8.4 RobotarmstukOmdat we de robotarmen makkelijk willen kunnen ontkoppelen gaan we een apart klein printje bij de robotarm voorzien. Deze gaat een 10-pin kabel ontvangen en bij deze print staat dan een pin-connector waar je makkelijk de sturingspinnen van de robotarm kan insteken. Ook zullen er nog extra pin-connectoren zijn voor het aansluiten van een sensor bij de robotarm.

Figuur 52 : Robotarm print

40

Page 41: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

8.5 Waarom deze print? Wat gaat dit doen?Waarom gaan we gebruik maken van een print? Dit is eigenlijk zeer logisch namelijk om deze redenen:

1. Je kan je raspberry Pi gewoon pluggen op deze print en kan beginnen met programmeren.

2. Geen breadboard met losse jumper wires.3. Het is goedkoop.

41

Page 42: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

9 Eagle to JLCPCB

9.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

Figuur 53 : Main printplaat

9.2 Eagle board to Gerber-File Open de ‘CAM Processor’.

42

Figuur 54 : Eagle naar gerber

Page 43: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

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.

43

Figuur 55 : Eagle naar gerber

Page 44: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

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)

44

Figuur 56 : Eagle naar gerber

Page 45: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

9.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!

45

Figuur 57 : Eagle naar gerber JLCPCB

Figuur 58 : JLCPCB

Page 46: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

10 Prijsberekening Component Aantal Prijs/stuk totaalprijsTransportband 2 € 205.95 € 411.90 DM542 2 € 39.27 € 78.54 Voeding stappenmotor 1 € 32.70 € 32.70 Robotarm 2 € 99.96 € 199.92 Servo drive 1 € 14.95 € 14.95 Voeding robotarm 1 gratis /Raspberry Pi 3B+ 1 € 37.95 € 37.95

totaalprijs € 775.96

46

Page 47: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

11 Vermogenberekening 11.1 Maximum vermogen Actoren

11.2 Maximum vermogen voeding

47

Page 48: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

12 Besluit Ik heb superveel bijgeleerd bij het maken van deze GIP. Spijtig genoeg heb ik het niet tot een werkend project kunnen realiseren.

Het eerste probleem kwam al zeer snel. Het voeden van de servomotors zou niet veilig zijn moest ik deze rechtstreeks aansluiten op de PSU. Hiervoor hebben we dan een aparte schakeling gemaakt die voor veel problemen zorgde.

Het tweede probleem was dat ik een printplaat zou maken waar ik alles zeer makkelijk op kon aansluiten zodat het project plug and play is. Maar bij deze print was er het probleem van te dikke banen. Hierna waren er nog route problemen in de print deze zijn dan ook opgelost.

Bij het testen van de printen merkte ik dat mijn printen geflipt waren en hier heb ik dan ook veel tijd mee verloren.

Na veel tegenslagen denk ik dat mijn GIP nog altijd een success is. Het gaat niet om het werkend te krijgen maar om wat ik eruit geleerd heb.

48

Page 49: laurence20192020.kogekaschoolverlaters.belaurence20192020.kogekaschoolverlaters.be/.../ScriptieLa…  · Web viewDit leek me zeer interessant want ik had ook nagedacht over een robotarm

Laurence Leysen GIP - Robot sorteerder 2019-2020

13 Gebruikte bronnen http://rpi.kogekaschoolverlaters.be/https://custom-build-robots.com/raspberry-pi-robot-cars/sainsmart-6-axis-desktop-robotic-arm-raspberry-pi/9497?lang=enhttps://www.maxbotix.com/articles/ultrasonic-or-infrared-sensors.htmhttps://tutorials-raspberrypi.de/mehrere-servo-motoren-steuern-raspberry-pi-pca9685/https://nl.wikipedia.org/wiki/Python_(programmeertaal)https://wiki.python.org/moin/FrontPagehttps://nl.wikipedia.org/wiki/HTML5https://nl.wikipedia.org/wiki/Ultrasoonsensorhttps://www.sensorpartners.com/kennisbank/alles-over-de-werking-van-een-ultrasoon-sensor/https://nl.wikipedia.org/wiki/Infraroodhttps://nl.wikipedia.org/wiki/Inductieve_nabijheidssensorhttps://www.electronicoscaldas.com/datasheet/MG996R_Tower-Pro.pdfhttps://nl.wikipedia.org/wiki/Servomotorhttps://www.youtube.com/watch?v=LXURLvga8bQhttps://www.adafruit.com/product/815https://learn.adafruit.com/16-channel-pwm-servo-driver?view=allhttps://nl.wikipedia.org/wiki/I%C2%B2C-bushttps://github.com/adafruit/Adafruit_Python_PCA9685https://www.electronics-tutorials.ws/blog/convert-atx-psu-to-bench-supply.htmlhttps://openbuildspartstore.com/c-beam-xlarge-linear-actuator-bundle/https://openbuildspartstore.com/nema-23-stepper-motor-high-torque-series/https://www.sossolutions.nl/dof-mechanische-robot-arm-met-6-servo-shttps://nl.wikipedia.org/wiki/Stappenmotorhttps://www.fraxeon.com/werking-en-aansluiting-van-stappenmotorenhttps://cdn-reichelt.de/documents/datenblatt/A300/DM542-DEUTSCH.pdfhttps://all3dp.com/2/what-s-a-stepper-motor-driver-why-do-i-need-it/https://www.youtube.com/watch?v=rpTDKAhMuqshttps://www.youtube.com/watch?v=LUbhPKBL_IUhttps://www.pulsotronic.de/index.php?lang=enhttps://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdfhttps://tutorials-raspberrypi.com/raspberry-pi-ultrasonic-sensor-hc-sr04/https://www.youtube.com/watch?v=CPUXxuyd9xwhttp://home.roboticlab.eu/en/examples/sensor/colorhttps://www.keyence.com/ss/products/sensor/sensorbasics/color/info/https://www.instructables.com/id/Everything-you-need-to-know-about-colour-sensors/http://www.w-r-e.de/robotik/data/opt/tcs230.pdfhttps://cdn-shop.adafruit.com/datasheets/TCS34725.pdfhttps://nl.wikipedia.org/wiki/Schema_(elektriciteit)https://nl.wikipedia.org/wiki/Multiplex_(plaatmateriaal)https://nl.wikipedia.org/wiki/MOSFEThttps://nl.wikipedia.org/wiki/PHPhttps://nl.wikipedia.org/wiki/JavaScripthttps://nl.wikipedia.org/wiki/SQLhttps://nl.wikipedia.org/wiki/Cascading_Style_Sheetshttps://nl.wikipedia.org/wiki/Apache_(webserver)https://en.wikipedia.org/wiki/Flask_(web_framework)https://nl.wikipedia.org/wiki/MySQL

49