Naam: Project robots. 1

Maat: px
Weergave met pagina beginnen:

Download "Naam: Project robots. 1"

Transcriptie

1 Naam: Project robots. 1

2 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

3 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

4 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 % 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

5 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

6 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 UITVOER A B C Project robots. 6

7 De mannier waarop de verwerking gebeurd kan dus verschillen: A B Enerzijds via traditioneel bedrade (vaak complexe) elektrische schakelingen met kontaktoren, relais, tijdklokken en andere schakelkomponenten 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: C De Microchip! De Combinatie van het aansturen van een mechanisch deel met microprocessoren en bijhorende elektronica noemen we ook wel Mechatronica. Gebruik van 8-bit microcontrollers Project robots. 7

8 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/AN RB6/PGC RA1/AN RB5 RA2/AN2/Vref-/CVref 4 37 RB4 RA3/AN3/Vref 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/CLK RC4/SDI/SDA 22 RD3/PSP3 RD1/PSP 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

9 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

10 MOTOR MOTOR MIC SENSORS 2 PRESS BUTTONS BIT B4 BIT B5 2 LINE SENSORS BIT B0 BIT B1 SOUND SENS. BIT B2 FORMULA FLOWCODE BLOCK SCHEMATIC FLASH-TYPE PIC18F4455 PROGRAM MEMORY lines of 14 BIT Adress 0x 000 0x 001 0x 002 0x 003 0x 16E 0x 16F RAM-TYPE DATA MEMORY 368 lines of 8 BIT ACTUATORS 8 LED s BIT D0 BIT D1 BIT D2 BIT D3 BIT D4 BIT D5 BIT D6 BIT D7 LOUDSPEAKER LIGHT SENS. ADC 8 ADC 9 14 BIT WIDE INSTRUCTION BUS ALU BIT C0 BUZZER 3 DISTANCE SENS. L F R BIT A0 ADC 1 BIT A2 ADC 3 BIT A4 ADC 4 8 BIT WIDE DATA-BUS 1 OR 0 PWM 1 A/D 1 OR PWM 2 A/D REGISTER BIT E1 BIT C2 BIT E0 BIT C1 2 DC MOTORS LEFT RIGHT Project robots. 10

11 Foto met benoemde onderdelen Onderstaande tekening en tabel geeft aan wat wat is op de buggy. Project robots. 11

12 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 PIC18F 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 /MCLR/Vpp 1 40 RB7/PGD RA0/AN RB6/PGC RA1/AN RB5 RA2/AN2/Vref-/CVref 4 37 RB4 RA3/AN3/Vref RB3/PGM RA4/TOCKI/C1OUT 6 35 RB2 RA5/AN4/SS/C2OUT RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 +5V VDD VSS OSC1/CLKI OSC2/CLK F877A RB1 RB0/INT +5V VDD VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC0/T1OSO/T1CKI RC7/RX/DT RC1/T1OSI/CCP RC6/TX/CK RC2/CCP RC5/SDO RC3/SCK/SCL RC4/SDI/SDA RD0/PSP RD3/PSP3 RD1/PSP 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

13 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

14 Vul onderstaande tabel aan: Binair Decimaal Hexadecimaal A C F zowel als Binair Hexadecimaal als ASCI: Noteer onderstaande decimale getallen Project robots. 14

15 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? Welk patroon verschijnt er op de LEDjes? Project robots. 15

16 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

17 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 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

18 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

19 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

20 Wat is het grote voordeel van de MOSFET t.o.v. de transistor? Leg uit aan de hand van de tekening 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

21 Vul ofwel 1 ofwel 0 in op de zodat de draaizin van de motor klopt 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

22 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

23 3.18 Externe interupt Vertaal interupt: Vergelijk de voor- en nadelen van de interupt methode t.o.v. de polling methode VU meter Wat is een VU meter? Waarvoor worden VU meters gebruikt? Project robots. 23

24 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

25 3.22 LCD Project robots. 25