Klik hier Om de vraagjes i.v.m. de lessen flowcode te downloaden

Naam:
Project robots.
1
1. Inleiding
2. Zelf een robotje bouwen
3. Microchips sturen de robot ! Stuur jij de microchip?
4. Logische stuurtechniek: Een baan programmeren met de
Siemens LOGO
5. Bijlage: tekenbundel
Project robots.
2
1. Inleiding
Voorwoord
In het volgende project gaan we een ‘Robot buggy’ maken. Hierin gaan we zoveel mogelijk
technische vakken proberen te betrekken om zo een deel nieuwe leerstof te verwerken. Naast
de lessen realisaties, tekenen en schakeltechnieken zullen dus ook de lessen theoretische
mechanica, elektriciteit en wie weet welke vakken nog aan bod komen…
Je zal aan deze bundel dus met verschillende leerkrachten werken.
We maken een stemgestuurde buggy die een microfoon gebruikt als
detector. De buggy verandert van richting wanneer de sensor lawaai
detecteert of wanneer de buggy een voorwerp raakt. De buggy werkt op 1 9V
DC batterij ( niet meegeleverd) voor de elektrische onderdelen en 2 AAbatterijen van 1.5V voor de mechanische onderdelen (niet meegeleverd).
Robotica in de industrie
Robotica is een wetenschap die vooral gericht is op systeemintegratie. Een goed ontworpen
robot zal zijn waarnemingen (die verkregen zijn met behulp van sensoren) op een goede
manier kunnen vertalen naar handelingen die zijn actuatoren zullen uitvoeren. Dit moet dan
zó gebeuren dat de robot de vooraf gestelde taken kan vervullen. De verschillende stappen die
met deze operaties gepaard gaan, hebben een waaier van onderzoeksdomeinen voortgebracht
die elk één van de problemen behandelt die overwonnen moeten worden bij de constructie
van een robot. (sensing, controlling, robo kinematica…)
Robots kennen ook een zeer breed raakvlak qua inzetbaarheid:
Industrie
In de industrie worden veel robots gebruikt om goedkoper en gemakkelijker te
produceren. In de auto-industrie (de sector waar voor het eerst een robot
gebruikt werd: Unimate) bijvoorbeeld worden ze gebruikt aan volledig
geautomatiseerde productielijnen. Ook worden ze gebruikt om taken uit te
voeren die voor mensen te saai zouden zijn, zoals het inpakken
In de nucleaire industrie worden robots of manipulatoren gebruikt in ruimtes
waar voor mensen een te hoge straling heerst om gezond te kunnen blijven.
Ruimtevaart
Aangezien het veel gemakkelijker en veiliger is om in plaats van
mensen robots naar de ruimte te sturen, worden die daar veel
gebruikt. De sondes die naar planeten worden gestuurd (vb. de
marsrover Spirit) zijn geavanceerde robots die zelfstandig allerlei
waarnemingen kunnen uitvoeren en van daaruit die terug naar de
aarde sturen.
Project robots.
3
Geneeskunde
In de geneeskunde worden robots gebruikt omdat deze veel
nauwkeuriger en op kleinere schaal operaties kunnen uitvoeren. De
robots kunnen dezelfde beweging als de chirurg uitvoeren, maar deze
vijf keer kleiner. Doordat de ingreep op kleinere schaal gebeurt, is de
wonde veel kleiner en gaat de revalidatie van de patiënt dus ook veel
sneller. Ze worden wel nog volledig door de chirurgen bestuurd, dus
het zijn geen computers die de robots sturen.
Leger
Legers gebruiken ook steeds meer robottechnologieën in hun
militaire operaties omdat zo hun soldaten geen gevaar meer
lopen. Vooral de Verenigde Staten doen daar veel onderzoek
naar. Zij willen dat tegen 2020 30% van hun grondtroepen
door robots wordt vervangen.
Huishouden
Langzaamaan komen er steeds meer gespecialiseerde robots om
geestdodende taken in het huishouden over te nemen zoals stofzuigen en
grasmaaien. In wezen is de wasautomaat zonder dat het gerealiseerd
wordt een reeds ingeburgerde gespecialiseerde robot.
Revalidatie
In bovenstaande toepassingen wordt de robot gebruikt om menselijke
handelingen in mensvijandige omgevingen uit te voeren (in de ruimte, de
diepzee of op het slagveld). Of om geestdodende of zeer nauwkeurige
handelingen uit te voeren (in de industrie, huishouden of in de
geneeskunde).
In de revalidatietoepassingen daarentegen dient de robot om gewone
alledaagse handelingen uit te voeren. De robot compenseert de
(motorische) beperking van de gebruiker.
Werking van de robot buggy die we bouwen
Als je de buggy op grond plaatst en je zet de schakelaar aan, dan zal de buggy van beweging
veranderen telkens je in je handen klapt of wanneer het tegen een obstakel botst. De buggy voert
achtereenvolgens de volgende bewegingen uit: STOP ► VOORUIT LINKS ► STOP ►
VOORUIT RECHTS ► STOP ► VOORWAARTS IN RECHTE LIJN
Pas de gevoeligheid van de microfoon aan met een schroevendraaier ( potentiometer ). Draai
naar rechts om de gevoeligheid te verhogen en omgekeerd
Project robots.
4
3. Microchips sturen de robot! Stuur jij de microchip?
3.1
Microchip als procesverwerker
3.2
De Formula Flowcode Robot
3.3
De taal van de µC… Crack the codes!
3.4
LEDs en codes
3.5
Jumpy
3.6
Variabele
3.7
Looping the loop
3.8
Running the light- the night rider
3.9
Ringtone mania
3.10 Input
3.11 If… Then… else
3.12 Motor speed
3.13 Electronic Switch
3.14 H – Bridge
3.15 PWM speed control
3.16 Follow the line
3.17 Reaction sound
3.18 Externe interupt
3.19 VU meter
3.20 Follow the light
3.21 IR distance sensors
3.22 LCD
3.23 Timer interrupt
Project robots.
5
3.24 Project 7 segment
3.1 Microchip als procesverwerker
Zoals reeds gezien in schakeltechnieken kan de opbouw van robotica, productieen verwerkingsmachines worden opgesplitst in twee grote delen:
-De mechanische constructie:
Deze constructie bestaat steeds uit een vast gedeelte (chassis) waarrond een
beweegbaar gedeelte is opgebouwd. Het beweegbaar gedeelte is onder impuls van
het vermogen gedeelte, verantwoordelijk voor het vervaardigen en of afwerken van
de producten of uitvoeren van geautomatiseerde taken.
-De elektrische constructie:
Verzorgt op zijn beurt het vermogen gedeelte, m.a.w. de bewegende mechanische
delen worden aangedreven door een elektrische motor, pneumatische of
hydraulische cilinders. Die vermogen omvormers worden op hun beurt gestuurd
vanuit een centrale sturing (verwerkingseenheid). Deze sturing is op haar beurt
afhankelijk van de signaalgevers, dit kunnen bevelgevend of signaalopnemers
zijn. Tezamen bepalen ze de logische volgorde van de bewerkingen.
Onderstaande figuur verduidelijkt de voorgaande tekst.
INVOER
VERWERKING
A
Project robots.
6
B
UITVOER
C
De mannier waarop de verwerking gebeurd kan dus verschillen:
A
Enerzijds via traditioneel bedrade (vaak complexe) elektrische schakelingen met
kontaktoren, relais, tijdklokken en andere schakelkomponenten
B
Anderzijds via vrij programmeerbare stuurtechniek zoals ( Micro ) PLC’s als de
Siemens LOGO. In de industrie “embedded systems” genoemd.
Als we echter nog één laatste stapje verder gaan, gaan we machines, robots, toestellen,
telefoons… Ontwerpen waarbij enkel de basis benodigde componenten aanwezig zijn om de
(elektrische) technische probleemstelling op te lossen. Zo gaan we niet alleen de totale
productiekost verminderen, maar ook de beschikbare ruimte en omvang. Daarom gaan we nu
enkel nog een microchip en de benodigde randcomponenten gebruiken om tot een
hoogtechnologische oplossing te komen.
Vaak ging dit in het verleden ten koste van programmeer gemak en “doe- het zelf gehalte” Omdat
slechts een select groepje techneuten de taal verstonden om µchips te programmeren.
Maar ook dat is nu anders, met flowcode ( programmeersoftware) wordt het veel eenvoudiger om
te programmeren. D.m.v. flowcharts en een duidelijke grafische omgeving, die automatisch een
verstaanbare taal voor de µchip genereert kan haast iedereen nu aan de slag…
Daarom nu de laatste procesverwerkingsmethode:
De Microchip! De Combinatie van het aansturen van een
mechanisch deel met microprocessoren en bijhorende elektronica
noemen we ook wel Mechatronica.
C
Gebruik van 8-bit
microcontrollers
Project robots.
7
Vergelijking PC - µC
De µchip is eigenlijk net als een PC. Met ingangen, uitgangen, RAM geheugen, ROM geheugen,
EEPROM…
Alleen veel kleiner, en ook kleiner qua verwerkingscapaciteit.
+5V
1
40 RB7/PGD
RA0/AN0
2
39 RB6/PGC
RA1/AN1
3
38 RB5
RA2/AN2/Vref-/CVref
4
37 RB4
RA3/AN3/Vref+
5
36 RB3/PGM
RA4/TOCKI/C1OUT
6
35 RB2
RA5/AN4/SS/C2OUT
7
34 RB1
RE0/RD/AN5
8
RE1/WR/AN6
9
+5V
16F877A
/MCLR/Vpp
RE2/CS/AN7 10
VDD 11
VSS 12
OSC1/CLKI 13
OSC2/CLK0 14
23 RC4/SDI/SDA
22 RD3/PSP3
RD1/PSP1 20
21 RD2/PSP2
EEPROM-TYPE
DATA MEMORY
DATA CAN BE
STORED HERE
PERMANENTLY
256 lines of 8 BIT
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3
RA4/T0CKI
RA5/AN4
RB0/INT
RB1
RB2
RB3
RB4
RB5
INT
RB6
RB7
RC0/T1CKI
RC1/CCP2
RC2/CCP1
RC3
RC4
RC5
RC6
RC7
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7
14 BIT WIDE INSTRUCTION BUS
ALU
System clock
Clock from external oscillator
OSC1
OSC2
/4
8-BIT WIDE BUS
START TMR0
MACRO NOW!
8-MSB BITS = BYTE
A/D 10-BIT REGISTER
A/D
Naargelang het geheugen al dan niet vluchtig is en de
(her)programmeerbaarheid
ervan kunnen we volgende geheugens onderscheiden:
Project robots.
8
PORTE
TMR0 OVERFLOW
10- BITS = 10 LSB of INTEGER
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
ON
RB0/INT
Geheugens:
START TMR1
MACRO NOW!
OR
INT
TMR1 OVERFLOW
TMR0 8-BIT REGISTER
LEVEL
CHANGE
RB4
RB5
RB6
RB7
ON
+1
START RB0
MACRO NOW!
/1
/2
/4
/8
/16
/32
/64
/128
/256
/1
/2
/4
/8
+1
TMR1 8-BIT REGISTER
RA4/
T0CKI
START PORT
MACRO NOW!
OR
RC0/
T1CKI
27 RD4/PSP4
RD0/PSP0 19
PORTD
368 lines of 8 BIT
28 RD5/PSP5
24 RC5/SDO
PORTC
8000 lines of 14 BIT WIDE
29 RD6/PSP6
25 RC6/TX/CK
PORTB
THE PROGRAM YOU WRITE
COMES IN HERE
ALL THE
VARIABLES WILL
BE STORED
HERE
30 RD7/PSP7
RC1/T1OSI/CCP2 16
PORTA
TELLS THE ALU WHAT TO DO
31 VSS
26 RC7/RX/DT
RC3/SCK/SCL 18
RAM-TYPE
DATA MEMORY
+5V
32 VDD
RC0/T1OSO/T1CKI 15
RC2/CCP1 17
FLASH-TYPE
PROGRAM MEMORY
33 RB0/INT
RE0/AN5
RE1/AN6
RE2/AN7
RAM (Random Access Memory): geheugen dat snel gelezen en gescheven kan worden. Meestal
wordt dit gebruikt voor data. Indien de spanning wegvalt wordt het geheugen gewist.
ROM (Read Only Memory): geheugen dat voorgeprogrammeerd is en enkel kan gelezen worden.
PROM (Programmable ROM): ROM geheugen dat één keer kan geschreven
worden.
3.2 De formulla flowcode robot
Om jullie te leren programmeren, kozen we als harware een kleine robot de formulla flowcode.
Deze is voorzien van een microproccesor van het merk PIC.
Blok schema van de Robot:
Volgend blokschema bevat
enkel de standaard
componenten die we
zullen gebruiken van de
FFrobot. Alle I/O pinnen
zijn duidelijk vernoemd.
Dit is een heel handig
schema als je aan’t
programmeren bent.
Tijdens de volgende
lessen zullen we steeds
terug verwijzen naar dit
schema.
Project robots.
9
PIC18F4455
Adress
0x 000
RAM-TYPE
DATA MEMORY
368 lines of 8 BIT
0 1 0 1 0 1 0 1
0x 001
2 LINE SENSORS
BIT D6
BIT D7
0x 16E
LOUDSPEAKER
MIC
0x 16F
ADC 8
LIGHT SENS.
BIT C0
14 BIT WIDE
INSTRUCTION BUS
ALU
ADC 9
8 BIT WIDE DATA-BUS
3 DISTANCE SENS.
F
BIT A2
ADC 3
R
BIT A4
ADC 4
Project robots.
A/D
2 DC MOTORS
‘1’ OR ‘0’
BIT E1
PWM 1
BIT C2
‘1’ OR ‘0’
1 0 1 1 1 0 0 1
A/D REGISTER
10
BUZZER
PWM 2
BIT E0
BIT C1
RIGHT
SOUND SENS.
BIT B2
BIT A0
ADC 1
BIT D3
BIT D5
0x 003
BIT B1
L
BIT D2
BIT D4
0x 002
BIT B0
BIT D1
LEFT
BIT B5
FLASH-TYPE
PROGRAM
MEMORY
12288 lines of 14 BIT
ACTUATORS
8 LED’s
BIT D0
MOTOR
BIT B4
FORMULA FLOWCODE
BLOCK SCHEMATIC
MOTOR
SENSORS
2 PRESS BUTTONS
Foto met benoemde onderdelen
Onderstaande tekening en tabel geeft aan wat wat is op de buggy.
Project robots.
11
De PIC microcontroller
Doel van dit hoofdstuk: Kennis maken met de basisfuncties van de microcontroller.
Het kloppend hart van de Formula Flowcode buggy is een krachtige PIC18F4455 8-bit
microcontroller van Microchip. Alle sensors, actuators en uitbreidingsmogelijkheden van de FF
Robot zijn via koperen printbanen verbonden op de PCB met 1 of meerdere pinnen van de PIC
(zie onderstaande tekening).
Dit wordt verder verduidelijkt door middel van de schema’s in de komende hoofdstukken.
+5V
1
40 RB7/PGD
RA0/AN0
2
39 RB6/PGC
RA1/AN1
3
38 RB5
RA2/AN2/Vref-/CVref
4
37 RB4
RA3/AN3/Vref+
5
36 RB3/PGM
RA4/TOCKI/C1OUT
6
35 RB2
RA5/AN4/SS/C2OUT
7
34 RB1
RE0/RD/AN5
8
RE1/WR/AN6
9
+5V
16F877A
/MCLR/Vpp
RE2/CS/AN7 10
VDD 11
VSS 12
OSC1/CLKI 13
OSC2/CLK0 14
33 RB0/INT
+5V
32 VDD
31 VSS
30 RD7/PSP7
29 RD6/PSP6
28 RD5/PSP5
27 RD4/PSP4
RC0/T1OSO/T1CKI 15
26 RC7/RX/DT
RC1/T1OSI/CCP2 16
25 RC6/TX/CK
RC2/CCP1 17
24 RC5/SDO
RC3/SCK/SCL 18
23 RC4/SDI/SDA
RD0/PSP0 19
22 RD3/PSP3
RD1/PSP1 20
21 RD2/PSP2
Deze microcontroller kan met de Flowcode geprogrammeerd worden om stap voor stap, maar
tegen een grote snelheid, bepaalde bewerkingen te doen:
a) Inputs inlezen (schakelaars, … )
b) Outputs uitsturen (speaker, LEDs, motors… )
c) Analoge signalen inlezen (LDR, … ) en omzetten naar digitale omzetten
d) Pulsen genereren op bepaalde exacte tijdstippen
e) … .
In principe kunnen we de PIC zien als een programmeerbare bouwsteen (Black Box) waar een
aantal inputs en outputs aan zitten.
Project robots.
12
3.3 De taal van de µC… Crack the codes!
De volgende hoofdstukjes werken we zelf individueel, iedereen dus aan
eigen tempo af d.m.v. videolessen. Begrijp je iets niet, dan spoel je
terug en beluister je opnieuw. Neem tijd voor elke les en elke
uitdaging. Het is absoluut geen race! Een les duurt slechts enkele
minuten werk dus zeer geconcentreerd. Er wordt heel veel informatie
gegeven in weinig tijd. Vraag pas hulp aan je
leerkracht als je zeker weet dat het antwoord niet
in de videolessen zit.
Er is ook vaak een opdracht voorzien, je ziet dan
nevenstaand symbool. Druk dan op pauze en voer je
opdracht met veel zorg uit.
Ook moet je je antwoorden vaak in de cursus noteren, verlies dus ook deze niet uit het oog!
Vraagjes:
Hoe laat is het op de klokjes?
h
min
sec
Versta je de techneuten t-shirts? Noteer de leuze in decimale
schrijfwijze:
Project robots.
13
Vul onderstaande tabel aan:
Binair
Decimaal
Hexadecimaal
8
4
2
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
2
2
3
3
5
5
0
1
0
0
0
1
6
6
0
1
7
7
1
0
8
8
1
0
9
9
10
A
12
C
15
F
1
0
1
1
1
1
0
0
1
1
1
1
1
Noteer onderstaande decimale getallen
zowel als Binair Hexadecimaal als ASCI:

14

78

127
Project robots.
14
3.4 LEDs en codes
1. Hoeveel LEDs staan er op de formulla flowcode? En op
welke poort van de microcontroller worden deze
aangesloten?
2. Wat bedoelen we met de most significant LED en the
least significant LED?
3. Hoeveel pins hebben we nodig om alle rode leds aan te sluiten op de µC?
3.5 Jumpy
Wat is een sprong instructie? En waarvoor wordt deze gebruikt?
3.6 Variabele
1. Waarom gebruiken we een variabele waarde bij het
programmeren?
2. Waarop moet je letten bij een binaire vermenigvuldiger?
op de LEDjes?
Project robots.
15
Welk patroon verschijnt er
3.7 Looping the loop
Wat is het verschil tussen een eeuwige en een
voorwaardelijke loop?
Als we een variabele X hebben gedeclareerd en we plaatsen een loop met instelling:
Loop while X < 5 aan het begin van de loop, wat wil dit dan zeggen? En wat zal er nu gebeuren?
3.8 Running the light – The night rider
Wat gebeurd er met de ledjes strook, als we een loop
maken waarin we een variabele vermenigvuldigen met
2 en deze variabele een uitgang geven naar de D-poort
van de processor? Waarom?
Wat moeten we doen om het tegenovergestelde te krijgen?
Hoe laten we deze twee bewerkingen nu steeds na elkaar gebeuren?
Project robots.
16
3.9 Ringtone mania
Wat is het verband tussen toon en frequentie?
Waarom is de delayknop in de flowchart icoontjes
onvoldoende om voor alle tonen een frequentieloop te kunnen
genereren? Geef ook een voorbeeld.
3.10 Input
Welke spanning moeten we aan de ingang van de
microcontroller leggen opdat deze een duidelijke 1 zou
detecteren?
Wat moet je doen zodat de microcontroller steeds een
ingang kan blijven detecteren? Teken hieronder hier ook
een flowchart voor, voor input 4 van poort B.
Project robots.
17
3.11 If… Then… Else
Wat is het verschil tussen de “ouderwetse” IC en de modernere Microcontroller?
Verklaar de tittel van dit hoofdstuk en verduidelijk aan de hand van een afbeelding van een
bouwsteen uit de flowcharts.
Project robots.
18
3.12 Motor speed
Hoe werkt een DC motortje?
3.13 Electronic switch
Waarom hangen we onze motortjes van onze buggy niet
rechtstreeks aan een pin van de microcontroller?
Leg de werking uit van een transistor aan de hand van onderstaande tekening:
Project robots.
19
Wat is het grote voordeel van de MOSFET t.o.v. de transistor? Leg uit aan de hand van de
tekening.
3.14 H- bridge
Verklaar waarom de invertors (niet poorten) in een H-brug
kortsluitingen uitsluit. Leg
uit aan de hand van de
tekening.
Project robots.
20
Vul ofwel 1 ofwel 0 in op de
zodat de draaizin van de motor klopt.
3.15 PWM Speed control
Vertaal Pulse Witdh Modulation en verklaar wat men
hiermee bedoeld.
Als we een grote duty cycle naar de motor sturen, krijgt deze dan veel of weinig vermogen?
Vergelijk deze met een kleine duty cycle en doe dit aan de hand van een diagramtekening.
Project robots.
21
3.16 Follow the line
Leg de werking van de lijnvolgsensor uit,
verduidelijk met een schets:
3.17 Reaction sound
Hoe worden in een microfoon, geluidsgolven omgezet in elektrische golven?
Project robots.
22
3.18 Externe interupt
Vertaal interupt:
Vergelijk de voor- en nadelen van de interupt methode t.o.v.
de polling methode.
3.19 VU meter
Wat is een VU meter?
Waarvoor worden VU meters gebruikt?
Project robots.
23
3.20 Follow the light
Wat is en LDR?
Wat is een A/D convertor en wat doet deze bij deze oefening?
3.21 IR distance sensors
Hoe komt het dat IR sensoren geen last hebben
van kunstlicht?
Welk stappenplan moet je hanteren bij het
gebruik van IR afstands sensoren? En waarom
doen we dit zo?
Project robots.
24
3.22 LCD
Project robots.
25