De jonglerende robot

advertisement
1
2
Geïntegreerde eindproef
Industriële wetenschappen
leerjaar –
graad TSO
De
jonglerende
robot
Stijn Cambie
Jonathan Debruyne
2011-2012
3
Woord vooraf
Wij zijn Stijn Cambie en Jonathan Debruyne, leerlingen uit het 6e jaar IW.
Als eindwerk kozen we voor het project “De jonglerende robot” waar we mee in aanraking
kwamen via meneerTytgat en de Howest.
We willen tot slot nog dhr. Tytgat, dhr. Kinget en dhr. Beirlaen, de begeleiders uit het PIH,
onze klasgenoten en onze ouders bedanken bij de steun en hulp tijdens het eindwerk.
4
Inhoudsopgave
1 Theoretische achtergrond ............................................................................................. 1
1.1 mechanisch aspect ..................................................................................................................... 1
1.1.1 de schuine worp .............................................................................................. 1
1.1.2 de cirkelvormige beweging ............................................................................... 5
1.1.3 benodigdheden sterkteberekeningen ................................................................. 6
1.2 de stappenmotor ........................................................................................................................ 9
1.2.1 opbouw .......................................................................................................... 9
1.2.2 werking ........................................................................................................ 10
2 Berekeningen ............................................................................................................ 14
2.1 schuine worp ............................................................................................................................. 14
2.2 massatraagheidmoment .......................................................................................................... 15
2.3 versnelling ................................................................................................................................. 17
2.3.1 begin............................................................................................................ 17
2.3.2 einde ............................................................................................................ 18
2.4 botsing ....................................................................................................................................... 18
2.5 sterkteberekeningen ................................................................................................................ 20
2.5.1 krachten ....................................................................................................... 20
2.5.2 spanning....................................................................................................... 21
3 Programma ............................................................................................................... 23
3.1 maininflowcode is het mogelijk om tekst te plaatsen bij de verschillende stappen....... 23
3.2 macro’s....................................................................................................................................... 24
3.2.1 Pulsentrein en pulsentreinms .......................................................................... 24
3.2.2 Joggen en joggensnel ...............................Fout! Bladwijzer niet gedefinieerd.
3.2.3 Interruptuitgaan ............................................................................................ 25
3.2.4 Pulsen .......................................................................................................... 26
3.2.5 Werpen en werpenrechts ............................................................................... 27
4 Bronvermelding ......................................................................................................... 30
5 besluit ...................................................................................................................... 31
6 algemene vakken ...................................................................................................... 32
5
gebruikte symbolen en afkortingen
2
2
6
lijst met tabellen en tabellen
Figuren:
1.1 grafiek met parabolen van de baan
1.2 verband hoek afgelegde weg
1.3 balk berekening massatraagheidsmoment
1.4 bolschil bepalen massapunt en massatraagheidsmoment
1.5 parallelle assen
1.6 stappenmotor reluctantie
1.7a unipolaire stappenmotor
1.7b bipolaire stappenmotor en H-brug
1.8 stappenmotor fullstep
1.9 stappenmotor halfstep
2.1 voorstelling arm positie
2.2 stappenmotor arm hoek gooien en vangen
2.3 simulatie 1
2.4 simulatie 2
2.5 foto simulatie
2.6 krachten bout 1
2.7 krachten bout 2
3.1 blokschema programma
3.2 programma hoofdprogramma
3.3 programma pulsentrein
3.4 programma joggen
3.5 programma interrupt
3.6 programma pulsen
3.7 programma werpen naar links
3.8 programma werpen naar rechts
Tabellen
2.1 berekeningen schuine worp in Excel
2.2 zwaartepuntberekekeningen
Geen indexgegevens gevonden.
7
Inleiding
Een robot doen jongleren, gaat niet zomaar.
Het is een mechanisch werkstuk dat niet zelf kan redeneren.
Er moet worden voor gezorgd dat de bal op de juiste plaats valt door de juiste informatie
mee te geven tijdens het programmeren.
Hiervoor bestuderen we de schuine worp, de cirkelvormige beweging en de stappenmotor.
De theorie over de schuine worp geeft ons inzicht over de baan van de bal.
Bij de stappenmotor kunnen we enkel de tijd tussen 2 pulsen instellen, waardoor we de
werking van de stappenmotor en besturing moeten snappen om de baan goed te laten gaan.
Dit project is samen met het PIH georganiseerd, de hogeschool heeft geholpen met de
theorie uit te spitten. Er werd een robot voorzien met een programma dat reeds
geprogrammeerd was om het ons makkelijker te maken.
In het VTI bouwden we onze eigen robot, waarvoor we alle communicatie zelf moesten
regelen en de berekeningen via flowcode werden doorgegeven aan de stappenmotor die de
robot bestuurt.
Het PIH doet onderzoek op stappenmotoren om o.a. het rendement met betere aansturing
te verhogen. Dit project dat jaarlijks een eindwerk zou kunnen worden voor andere scholen,
stond nog in zijn kinderschoenen. Ons doel is goede hoop te geven en een traject vinden dat
een groot aantal keer kon werpen en opvangen aan een redelijk tempo.
Om dat doel te bereiken, denken we goed na over de berekeningen en passen we de
waarden zorgvuldig aan, wetend dat theorie en praktijk bijna nooit 100% samenstemmen.
Hierbij focussen we ons niet enkel op 1 traject/ manier van werken, maar durven ook dat
veranderen. Omdat we werken met 2 robots, kunnen we ook deze robots vergelijken om
conclusies uit te trekken.
Doorheen het jaar wordt er gewerkt aan de bundel, waar we de theorie beschrijven en de
berekeningen doen voor het traject zelf, maar ook kijken of de eigen robot sterk genoeg is
om het traject uit te voeren zonder breuk of blijvende vervorming.
In deze bundel wordt er een besluit geschreven over de resultaten van dit experiment, die
ook kleine experimenten vereiste in het onderzoek naar de berekeningen.
1
1 Theoretische achtergrond
Voor het we beginnen met dit eindwerk moeten we eerst wat berekeningen maken met bepaalde
formules. Deze formules hallen we uit de theorie vandaar dat we de theorie uitleggen en onze eigen
formules hier ook afleiden.
1.1 mechanisch aspect
1.1.1 de schuine worp
We bespreken de schuine worp om het traject van het balletje te kunnen volgen na dat hij is
losgelaten zodat we precies weten waar hij zal terechtkomen als het valt.
Een schuine worp is de beweging die gemaakt wordt, wanneer een voorwerp schuin de
hoogte wordt ingegooid.
Het voorwerp zal hierbij een bergparabool beschrijven.
De hoek en snelheid die wordt gemaakt, verandert ten gevolge van de zwaartekracht.
Hiervoor hebben we de valversnelling nodig.
De gravitatiewet van Newton is de formule die bepaald werd om de aantrekkingskracht
tussen 2 voorwerpen te berekenen in het algemeen:
(1.1)
Hierbij is
’
De tweede wet van Newton stelt dat
Met
De valversnelling is de versnelling ten gevolge van de aantrekkingskracht tussen de aarde en
een voorwerp. We kunnen met de algemene gravitatiewet de valversnelling berekenen:
1
2
(1.2)
Hier is
Omdat de aarde geen perfecte bol is, is de afstand tot het massapunt van de aarde
veranderlijk, waardoor ze tussen de waarden 9.78 een 9.83 (op de evenaar en de polen
respectievelijk) schommelt en bij ons 9.81
beneden gericht) is, is g negatief: -9.81
is. Omdat de versnelling naar de aarde toe (naar
.
Nu kunnen we starten met het berekenen van de baan van de schuine worp,
deze start met een snelheid
, die we opsplitsen in de componenten in 2 onderling
loodrechte richtingen:
Hierbij is
.
de hoek die de beweging van het voorwerp maakt met het aardoppervlak bij de
start.
De luchtweerstand is te verwaarlozen ,zodat we kunnen stellen dat
constant blijft.
Dit omdat de aardversnelling enkel loodrecht op het aardoppervlak werkt.
Voor
geldt er echter dat
aangezien de aardversnelling de snelheid steeds
beïnvloed.
Hierbij kunnen we deze component zien als de verticale worp, die een E.V.R.B (éénparige
veranderlijke rechtlijnige beweging) is.
De positie van het voorwerp in de twee richtingen, kunnen we berekenen met de volgende
formules:
(1.3)
(1.4)
Hierbij is
de positie, afstand tot de oorsprong op de horizontale as
de positie op de verticale as de y-as
de snelheden in respectievelijk de horizontale en verticale richting ( )
2
3
De weg die het voorwerp aflegt, is afhankelijk van de snelheid
en de hoek
waaronder
het gegooid wordt.
Een eigenschap die op te merken valt, is dat het voorwerp het meest ver komt,
als de hoek 45° is.
Dit omdat
of
is de tijd dat het voorwerp in de lucht bewoog,
aangezien op dit moment het voorwerp terug op de grond is.
In deze tijd is
de afstand die het voorwerp afgelegd heeft in onze x-richting.
Aangezien supplementaire hoeken een gelijk sinus hebben en de sinus het grootst is bij 90°,
weten we dat complementaire hoeken een zelfde afstand geven en de hoek van 45° de
langste verplaatsing heeft.
De volgende illustratie toont dit voor enkele waarden:
Figuur 1.1 parabolen met de baan
Betekenis van de assen:
x-as: afstand in meter
y-as: hoogte in meter
3
4
Het hoogste punt dat wordt bereikt, verkrijgen we wanneer de verticale snelheid 0 is,
op dat moment gaat het voorwerp van stijgen over naar dalen.
In de formule zien we dat dit het geval is, wanneer
of
.
(1.5)
Het invullen van deze tijd, geeft dus de maximale hoogte van
.
Tot nu werkten we nog steeds met 2 vergelijkingen in functie van de tijd, onze bergparabool
geeft
in functie van
en die verhouding kunnen we als volgt berekenen:
(1.6)
Wanneer we dit invullen in onze formule voor de verticale positie, verkrijgen we
(1.7)
Hierbij is
stx
de positie, afstand tot de oorsprong op de horizontale as
(m)
sty
de positie op de y-as
(m)
vx0, vy0 de snelheden bij de start in respectievelijk de horizontale en verticale richting
( )
de hoek waaronder het projectiel wordt afgeschoten tegenover de x-as
(°)
t
de tijd dat het projectiel onderweg is
(s)
g
de gravitatieconstante op aarde
(
de startsnelheid
(
Hiermee kunnen we de mogelijke startsnelheid (v0) in functie van een gekozen hoek
bepalen om het voorwerp de baan te laten lopen door de oorsprong en het gevraagde punt,
bestaande uit de horizontale - en verticale positie.
Met de formules die we hier toelichten, kunnen we de baan van onze bal berekenen bij het
werpen met de robot en interessante info uitrekenen.
4
5
1.1.2 de cirkelvormige beweging
Om het verband te weten tussen de hoeksnelheid van de motor en de snelheid van de bal
bespreken we de cirkelvormige beweging hier om zo de gegevens correct in het programma
te kunnen invullen.
De arm van de stappenmotor moet de snelheid en hoek bepalen :
Figuur 1.2: verband hoek afgelegde weg
Er geldt dat
(1.8)
(1.9)
(1.10)
Uitleg symbolen:
Een radiaal/rad is hierbij
, daar de omtrek van een cirkel
is bij
radialen, zal de
boog van de sector met hoek 1 rad r zijn, wat de afgelegde weg is.
Na
radialen, hebben we
Met de formules
en
meter afgelegd.
zien we dat de eerste formule geldt.
5
6
1.1.3 benodigdheden sterkteberekeningen
Als men een voorwerp laat versnellen rond een as met een bepaalde kracht, hangt de
versnelling van dat voorwerp af van de vorm en massadichtheid. Een goed voorbeeld om dit
waar te nemen is een kunstschaatser die door zijn armen samen te nemen, zijn snelheid
vergroot. De verhouding tussen het moment dat de kracht uitoefent en de versnelling,
wordt gegeven door het massatraagheidsmoment. Om deze te berekenen, bepalen we hier
de formules die we nodig hebben om het massatraagheidsmoment te bepalen van onze arm
om zo te kunnen controleren of onze arm sterk genoeg is.
Het massatraagheidsmoment geeft de grootte van de inertie bij rotatie aan.
De algemene formule is gegeven door
.Dit omdat
.
In de lessen leerden we enkele basisformules voor dit “moment”:
Massieve cilinder:
dunwandige cilinder:
Bal:
cilinder:
.
Enkele speciale gevallen bewijzen we zelf:
Balk:
a
y
x
r
b
Figuur 1.3: balk berekeningen massatraagheid
(1.11)
6
7
Bolschil:
h
e
r
α
ar
Figuur 1.4: bolschil
(1.12)
Het massapunt van de halve bolschil bepalen:
(1.13)
Het zwaartepunt ligt dus in het midden van de hoogtelijn.
7
8
Stelling van Steiner
Hierbij is J het massatraagheidsmoment tov een as door het massacentrum en
het
massatraagheidsmoment tov een parallelle as.
Bewijs:
Figuur 1.5: parallelle assen
=md²+J
(1.14)
Kracht door botsing van de bal:
Dit omdat de bal een impulsverandering ondergaat tijdens de botsing met de pot.
We hebben dan nog enkele algemene formules i.v.m. wringing en buiging:
De formule van Huber en Hencky werd experimenteel vastgelegd en zegt dat
Bij afschuiving en buiging gelden hierbij dat
en
, bij wringing geldt
.
met
.
In het mechanisch aspect hebben we hier uitgelegd hoe de baan bij de worp is en op welke
manier we die moeten omzetten in de juiste hoeksnelheid die we aan de stappenmotor
moeten geven.
Bij het derde deel werden de formules uitgelegd die de sterkteberekeningen kunnen
gebruiken, waarmee we testen of onze arm sterk genoeg is.
8
9
1.2 de stappenmotor
Voor het in beweging brengen van de arm gebruiken we een stappenmotor, deze wordt hier
besproken om er goed de werking ervan te begrijpen.
De stappenmotor wordt gebruikt als je precieze regeling nodig hebt van een systeem,
namelijk om precies de hoek te bepalen waaronder we het balletje gooien.
Enkele belangrijke eigenschappen van deze synchrone motor:
- koppel leveren bij stilstand, dit noemen we de holding torque, er is bekrachtiging bij
stilstand, alsook een kracht voor de cogging torque: de kracht om onder een hoek te staan
met een rechte door de veldlijnen
- hoekverdraaiing kan vrij exact gebeuren in stappen
- het rendement van een stappenmotor is zeer laag met 10%
- het koppel is vrij groot in verhouding tot het volume van de stappenmotor
De stappenmotor van de eigen robot is een Berger Lahr RDM 5913/50.(geen datablad
gevonden) We konden aflezen dat de weerstand van een spoel 1 is en de hoek per puls
0.72° bedraagt en weten dat het aantal spoelen van de stappenmotor 5 is.
De stappenmotor van de PIHrobot is gekenmerkt met MMAA0006 en wordt bestuurt met
microstepping, de spoelen hebben een weerstand van 0,8 . (eveneens geen info over
gevonden, we kregen de info dat het 2 paar spoelen bevat)
1.2.1 opbouw
De stappenmotor bestaat uit een rotor en een stator zonder koolborstels:
De stator bestaat uit een paar spoelen (elektromagneten) die samen gestuurd worden om
een resulterend magnetisch veld te maken. De rotor volgt dit magnetisch veld. Als de
stappen motor meer spoelen gebruikt, wordt de hoek die je de stappenmotor kan
veranderen kleiner.
De rotor is gemaakt uit permanente magneten waarbij de noordpolen en de zuidpolen elkaar
opvolgen en/of heeft een grillige vorm zodat de reluctantie verschilt volgens de positie (zie
fig.1).
We sturen met een microcontroller een stuurkaart aan die pulsen ontvangt. Als de
microcontroller een puls krijgt, dan verandert het de spanning over de spoelen zodat een
9
10
nieuw resulterend magnetisch veld ontstaat die de rotor in een andere positie duwt zodat
het inhaakt op het nieuwe veld.
Figuur 1.6:stappenmotor reluctantie
1.2.2 werking
Er zijn 3 soorten stappenmotoren met hun specifieke werking:

Stappenmotor met permanente magneet: de magnetische rotor wordt aangetrokken
of afgestoten door het elektrische veld die in de stator wordt opgebouwd.
Het aantal # stappen per omwenteling is = # rotorpolen × # statorfasen

Stappenmotor met variabele reluctantie: de magnetische veldlijnen willen een weg
volgen met een zo’n klein mogelijke magnetische weerstand, waardoor ze op de rotor
een kracht uitwerken om deze te doen draaien tot de reluctantie minimaal is. De
rotor is vertand zoals bij figuur 1-6 zodat de tanden zich richten op een
samenvallende rechte met het magnetisch veld die door de bekrachtigde spoelen
loopt. Wanneer 2 opeenvolgende spoelparen worden gemagnetiseerd, zullen de
tanden zich verdraaien, zodat de rotor een hoekverdraaiing ondervond.
10
11

De hybride stappenmotor: combinatie met permanente magneet en variabele
reluctantie. Deze soort wordt het meest gebruikt en werkt op beide principes.
Een ander onderscheid dat we kunnen nemen, is het verschil tussen bipolaire en unipolaire
stappenmotoren.
De unipolaire stappenmotor bevat wikkelingen met een vertakking zodat de draairichting
Zoals we op volgende tekening zien, is het voldoende de middenaftakking altijd te
bekrachtigen en door de wikkeling A1 / A2 te bekrachtigen, is de richting omgepoold.
Figuur 1.7a: unipolaire motor
Bij het bipolaire type, wordt de richting van de stappenmotor bestuurd met de H-brug in de
driver (besturing). Deze brug bestaat uit 4 transistoren en staat over iedere spoel , door S1
en S4 te sluiten, wordt de spoel bekrachtigd in de ene richting en met de 2 andere
schakelaars werkt het magnetisch veld in de andere richting.
11
12
Figuur 1.7b: bipolaire motor
De werking van een 2fasenstappenmotor
Figuur 1.8: fullstep
Figuur 1.9: halfstep
Bij het eerste deel werken we fullstep: we draaien 90° wanneer we een andere spoel
bekrachtigen.
Door de vorm en magnetische eigenschappen van de rotor, probeert het elektrische veld
mee te draaien met het elektrisch veld dat 90° gedraaid is, waardoor we bovenstaande
volgorde bekomen.
Onderaan kunnen we 2 spoelen tegelijk bekrachtigen, waardoor de resultante van de 2
velden 45° gedraaid is met het eerdere veld. We werken hier op halfstep.
12
13
De stappenmotors met meer dan 2 paren spoelen werken op gelijkaardige wijze: terug
worden de spoelen in de juiste volgorde bekrachtigd om een vloeiende beweging te krijgen.
Door meerdere spoelen, meer polenparen en vertanding op de rotor en door microstepping,
kunnen we kleinere hoekverdraaiingen bekomen.
Microstepping gebeurt met de elektronische schakeling in de microcontroller die de
stroomsterkte over iedere spoel een verschillende waarde kan geven, waardoor de
magnetische velden een resultante hebben die een exactere verhouding kan hebben tussen
2 posities en dus ook meer posities kan aannemen. De stappenmotor wordt bij ons
aangestuurd door een stuurkaart met de H-brug die per puls de spanningen over de
verschillende spoelen verandert zodat er een hoekverdraaiing optreedt in wijzerzin of in
tegenwijzerzin. De stuurkaart wordt bestuurt door de microcontroller die geprogrammeerd
werd in C-code (eventueel met flowcode als tussenprogramma bij het eigen ontwerp).
13
14
2 Berekeningen
Hier tonen we welke berekeningen we hebben gedaan om tot een goed resultaat te komen.
2.1 schuine worp
De berekeningen van de schuine worp werden eerst in Excel gedaan zodat bij
waardeveranderingen, de berekeningen niet helemaal moesten worden overgedaan.
tabel 2.1 berekeningen schuine worp in Excel
v
r
Figuur 2.1: voorstelling robotarm positie
We zullen de berekening ervan onze eigen robot hier uitwerken:
We hebben dat de afgelegde afstand
.
Door het symmetrisch werpen, weten we dat
We gebruiken nu formule (1) van pagina 10:
Hierbij is
Omvormen van de formule geeft:


14
15
De waarden invullen
Uit
en dus
halen we dat
,
Per puls leggen we 0.72° af of 12.57
delen we dit door
.
.
bekomen
we dat we per 901 µs een puls moeten sturen.
2.2 massatraagheidmoment
We berekenen hier de massatraagheidsmoment van ieder deel. Om later de krachten eruit te
halen.
Arm
Figuur 2.2: arm robot
Berekenen van het massatraagheidsmoment van de balk om de centrale as.
Doordat de centrale as op dezelfde plaats is als de as van de motor geld
Bij deze berekeningen berekenen we de balk die uit de eerste balk wordt uitgenomen.
15
16
Berekenen van het massatraagheidsmoment van de balk om de centrale as.
Doordat de balk niet om de centrale as draait maar 1 mm van de centrale as draait moeten
we er een factor bijtellen met de stelling van Steiner:
Het berekenen van het massatraagheidsmoment van de arm:
Potjes(bolschillen)
Het massatraagheidsmoment berekenen van een halve bol rond het bovenvlak van de bol.
Doordat de centrale as niet de as is waarrond we berekend hebben moeten we een deel
aftrekken om het voor de centrale as te hebben.
Bereken van het massatraagheidsmoment van een potje rond de as van de motor.
Berekenen van een nieuwe tussenwaarde, we nemen 2 keer Jzpot omdat er 2 zijn.
Bouten
Omdat we zagen dat bij de potjes het gewone massatraagheidsmoment zo klein was hebben
we het bij de boutjes verwaarloosd, want de massa is dichter bij het massapunt en de massa
is kleiner.
16
17
We berekenen nu het massatraagheidsmoment van een bout tegenover de as waarrond het
draait.
We berekenen nu het massatraagheismoment van de volledige arm
Bal
Totaal
2.3 versnelling
We versnellen de bal bij het werpen. Doordat we het laten versnellen door de tijd bij iedere
puls met een constante verlagen tussen de pulsen, is de versnelling het grootst bij het begin
waar het de beginsnelheid in 1 puls moet halen of op het einde waar het verschil in snelheid
van het begin en het einde van de puls het grootst is. Wij hebben deze versnelling nodig om
later ook sterkteberekeningen te kunnen uitvoeren.
2.3.1 begin
Versnelling met de factor door de microcontroller ingerekend.
17
18
2.3.2 einde
De hoeksnelheden bij de laatste en voorlaatste puls zijn:
Versnelling met de factor door de microcontroller ingerekend.
2.4 botsing
Bij het opvangen heeft de bal een bepaalde snelheid waarmee het tegen het potje botst
waar het invalt. Daardoor moet het potje een reactiekracht uitoefenen. Hiervoor heeft de
rotor stil moeten blijven staan en was er een moment om de as gecreëerd.
We hadden gemeten en berekend dat
en
zodat
Zoals in onderstaande simulatiesmet het programma DataStudio zien we dat de topwaarde
veel groter is. Bij de berekeningen van het moment gebruiken we 30N. De wrijving zorgt
voor een gedempte trilling, die we door de frequentie van het opmeten niet volledig kunnen
opmeten. Uit de fysica weten we dat de snelheid 90° verschoven zou zijn in ideale
omstandigheden, waardoor de snelheid nul is op het moment dat de versnelling maximaal is,
door de tweede wet van Newton weten we dat dit plaats vindt wanneer de kracht maximaal
is.
Hierdoor konden we tijd aflezen. De snelheid was al berekend in het deel van de schuine
worp (6.1).
Bij de tweede simulatie zien we een algemener beeld van de gedempte sinusbeweging,
waarbij het balletje van iets hoger werd geworpen op de meetplaat, zoals we zien op
volgende pagina.
18
19
Figuur 2.3: simulatie 1
Figuur 2.4: simulatie 2
Figuur 2.5: opstelling
19
20
2.5 sterkteberekeningen
We berekenen hier of ons armpje wel sterk genoeg is om de krachten te kunnen opvangen.
2.5.1 krachten
Doordat we zagen dat de versnelling op het einde groter was de dan versnelling in het begin
rekenen we verder met de eindversnelling.
Moment berekenen bij het opvangen.
Nu zien we dat Mb groter is dan Me dus rekenen we verder met Mb.
Bereken van de kracht die op een van de kleine boutjes komt door het moment.
Doordat de boutjes ook het stuk omhoog moeten houden moet er ook rekening gehouden
worden met de zwaartekracht.
De kracht door de zwaartekracht op 1 van de bouten en de kracht om de impuls op te
vangen (niet het moment), zijn verdeeld over de boutjes:
en
.
Bout 1
Figuur 2.6:krachten bout 1
20
21
bout 2
,
Figuur 2.7: krachten bout 2
We zien dat de resulterende kracht bij bout 2 het grootst zal zijn en ontbinden ze allemaal.
2.5.2 spanning
De toegelaten spanning is 9,6 kN/cm², dus zijn de ijzeren bouten sterk genoeg.
We berekenen ook de ideële spanning van de arm tegenover de buiging en wringing:
Bepalen zwaartepunt met de stelling van Varignon, gebeurde in volgende tabel:
Tabel 2-2:zwaartepuntberekeningen
A
A(mm²)
x(mm)
y(mm)
Ax(mm³)
Ay(mm³)
1
36
1
9
36
324
2
40
9
19
400
760
totaal
76
10
14,26
436
1084
21
22
Bepalen van het oppervlaktetraagheidsmoment.
Doordat het stuk symmetrisch is, is
en
Volgens de formule van Huber en Hencky geldt
.
Dus het aluminium is sterk genoeg, aangezien de maximale toegelaten spanning
was.
22
23
3 Programma
In dit hoofdstuk bespreken we het programma dat de robot bestuurt.
Het volgende blokschema toont schematisch wat de functie van het programma is:
Figuur 3.1: blokschema programma
3.1 main
Het eerste dat we plaatsten, is een interrupt. Deze functie uit
flowcode werd verbonden met parameter Rb0, zodat het
drukken op knop SW0 (switch 0) zorgt dat het programma
onmiddelijk stopt en naar het deelprogramma van de
interrupt gaat. Op deze manier konden slechte, onveilige
situaties simpel beëindigd worden in alle gevallen.
Omdat het programma niet steeds opnieuw zou moeten
worden gestuurd, wordt het eigenlijke programma in een lus
(loop) gestoken die nooit stopt. In die lus wordt drukknop
SW1 ingelezen via een input en geassocieerd met een
variabele die in de decision (beslissing) wordt ingelezen.
Indien er wel degelijk op de knop werd gedrukt, wordt de
variabele op 0 gezet en zal het echte werptraject worden
uitgevoerd tot we op drukknop 7 drukken om het werpen
stop te
zetten, maar de laatste cyclus laat eindigen (vergelijk met
interrupt die direct stopt ).
Wanneer bij de decision B1 niet ingedrukt stond, is er mogelijkheid
tot “joggen”, dat is de robotarm waterpas zetten om het
programma correct te verlopen. Hier werden 2 mogelijkheden voor
voorzien die zorgen dat grote afstanden sneller kunnen verlopen,
Figuur 3.2:
hoofdprogramma
terwijl om het geheel precies te zetten, we per puls kunnen regelen.
23
24
3.2 macro’s
Om het programma overzichtelijk te houden, werden de functies zoals het joggen en het
werpen in aparte macro’s (deelprogramma’s) gezet. Deze deelprogramma’s kunnen we
makkelijk meerdere keren gebruiken zonder veel werk.
3.2.1 Pulsentrein en pulsentreinms
Deze macro’s besturen de ingangen van de stuurkaart om pulsen te
sturen, waardoor het magnetisch veld in de stappenmotor per puls
een stap verplaatst is. We hebben 1 pulsentrein die de variabellen
T2 en T1 gebruiken die we vroeger in het programma invoeren met
een calculation, deze is de snelste pulsentrein. En we hebben een
pulsentrein die 2 delay’s heeft van 100ms deze gebruiken we voor
de arm waterpas te zetten, het stuurt het dan heel traag aan zodat
Figuur 3.3:
pulsentrein
figuur 3-2 programma pulsentrein we snel genoeg kunnen stoppen.
Deze puls wordt gestuurd naar A1. Deze is verbonden met de
stuurkaart zodat bij een puls de spanningen over de spoelen verandert.
24
25
3.2.2 Joggen en joggensnel
Bij het positioneren van de
arm, gebruiken we 4
drukknoppen, per snelheid
hebben we 2 richtingen: in
wijzerzin en in tegenwijzerzin.
Die richting wordt gestuurd
met uitgang A0.
Snel joggen
Bij het rechtse gebruiken we
de drukknoppen SW2 en SW3
die we eerst inlezen en
overzetten naar respectievelijk
Figuur 3.4: joggen
B2 en B3. Dan hebben we
een decission die kijkt of B2 hoog staat, indien het hoog staat gaan we naar de lus van B2
en indien het laag staat gaan we naar de lus van B3. We zetten de lussen niet na
mekaarzodat het per lus die we in het hoofdprogramma doen slechts jogt aan 1 kant. We
gaan enkel in die lus als de variabellen B2 of B3 hoog staan. In de lus zetten we bij B2, A0
laag en bij B3, A0 hoog. Dit is om de wijzerzin van de stappenmotor duidelijk te maken. We
gaan dan naar de macro pulsentrein om een puls te sturen naar A1. Dan lezen we SW2 of
SW3 weer in zodat al het losgelaten is je dan ook uit de lus gaat.
Traag joggen
Analoog bij snel joggen maar we gebruiken de drukknoppen B5 en B6 en in plaats van naar
pulsentrein te gaan, gaan we naar pulsentreinms.
25
26
3.2.3 Interruptuitgaan
Als de drukknop SW0 wordt ingedrukt gaat het automatisch naar deze macro.
Hier wordt de interrupt stop gezet door het drukken op SW4, omdat deze
variabele nergens anders wordt gebruikt, moet de variabele ergens terug op 0
worden gezet. Dit mocht zowel voor als na de lus gebeuren. Indien het niet
gebeurt, zal de lus worden verlaten als B4=1 en als we de volgende keer op
SW0 drukken ga je nooit in de lus waardoor je gewoon doorgaat in het
programma. In de lus is er nog een delay zodat het programma niet constant
SW4 inleest en naar B4 schrijft.
Figuur 3.5:
interrupt
3.2.4 Pulsen
Figuur 3.6: pulsen
In deze macro worden de pulsen steeds rapper gegeven door de tijd te verkleinen. Op deze
manier moet de stappenmotor de hoge snelheid niet bij de start kunnen geven, alsook de
extreem hoge versnelling bij de start. Dit doen we door de variabele T2 te kiezen in het
begin en dan een lus een bepaald aantal keer te laten gaan, dit nummer is gebasseerd op de
hoek waaronder we willen werpen. In de lus verkleinen we de T2 met een vaste waarde. En
dan gaan we naar pulsentrein, aangezien pulsentrein de variabele T2 gebruikt in een delay
verkleint telkens de tijd die het duurt om de macro pulsentrein te doorlopen waardoor het
constant sneller pulsen geeft en de stappenmotor versnelt.
26
27
3.2.5 Werpen en werpenrechts
Figuur 3.7:werpen naar links
Figuur 3.8: werpen naar rechts
Dit zijn de 2 grootste macro’s die de stuurkaart bij het werpen zelf regelt.
Om de snelheid te kunnen opbouwen, moet er even naar beneden worden gedraaid met de
arm.
Dit gebeurt langzaam genoeg om de bal nog niet er uit te laten vallen.
27
28
Er wordt even gewacht zodat de bal steeds in rust op de zelfde plaats blijft (met de
bedoeling dat iedere cyclus identiek kan worden afgelegd) en daarna werpt men de bal
opnieuw, waarna de stappenmotor draait om op te vangen.
De gedetailleerde uitleg over de werking in het programma om dit uit te voeren is als volgt:
Werpen naar links
We beginnen met de variabelle A0 om de draaizin aan te tonen namelijk wijzerzin. Dan
zetten we de 2 variabelle T2 en T1 op een hoge waarde zodat het een trage snelheid
onderneemt, dan gaan we naar de macro pulsentrein waar er een puls gegeven wordt. Dan
zetten we nog een delay in om het nog trager te doen verlopen. We ondergaan deze cyclus
25 keer. Dit gedeelte is om de hoek te vergroten zodat we tijdens het versnellen een kleiner
hoekversnelling kunnen nemen. Dan nemen we een delay om te zorgen dat het balletje in
een stabiele toestand in het potje is.
Dan veranderen we A0 om het in de juist draaizin te draaien namelijk tegenwijzerzin. En dan
veranderen we de waarde van T1 naar 139, dit is om de correcte snelheid te verkrijgen bij
het werpen dan gaan we naar de macro pulsen die hiervoor is uitgelegd. Dan nemen we een
delay zodat de arm op stilstand is en niet doordraait als we direct terugdraaien. Door de
inertie van het balletje vliegt deze verder zoals we berekent hebben bij de schuine worp.
Dan veranderen we A0 weer zodat het terug in wijzerzin draait. En we veranderen T2 zodat
de stappenmotor geen stappen overslaat als we T2 laten doordat het in pulsen zo laag is
gezet. Dan gebruiken we weer een lus die 20 keer doorlopen wordt. In deze lus verkleint T2
iedere keer dat deze lus doorlopen is en we sturen een puls naar de stuurkaart met
pulsentrein. We versnellen hier doordat we snel op de plaats staat waarop we vangen. Dan
nemen we een gewone lus die we 30 keer doorlopen met pulsentrein erin om met deze
snelheid verder te gaan. Dan zetten we een delay om te wachten totdat het balletje inslaat.
De arm staat dan onder een hoek zodat het balletje zo loodrecht mogelijk inslaat in het potje
en niet op de rand botst en doorvliegt.
Dan zetten we A0 terug om in tegenwijzerzin te draaien. Dan zetten we T2 en T1 hoog om
niet te zorgen dat het balletje niet er uit vliegt. Dan nemen we een lus die 20 keer doorlopen
is die per keer een puls stuurt met de macro pulsentrein. Er is dan nog een delay om de
snelheid nog wat in te perken. Deze laatste cyclus doen we om de arm terug horizontaal te
zetten.
Analoog bij het werpen naar rechts.
28
29
3.2.6 interface PIHrobot
Bij de robot van het PIH werd met volgende interface (programma samengesteld door de HOWEST)
het programma ingegeven dat daarna werd omgezet in C-code. Hierbij is het makkelijker om het
programma te snappen dan met flowcode.
De hoek geeft de waarde aan tegenover onze referentieas, we zorgen dat 0° overeen komt met de as
die precies horizontaal staat. De richting om onder de nieuwe hoek te staan wordt met CW: klokwijs
of CCW: counterclockwise/ tegen de wijzers in te draaien en bij de hoeksnelheid kunnen we
rechtstreeks de hoeksnelheid invullen, zonder de pulsen te moeten uitrekenen.
Bij de laatste kolom staat de wachttijd om de robot eventueel in rust te laten staan.
We zien duidelijk dat de arm naar de positie onder 355° gaat bij stap 1, de arm gaat dus 5° naar
beneden om daarna met een hogere hoeksnelheid de bal los te laten onder een hoek van 20°.
Tijdens de worp wordt de arm 40° gedraaid om aan de andere kant op te vangen.
Hierna wordt het traject symmetrisch afgelegd aan de andere kant.
Onderaan kunnen we het aantal cycli meerdere keren laten herhalen om de worpen vloeiender te
laten volgen, zonder het programma langer te schrijven.
29
30
4 Bronvermelding
We geven de bron van de figuren weer op deze pagina:
De figuren:
figuur 1-6: http://nl.wikipedia.org/wiki/Stappenmotor
figuur 1-1: http://nl.wikibooks.org/wiki/Klassieke_Mechanica/Kinematica
figuur 1-5: http://commons.wikimedia.org/wiki/File:Formule_van_Steiner.png
figuur 1-2:
http://www.wetenschapsforum.nl/index.php%3Fshowtopic%3D7623&docid=qTwh6R8k9ONi
EM&imgurl=http://img127.exs.cx/img127/4093/img12n47iw.gif&w=216&h=135&ei=v1RwT
figuur 1-8/9: http://educypedia.karadimov.info/library/thesis.pdf
figuur 1-7a: www.zenot.nl/prod03.htm
figuur 1-7b : http://www.fraxeon.com/files/Stappenmotor_bipolair.jpg en
http://upload.wikimedia.org/wikipedia/commons/thumb/d/d4/H_bridge.svg/310pxH_bridge.svg.png
30
31
5 besluit
Gedurende dit jaar hebben we enkele problemen opgewerkt in verband met het werpen van
de bal met robot, die de slaagkansen van de robot beïnvloeden:
(1): Bij bepaalde omstandigheden is het magnetisch veld in de stappenmotor niet sterk
genoeg om de gevraagde beweging uit te voeren. De geprogrammeerde versnelling,
snelheid en massa van de bal, mogen niet te groot zijn. Wanneer de motor te warm krijgt,
kan de motor het programma niet altijd juist uitvoeren.
Deze factoren zorgen voor duidelijke, slechte worpen.
(2): de motor zorgt dat de bal kinetische energie heeft bij het landen, die het kwijt moet
verliezen: we zien duidelijk de bal rond draaien in het potje.
(3): als de bal perfect in het midden van het potje valt, kan het gebeuren dat er geen
wrijving genoeg is om de energie kwijt te raken en kaatst de bal er terug uit.
(4): een programma werkt niet altijd meer na een verandering aan de omgeving door de tijd
heen. Dit door kleine wijzigingen, werkt het programma niet meer met dezelfde slaagkansen.
De redenen: ondergrond heeft andere helling bij het verplaatsen van de robot of bij het
opnieuw enablen, is de arm niet op de identieke plaats.
6: de massa van de projectielen worden verwaarloosd, we zien echter dat verschillende
balleneen erg verschillende baan afleggen met hetzelfde geprogrammeerde traject.
De theorie kon niet alles verklaren met eenvoudige voorstellingen.
Enkele voorbeelden waren trajecten waarbij men theoretisch verwacht dat de bal in dezelfde
pot zal landen, terwijl in de praktijk de bal in het andere potje landde.
Geen enkel traject kan echter in realiteit de bal altijd opvangen.
Het rendement van de robots wordt opgemeten tijdens de opendeurdag om zo het effectief
resultaat te kennen van onze trajecten, waarmee we het besluit kunnen trekken van de
geslaagdheid.
De berekeningen en theorie toonden dat de robot mechanisch sterk genoeg is.
31
32
6 algemene vakken
Nederlands: brief om inlichtingen
Datapross B.V.
Vloeddijk 5
7397 NR Nijbroek
Informatie GIP (eindwerk)
Geachte heer,
Om onze middelbare studies Industriële wetenschappen te kunnen beëindigen,
zijn we op zoek naar de normale resultaten bij gebruik van de regeldoos van een
Ardenna 80 WA - zoutstrooier.
In ons laatste jaar is het maken van een GIP (geïntegreerde eindproef) vereist.
Een voorstel dat we deden, was het herstellen van de schakelkast van een zoutstrooier
(Ardenna 80 WA zoals eerder vermeld) waarvan de schakeling na vele jaren een defect
vertoont in verband met de strooibreedteregeling.
We hebben al wat gezocht, maar kwamen tot de conclusie dat het beter zou zijn als we de
resultaten bij goede werking zouden kunnen verkrijgen.
Aangezien de programma’s die we op de school gebruiken, ontoereikend zijn om iedere
component exact te vinden, vragen we aan jullie of het mogelijk is het elektronische schema
van de schakelkast met simulaties te delen met ons?
Dit zou er voor zorgen dat we bij het testen van de werking zeker kunnen zijn van wat we
moeten bekomen om zo de component die defect is, te kunnen vinden.
We hopen dat jullie ons hiermee kunnen helpen en bedanken jullie alvast
Met vriendelijke groet,
Stijn Cambie
32
33
7 Toevoeging na druk
Bij de opdracht van het PIH hoorde de statistiek van hun beste traject met hun robot om zo
te kunnen bepalen welke groep het allerbeste traject had kunnen ontwerpen.Hiervoor werd
tijdens de opendeur op 3 juni met een opstelling die niet kon bewegen het programma
meermaals uitgevoerd om hier de resultaten weer te geven:
1
2
4
20
38
41
44
70
75
88
90
96
115
127
130
143
144
150
177
186
191
210
230
235
260
269
425
545
604
615
634
646
x=206,41
s=198,56
med= 143,5
Wanneer we dit plotten met klassenbreedtes van 50 verkrijgen we
8
7
6
5
4
Reeks1
3
2
1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
De klokcurve die dit experiment normaal zou moeten hebben, is hier niet te vinden.
Dit konden we ook al merken aan de extreem hoge standaardafwijking die onze conclusie
over het vermoedelijke gemiddelde bemoeilijkt.
Errata
p.22: de kracht is 30N ipv 30kN.
33
Download