Intelevator. Heis v.2. Prosjektoppgåva i Elektronikk og datamaskiner EL2-203 Høgskulen i Sogn og Fjordane 27.11.2012



Like dokumenter
Her skal du lære å programmere micro:biten slik at du kan spele stein, saks, papir med den eller mot den.

Innhald. Oppbygning på heisen. Styreskap Tryggingssystem VIGI-2000 Styreskap avstigingsmast Brytarar og brytestiftar (i vinkel og vendehjul)

I denne oppgåva skal me lage eit enkelt spel der pingvinane har rømt frå akvariet i Bergen. Det er din (spelaren) sin jobb å hjelpe dei heim att.

PXT: Det regnar mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes. Oversatt av: Stein Olav Romslo

Brukarrettleiing. epolitiker

Pressemelding. Kor mykje tid brukar du på desse media kvar dag? (fritid)

Bitraf Resultatregnskap0per

Referat frå foreldremøte Tjødnalio barnehage

Brukarrettleiing E-post lesar

Bussar. Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen

FIBER TIL HEIMEN. Utbygging av fiber. Her følgjer nyttig informasjon knytt til fiberutbygginga. til din bustad.

Du kan skrive inn data på same måte som i figuren under :

Den gode gjetaren. Lukas 15:1-7

PC-ORDNINGA I DEN VIDAREGÅANDE SKULEN

mmm...med SMAK på timeplanen

Brukarrettleiing. For bruk av datamaskin/projektor i undervisningsrom

Nynorsk. Eksamensinformasjon

I dag. Minne typar Minne mot bussar (fysisk grensesnitt generelt) Meir buss

Kva kompetanse treng bonden i 2014?

IKT-kompetanse for øvingsskular

På tur med barnehagen. Mars 2015-juni 2015 Fokusområde 11

Rapport Mandatory Assigment 06 Photo Essay. Malin Ersland Bjørgen

Vurdering av Hedalen mølle. I Sør Aurdal. Tilstand og forslag til utbedring.

ÅRSMELDING. for Rasdalen grendalag 2008/2009

GRØNNERØR GRØNNERØR RØR GRØNNE GRØNNERØR GRØNNERØR GRØNNERØR

Stråling frå elektronisk kommunikasjon

Tenk på det! Informasjon om Humanistisk konfirmasjon NYNORSK

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Styresak. Ivar Eriksen Oppfølging av årleg melding frå helseføretaka. Arkivsak 2011/545/ Styresak 051/12 B Styremøte

1 Innledning. 2 Virkemåte for kortet. Bli kjent med USB I/O kort K8055. NB! Ta med multimeter og lite skrujern!

STUDENTARBEID. Front-end webklient for Enoro AS. Prosjektbeskriving. Kim René Merkesvik Anders Aalen Andrii Petrychak

Dersom summen vert over 400 g må ein trekkje dette frå.

Matpakkematematikk. Data frå Miljølære til undervisning. Samarbeid mellom Pollen skule og Miljølære. Statistikk i 7.klasse

Til deg som bur i fosterheim år

Bruk av reiserekning i Agresso

Kvifor kan ikkje alle krølle tunga? Nysgjerrigperprosjekt kl Davik Oppvekst

GISKE OS øydelagd av orkanen Dagmar. Tekst: Kjell Mork Soot. Foto : Lars Petter Folkestad

Litt mer om Arduino. Roger Antonsen Sten Solli INF januar 2011

Styring av Sluse Prosjekt Elektronikk og datamaskin

WORKSHOP BRUK AV SENSORTEKNOLOGI

Kommunal overtakelse av privat vannverk eksempel frå Stryn. Siv. Ing Tobias Dahle ( og tidlegare teknisk sjef i Stryn kommune)

Barnerettane i LOKALSAMFUNNET

Kjære føresette. Nok ein månad er snart over! Tida går veldig fort, spesielt når vi har det kjekt. Og det er akkurat det vi har på SFO:-)

Nytt HFK Intranett

Tilstandsvurdering av «Gamle Essoen»

KOMPETANSEHEVING FOR NYE FRUKT- OG BÆRDYRKERE

BRUK AV ALTERNATIVE LØP SOM FØRER FRAM TIL FAGBREV

S1-eksamen hausten 2017

Søk regionale miljøtilskudd elektronisk

Lingspeak Lingit AS

Kvifor er dei fleste mobiltelefonar rektangulære?

Epson-prosjektorar. Generelt. Tabell 1. Prosjektoroversikt

KappAbel 2010/11 Oppgåver 1. runde - Nynorsk

RETTLEIAR BYGGSØK. Søknad om tiltak utan ansvarsrett PBL 20-2

BMC HOVED-UR INSTALLASJONS OG DRIFTSVEILEDNING

Eksamen EL6039 VKII Elektrikar / elektriker maritime elektriske anlegg. Nynorsk/Bokmål

6-åringar på skuleveg

ICOM JAKT- OG SIKRINGSRADIO 2015

Prosjektbeskrivelse/Plan prosjekt OR2-300

Evaluering av offentleglova bakgrunn, ramme, tematikk, prosess, erfaringar og status. Vegen vidare?

Digital logic level: Oppsummering

LIKNINGA OM DEN VERDIFULLE PERLA

Saksnr Utval Møtedato Utdanningsutvalet I sak Ud-6/12 om anonym retting av prøver gjorde utdanningsutvalet slikt vedtak;

KappAbel 2010/11 Oppgåver 2. runde - Nynorsk

Matematikk 1, 4MX15-10E1 A

Månadsbrev for ROSA mars 2015

SAKSFRAMLEGG. Sakshandsamar: Inger Marie Evjestad Arkivsaksnr.: 07/1229. IT-arbeidsplassar for ungdomsskuleelevar i Luster. Rådmannen si tilråding:

Søknad om vidareføring av prosjektet. Utdanningsrøyret - Teknisk utdanningssenter i Sunnhordland

REFERAT FRÅ ÅRSMØTE I FARNES SKYTTARLAG, 29. OKTOBER 2009

Odd Petter Habbestad Prosjektleder i Bømlo Vatn og Avløpsselskap AS.

Ungdom i klubb. Geir Thomas Espe

Frå dikt til teikneserie

Flora kommune. Sluttrapport. Elektronisk meldingsutveksling mellom lege og omsorgsteneste

Årsrapport frå opplæringskontor i Hordaland om opplæring av lærlingar og lærekandidatar (Lærebedriftene skal bruka eit eige skjema.

Gründercamp Samarbeid skule næringsliv

Ipad som politisk verktøy. Surnadal kommune

Informasjon til elevane

«Ny Giv» med gjetarhund

Partifinansiering 2017, RA Rettleiing: Web-skjema. Finne ID og passord. Hente, fylle ut, signere og sende inn skjemaet elektronisk

Tilgangskontroll i arbeidslivet

Lab. D2 Datateknikk TELE1004-A 13H HiST-AFT-EDT

Kom skal vi klippe sauen

SPØRJEGRUPPE: HORNINDAL SKULE KLASSE

ÅRSMELDING. for Rasdalen grendalag 2013/2014

Informasjon og brukarrettleiing

TURKESTOVA. 5. Dersom fleire hadde turkestove saman, var det då faste reglar for bruken, eller retta dei seg etter kvarandre som best dei kunne?

Minnebok. Minnebok NYNORSK

Vegvisar til vilbli.no for rådgivarar

Skjema for fokusområder bibliotekarvandring

Stemnehandboka for NKSF

Molde Domkirke Konfirmasjonspreike

Frisk luft og mykje mjølk gav friske kalvar og 30% betre tilvekst

Partifinansiering 2016, RA Rettleiing: Web-skjema. Finne ID og passord. Hente, fylle ut, signere og sende inn skjemaet elektronisk

Finansiering av søknaden

Odd Petter Habbestad Prosjektleder i Bømlo Vatn og Avløpsselskap AS.

Netcan Utvikling. Forretningsplan

Årsmelding Austevoll maritime fagskule 2-årig maritim fagskule : Skipsoffisersutdanning- nautikk

Eksamen MAT1013 Matematikk 1T. Nynorsk/Bokmål

Transkript:

Intelevator Heis v.2 Prosjektoppgåva i Elektronikk og datamaskiner EL2-203 Høgskulen i Sogn og Fjordane 27.11.2012 Jermund Hopland Namir Al-Rubaie Roy Andre Solvåg-Hellevang

Innhold Føreord... 4 Samandrag... 5 Innleiing... 6 1.0 Problemstilling... 7 1.1 Prinsippskisse... 7 2.0 Quartus Programmering... 8 2.1 Finite-state machine Endeleg tilstandsmaskin... 8 2.2 Styring... 9 2.2.1 Inngangssignal... 9 2.2.2 Utgangsignal... 10 2.2.3 Kommunikasjon Java... 10 2.2.4 Display 7-segment... 11 2.2.5 Klokke... 11 3.0 Grafisk brukargrensesnitt... 12 3.1 Problemstilling... 12 3.2 Programmering NetBeans.... 12 3.3 Java Brukargrensesnitt... 12 3.4 Forbindelse mellom PC (Java) og Alterakortet.... 13 USB RS232... 13 4.0 Konstruksjon av heisen... 14 4.1 Heisen... 14 4.2 Motorbrakett... 14 4.3 Nye komponentar... 14 5.0 Montering av elektriske komponentar... 15 5.1 Sensor (Fototransistor / IR LED)... 15 5.2 Relé... 16 5.3 Motor... 17 5.4 Brytarane... 18 5.5 Tilkopling til Alterakortet.... 18 5.5.1 GPIO tilkopling... 19 5.6 Display... 19 Prosjekt Intelevator Heis v2 Side 2 av 25

6.0 Arbeidsprosessen... 20 7.0 Problem undervegs... 21 7.1 Heis versjon 1... 21 7.1.1 Sensorar... 21 7.1.2 Relé med transistorkopling... 21 7.1.2 Støy... 21 7.1.3 Eksterne brytarar... 21 7.2 Heis versjon 2... 22 7.2.1 Støy... 22 7.2.2 Defekte komponentar... 22 7.2.3 Kommunikasjon mellom Altera og PC (Java)... 22 7.2.4 Etasjelokasjon... 22 7.2.5 Display... 22 8.0 Budsjett og komponentliste... 23 8.1 Budsjett... 23 8.2 Komponentliste og rekneskap... 23 9.0 Konklusjon... 24 Kjelder... 25 Vedlegg... 25 Prosjekt Intelevator Heis v2 Side 3 av 25

Føreord Hausten 2012 har vi hatt eit prosjekt i faget Elektronikk og Datamaskiner, og vi valde å vidareutvikle styringa til ei miniatyrheis som vi hadde laga tidlegare. Vi laga den nye styringa i Verilog på Altera Quartus Web Edition, og brende den in på eit DE2 utviklingskort. Vi laga og eit brukarpanel på Java for styring av heisen frå ein dataskjerm. Arbeidet har føregått både som gruppearbeid, og som individuelt arbeid der vi har fordelt oppgåver undervegs. Vi har ingen erfaring med programmering i Verilog frå tidlegare, så vi har jobba med prosjektet etter kvart som kunnskapane i faget har blitt betre. Vi har og hatt god hjelp frå andre studentar som har laga eit liknande prosjekt tidlegare. Vi valde prosjektet ut i frå at vi ville bruke mest mogeleg tid på Verilog programmering, og seriell kommunikasjon, og mindre tid på bygging av modell. Då passa det bra at vi hadde eit tidlegare prosjekt vi kunne bygge vidare på. Det har vore veldig lærerikt, og vi føler at vi har blitt gode på programmering etter endeleg tilstandsmaskin modellen. Det har også denne gangen oppstått ein del problem, men vi har hatt stor lærdom i å leite etter feilkjelder i tekstprogrammeringa og i grensesnittet mellom logikk og PC. Det har vore veldig spennande, men også til tider hektisk å arbeide med prosjektet, spesielt mot slutten då fristen nærma seg. Vi er ganske nøgde med det endelege resultatet og vil takke faglærarar Bjarte Pollen og Marcin Fojcik for vegleiing under prosjektarbeidet. HISF Vie, Førde 26.11.2012 Jermund Hopland Namir Alrubaie Roy Andre Solvåg-Hellevang Gruppeleiar Prosjekt Intelevator Heis v2 Side 4 av 25

Samandrag Prosjektarbeid er ein obligatorisk del av Elektronikk og datamaskiner, der ein skal lage eit elektronisk produkt eller skrive dataprogram i Altera som kommuniserer mellom pådrag og aktuatorar. Det var denne gongen ikkje noko krav til kva PLD, programmable logic device, vi skulle bruke, men vi valde å også denne gangen bruke Altera Quartus 11 Web Edition til å designe krinsen, og brende den in på eit Altera DE2 utviklingskort. Vi valde å vidareutvikle ei miniatyrheis, og lage ein styring til denne, i tillegg til eit grafisk brukarpanel på PC. Prosjektet består av fleire hovuddelar. Ein del er styringsprogrammet som vi brenn inn på eit alterakort, og få denne til å kommunisere med ei datamaskin. Ein anna del er grafisk brukarprogram som vi programmerer i Java på programmet Netbeans. Den siste delen er moderniseringa av miniatyrheisen med nokon nye komponentar til drivverk, og montering av eit display på toppen av heisen. I det første prosjektet konstruerte vi kretsar for motorstyring med transistor og relé, sensorar som indikerer heisposisjon, og kommunikasjonen mellom Alterakort og elektronikken på heisen gjennom ein flatkabel har vi ikkje utvikla det noko vidare. Styringa er skreve i Verilog etter Endeleg tilstandsmaskin modellen, som er ei abstrakt maskin der det er ulike tilstandar for alle dei ulike stoppestadane og rørslene til heisen. Kvar tilstand er definert med eit unikt nummer, og i kvar tilstand er det definert kva hending eller signal som får den abstrakte den til å gå over til ein anna tilstand. Når maskina står i ein tilstand er det definert kva for utgangar som skal ha signal, anten det er signal til display som syner posisjon, eller signal til motorstyring eller Java. Vi brukte fototransistor og IR LED som sender ut høgt signal når dei står uforstyrra, og lavt signal når dei blir brotne. Bak på heisen festa vi ein treplugg som braut strålen på sensor. Som motor har vi brukt motor frå ein batteridrill av typen Black & Decker 12 V. Vi snudde dreieretninga på motoren ved å endre polariteten på spenninga, for å få den til å både flytte heisen både opp og ned. Vi fekk den til å gå med passande hastigheit ved å justere spenninga in på motoren ned til ca 5 V. I det første prosjektet hadde vi mykje problem med støy, som vi då løyste ved å kople pull down motstandar til alle inngangane på alterakortet. Ein anna problem som vi den gang ikkje hadde ei løysing på var å få eksterne brytarar til å fungere saman med logikken. Dette problemet har vi fiksa ved å la signala frå brytar bli forseinka nokon ms før dei bli sendt vidare til styringa. Prosjektet har gjeve oss mykje kunnskap og erfaringar i arbeid tekstprogrammering og seriell kommunikasjon. Tidsbruken stemte bra overens med det som var planlagt. Prosjekt Intelevator Heis v2 Side 5 av 25

Innleiing Prosjektoppgåve i digitalteknikk inngår som ein obligatorisk del av faget elektronikk og datamaskiner, EL2-203, på automasjonslinja ved Høgskulen i Sogn og Fjordane. Denne oppgåva skal bidra til at studentane får prøve å planlegge, designe, konstruere, feilsøke og teste eit produkt frå byrjing til slutt. Studentane får bruke kunnskapane dei får gjennom undervisninga til å løyse ei praktisk oppgåve, og på den måten får erfaring med litt meir avansert programmering, og kommunikasjon mellom ulike styringar og aktuatorar eller liknande. Gruppene står fritt til å velje kva dei vil gjere, så lenge den oppfyller krava i prosjektråma. Etter at prosjektgruppa har blitt einige om kva oppgåva skal dreie seg om, skal det lagast eit enkelt forprosjekt som skal leverast in til faglærar for godkjenning, før ein kan ta til på sjølve prosjektoppgåva. Denne prosjektskildringa inneheld, i tillegg tilnamn på deltakarane og kva ein skal gjere, råmene i prosjektet med omsyn til tidsbruk, økonomi og ein framdriftsplan for arbeidet. Gruppa har valt vidareutvikle ei heis, som blir sett i rørsle opp og ned av ein enkel motor, med kretskort for motorstyring med relé, og ei ekstern straumkjelde. I heisen er det montert sensorar på kva etasje som kommuniserer med styringa på alterakortet. Vi skal lage nytt styringsprogram i Verilog som skal brennast in på ein PLD, eit Altera DE2 utviklingskort. Vi skal lage grafisk brukargrensesnitt på ein dataskjerm i Java med programmet Netbeans. Kommunikasjonen mellor Alterakort og PC skal gå gjennom ein RS232 USB kabel. Vi skal og montere eit display som indikere retninga av heisrørsla og etasjeplassering. Prosjekt Intelevator Heis v2 Side 6 av 25

1.0 Problemstilling Vi har valt å vidareutvikle og modernisere styringa til en heisen vi laga i prosjektet i faget grunnleggjande elektro 2. Då laga vi ein heis med 4 etasjar og styringsprogram beståande av logiske portar i eit blokkdiagram. Meininga var den gang å styre heisen med eksterne brytarar, men desse fekk vi ikkje til å fungere. Vi skulle lage nytt styring med tekstprogrammering i Verilog, og lage brukarprogram på Java så vi kunne styre heisen frå ein brukarvennleg meny på ei datamaskin. Vi skulle montere eit display på heisen som synte kva etasje heisen var i, og om den bevegde seg opp eller ned. Vi håpte på at denne gongen ville dei eksterne brytarane fungere sidan mogelegheitene er mykje større i tekstprogrammering. 1.1 Prinsippskisse Heisen skal bevegast av ein motor, og vi har valt å bruke motor frå ein Black & Decker batteridrill. Logikken som skal sende start og stopp pulsar til motor må få informasjon om kva posisjon heisen står i, og vi skal montere fototransistor og IR LED som sensorar på kvar etasje i heissjakta. Heisen skal utstyrast med trykknappar for kvar etasje, og i tillegg skal vi styre heisen frå ei datamaskin. Vi skal aktivisere heisen ved å trykke på anten brytarar på alterakortet, eller på menyen på dataskjermen. Brytar på Heis PC Meny Java Tids forseinking Etasjeveljar Logikk Seriell kommunikasjon gikk Verilog FSM Styring Sensorar på etasjar Relé motor NED Relé motor OPP Figur0: Prinsippskisse logikk og motorstyring Motor Prosjekt Intelevator Heis v2 Side 7 av 25

2.0 Quartus Programmering Vi laga logikken i den første versjonen av prosjektet på Quartus 11 Web Edition, med logiske portar og datavipper i eit enkelt blokkdiagram, med inngangar og utgangar, frå og til resten av komponentane. Denne logikken nyttar høg signal på 3,3 Volt og lav signal på under 0,5 Volt. Den ferdige logikken programmerte vi på eit Altera DE2-kort. Sidan all kommunikasjon i styringsprogram bygt opp av berre logiske portar er TTL signal, eller vanlege høg og lav, er det vanskelig å sende meir avansert informasjon til og frå styringsprogrammet frå ei ekstern kjelde. Vi har sidan den gang lært å lage program i Verilog som er tekstprogrammering i det same Quartus programmet. I Verilog definerer ein logikken og alle funksjonane med tekst bygt opp etter ein bestemt mal. Ein lagar då ei enkel blokk med dette programmet inni og ein kan då kople den saman med andre blokker, eller logiske portar i eit blokkdiagram. Vi ville styre heisen frå ei datamaskin, og for å enklast kunne kople styringa serielt til Javaprogrammet måtte vi nytte sender og receiver blokker laga for RS232 som vi hadde laga tidlegare i faget Elektronikk og Datamaskiner. I det første prosjektet hadde vi eit mislykka forsøk på å nytte nokon eksterne brytarar til å styre heisen med. Desse brytarane viste seg å vere av ein dårleg kvalitet som gav eit for ustabilt signal når dei vart aktivert, og på grunn av denne bouncingen greidde ikkje resten av logikken å tolke signalet frå brytarane. I dette prosjektet har vi fått til å bruke desse brytarane ved å lage ei Verilogblokk med ei lita tidsforseinking, der det blir sendt ut eit stabilt høg signal 10 ms etter at brytaren blir aktivert. 2.1 Finite-state machine Endeleg tilstandsmaskin Vi har i dette prosjektet vidareutvikla heisen, og blant endringane vi har gjort er å gå over frå programmering med logiske portar til å programmere med tekst i Verilog. Vi har skreve programmet etter ein modell som kallast Finite-state machine, eller Endeleg tilstandsmaskin. Dette er ein abstrakt maskin som kan vere i ein av eit endeleg antal state tilstandar. Ei utløysande hending eller betingelse kan få tilstandsmaskina til å gå frå ein tilstand til ein anna, noko som kallast ein transisjon. Ein endeleg tilstandsmaskin blir definert av ei liste, eller parameter, med mulige tilstandarden kan gå til frå kvar enkelt tilstand, og den eller dei utløysande betingelsane for kvar transisjon. Prosjekt Intelevator Heis v2 Side 8 av 25

2.2 Styring Vi laga først til dei 4 tilstandane der heisen står i ei av etasjane klar til å bevege seg til ei anna. Den utløysande hendinga i desse tilstandane er at ein bryter på heisen blir aktivert, eller at Java sender eit signal om å gå til ein etasje. Om heisen får signal om å gå til den etasjen den allereie står i skjer det ingenting, men får den signal om å gå til ei anna etasje, går tilstandsmaskina over i en anna tilstand. Vi laga til tilstandar for bevegelse av heisen, og den einaste utløysande hendinga i desse tilstandane er at sensoren for den rette etasjen blir aktivert når den er komt fram til destinasjonen. Om den skal for eksempel gå opp til 4. etasje, har det ingen betyding for kor den i utgangspunktet står sidan den skal gå opp heilt til sensor til 4. etasje blir aktivert. Vi trengte då 3 tilstandar for bevegelse opp og 3 tilstandar for bevegelse ned. Vi laga og til ein tilstand som skulle finne ut kvar heisen var ved oppstart av programmet, og eventuelt sende heisen ned til 1. etasje om det oppstod ein feil og heisen stod parkert mellom 2 etasjar. Dette fikk vi ikkje til å fungere og etter samråd med faglærar valte vi å droppe denne funksjonen. Ved oppstarten av Altera står alle utgangane høge i nokon tidels sekund, og vi antok at dette kan vere ei muleg årsak til at vi ikkje fekk dette til å fungere. Vi enda då opp med 11 ulike tilstandar i vår endeleg tilstandsmaskin der den eine ikkje fungerte. Vi valde likevel å ta den med då det kan vere berre småjusteringar som manglar, og den påverkar ikkje resten av programmet. I styringsblokka (heisstyring) er det definert kva for utgangar som skal ha signal i alle dei ulike tilstandane, og kva som blir sendt ut til 7-sengemt displayet og tilbake til Java. Figur 1 Stryringsblokk 2.2.1 Inngangssignal Vi hadde 2 ulike inngangssignal, eit frå Java og eit frå brytarane. For å enklast kunne styre programmet frå 2 ulike kjelde valde vi etter samråd med faglærar å legge til ein brytar som vi kalla SW (switch), der vi enkelt kunne skifte mellom dei ulike styringane. Viss brytaren er på styrer vi med Java, og det blir samtidig sendt styringssignal tilbake til Javaprogrammet. Når brytaren er av styrer vi heisen frå dei 4 brytarane på heisen, og Javaprogrammet står då på vent. Figur 2 Forseinking brytarar Prosjekt Intelevator Heis v2 Side 9 av 25

Dei 4 brytarane er kopla til ei eiga blokk (slow) som tek han om bouncingen med 10 ms tidsforseinking, og sender signala vidare som eit 3 bit signal gjennom BUS til styringsblokka. Signalet frå Java kjem som 4 bit, og vi gjer dette om til 3 bit før det går inn i styringsblokka. Sensorane frå heisen er i denne versjonen som i den førre kopla direkte til logikken med TTL signal, då vi ikkje opplevde særleg støy og bouncing med desse komponentane. 2.2.2 Utgangsignal Styringa sender ut signal til motorstyring alt etter kor heisen skal og ulik informasjon til 7- segment display og lysdiodar. Signala til lysdiodar og motorstyring blir sendt som enkle TTL signal. Lysdiodane på Alterakortet indikerer motor retning og var til hjelp under utvikliga og testinga av prosjektet. Signala til motorstyringa sender ut høge signal til transistortrinn og relé, som igjen koplar hovudstraumen til den aktuelle polariteten på batteridrillmotoren, alt etter om heisen skal gå opp eller ned. Desse signala er aktivt høge så lenge styringa er i eit av dei 6 tilstandane for bevegelse av heisen, elles er dei lave. Retursignalet til Java blir send som 4 bit gjennom bus. Dei ulike 7-segmenta, det på toppen av heisen, og dei på Altera kort får signala til kva si eiga styringsblokk som 3 bit gjennom bus. 2.2.3 Kommunikasjon Java Javaprogrammet sender ut eit 4 bit signal med eit tal 1 til 4 som er destinasjonen til heisen, som blir tatt imot og vidaresendt til styringsblokka gjennom receiverrs232 blokka. Sidan det er lagt til ei ventetid på nokon sekund i kvar etasje, må Java få beskjed om korti heisen er framme så den kan starte denne teljinga. Når pausen er over sender Java neste signal. Vi har då laga til ei blokk (send) Figur 3 Sjekke retursignal som sjekkar korti heisen er framme og samstundes kontrollerer at inngangssignalet frå Java er mellom 1 og 4. Denne blokka sender signal til blokka senderrs232 når kriteria er oppfylt, og retursignalet frå styringsblokka blir då vidaresendt tilbake til Java. Vi har valt talet 7 som retursignal til Java. Figur 4 Kommunikasjon RS232 Prosjekt Intelevator Heis v2 Side 10 av 25

2.2.4 Display 7-segment Vi nytta ferdige styringsblokker til displaya men desse var laga som aktiv låg signal, så vi måtte modernisere desse ved å endre alle utgangane til motsatt logikk. Vi la i tillegg til 2 eigne signal bilde som skal vise om heisen går opp eller ned. Styringsblokkene er laga for å vise HEX, 0 til 15, og vi brukte talet 14 til å vise at heisen går ned ved å la dei 2 nedste horisontale diodane lyse, og tilsvarande for taler 15 for å vise at heisen går opp ved å la dei 2 øvste diodane lyse. Vi la også til utgangar for 3 ekstra display på sjølve Alterakortet for å ha kontroll på kva signal som til ein kvar til kjem inn og blir sendt ut. Eit som viser det same som det på heisen, eit viser kva tilstand tilstandsmaskina er i, og eit viser kva signal vi får in frå Java eller brytarar. Figur 5 Styring av display 2.2.5 Klokke Endeleg tilstandsmaskin, og dei andre verilogblokkene i styringsprogrammet blir styrt av klokkepuls. Vi prøvde først med den innebygde 50 MHz klokka, men etter litt testing fann vi ut at denne gjekk for fort, og vi valde då å prøve ein seinare puls. Vi nytta ei ferdiglaga clock divider blokk der ein kan velje mellom ulike pulsar frå 1 MHz og nedover. Denne var laga for inngangspuls på 25 MHz, og sidan det i Altera berre er 27 MHz og 50 MHz klokker, måtte vi modernisere denne blokka slik at den samsvarte med Altera si 27 MHz. Vi kopla då 1 MHz utgangen frå denne blokka til dei andre blokkene; styring, reiseverrs232, senderrs232, slow og send. Dette fungerte mykje betre enn med 50 MHz klokka og Figur 6 Klokkedelar vi valde å gå for denne løysinga. Prosjekt Intelevator Heis v2 Side 11 av 25

3.0 Grafisk brukargrensesnitt 3.1 Problemstilling Vi ønskte å lage eit grafisk brukargrensesnitt der vi kunne styre heisen frå pc, og samtidig ha køordning for å kunne legge inn fleire etasjar, slik at heisen går til dei etasjane vi trykker inn i rekkefølgje. 3.2 Programmering NetBeans. Programmet vi brukte for å skrive Java-programmet heiter NetBeans. Det er dette programmet som vert brukt i undervisninga på skulen og er derfor det programmet som var mest naturlig for oss å bruke. Figur 7 Logo Netbeans 3.3 Java Brukargrensesnitt Vi lagde eit enkelt og brukarvennleg brukar grensesnitt. Ved å trykke på knappane på høgre side i panelet velger du kva for etasjar du vil at heisen skal gå til. Dei etasjane som vert valde viser i dei svarte rutene på panelet. Når du trykker start vil heisen begynde å gå til dei angitte etasjane. Dei svarte rutene, som viser kva etasjar heisen skal stoppe i, vil nulle seg ut etterkvart som heisen har vore i dei aktuelle etasjane, og dette gjer det mulig å trykke inn nye etasjar etterkvart uten å stoppe programmet. Vi har og lagt inn i programmet at heisen skal stå i ro i kvar etasje ei angitt tid før den går vidare til neste. Denne tida ligger inne med «default» på 5 sekunder, men dette kan enkelt endrast på brukarpanelet. Vi hadde god hjelp av eit program som tidligare har vore laga til eit liknande prosjekt. Dette har vi endra til å passe oss til vårt føremål, og dei største utfordringane her var å få brukarpanelet til å bli slik som vi ønskte. Vi føler oss ganske fornøgde med det endelige resultatet. Programmet ligger ved rapporten som tekstdokument i vedlegg. Figur 8 Brukarpanel i Java Prosjekt Intelevator Heis v2 Side 12 av 25

3.4 Forbindelse mellom PC (Java) og Alterakortet. 3.4.1 USB RS232 For å sende og ta imot signal mellom pc og alterakortet brukte vi RS232. Sidan det ikkje er RS232 utgangar på dei berbare maskinene våre måtte vi bruke ein RS232 USB konverter kabel. RS-232 er i telekommunikasjonen en standard for seriell samankopling mellom en dataterminal (DTE) og datakretsløp terminerende utstyr (DCE; for eksempel et modem). Standarden er ofte brukt i serieporter på PC. Data blir sendt som ein serie med bitar. Både synkrone og asynkrone overføringar er tillate ifølge standarden. Kvar krets opererer bare ein veg, som for eksempel signal frå en DTE til en DCE eller omvendt. Sidan datasending og datamottak er på separate kretsar, kan grensesnittet operere i full dupleks, altså både sende og ta imot data samtidig. Figur 9 Pinneoppsett på RS-232 Figur 10 USB - RS232 kabel Prosjekt Intelevator Heis v2 Side 13 av 25

4.0 Konstruksjon av heisen 4.1 Heisen Vi laga heisen av ferdig dimensjonerte 18 mm og 16 mm furuplater. Dei vart montert saman med sentreringsboltar og trelim. Topplata vart skrudd fast då det måtte vere mogeleg å demontere den og få in og ut sjølve heisen under arbeidet og testinga. Vi laga heisen 80 cm høg, 22 cm brei, og 18 cm djup. Sjølve heisen som skulle bevege seg in i heissjakta laga vi med 2 mm klaring på kvar side og 15 mm klaring i bakkant for å ha plass til sensorane. Den vart då 20 cm høg sidan det skulle vere 4 etasjar. Vi teikna først enkle skisser på teikneprogrammet Autodesk Inventor 2010 for å ha noko å planlegge ut ifrå. Figur 10 Heis produksjon 4.2 Motorbrakett Vi ville få til ei så enkel heise og senke mekanisme som mulig, og valde då å montere batteridrillmotoren på toppen av heisen. Akslingen som snora skulle snurrast rundt måtte vere rett ovanfor holet som snora skulle gå igjennom, for å unngå unødig friksjon, og slitasje på snøret. Vi måtte å lage ein motorbrakett, og valde då å lage den av aluminium, då det er lett og sterkt, og enkelt å arbeide med, og tilpasse undervegs. Motorbraketten vart laga av 4 mm aluminium, med eit 45 mm x 20 mm rør til avstiving. Braketten vart konstruerte med hol til kabeltrekking til motor og den øvste sensoren. Motoren vart festa til braketten med 2 stk 38 mm eksosklemmer. Figur 11 Motorbrakett 4.3 Nye komponentar Vi la til nokon nye komponentar når vi vidareutvikla heisen. Vi brukte ein 40 mm x 30 mm aluminiumsvinkel til å laga ein brakett til å feste 7 segment displayet på toppen av heisen. I det første prosjektet hadde vi ikkje noko bra løysing på støtte for drivakslingen, då den berre kvilte på ein trekloss. Det kom mykje ulydar frå motoren på grunn av stor belastning radialt på akslingen, og vi laga ny støttebrakett av eit 45 mm x 40 mm aluminiumsrør, med eit 10 mm hol tilpassa akslingen for å gjere det meir stabilt. Figur 12 Brakett til aksling og display Prosjekt Intelevator Heis v2 Side 14 av 25

5.0 Montering av elektriske komponentar 5.1 Sensor (Fototransistor / IR LED) I dette prosjektet bestemte vi oss for å bruke ein type sensorar som har blitt brukt på diverse prosjekt tidligare med gode resultat. Dei er enkle å kople opp og dei fungera stabilt. Sensorane er montert på kretskort på bak veggen av heissjakta i kvar etasje, og heisen har ein tapp i bakkant som bryter strålen mellom IR Led og fototransistor når heisen passerer sensorane. IR Led er ein led som sender ut eit infraraudt lys når den er tilkopla spenning. Fototransistoren er plassert i lysstrålen til IR Led en. Vi sender eit signal (spenning) inn på fototransistoren, og så lenge den står i lysstrålen vil den sleppe signalet gjennom og inngangen på Alterakortet ligger «høg». Når heisen passerer sensorane vil den bryte lysstrålen og fototransistoren vil da «lukke», og inngangen på Alterakortet blir «lav», og logikken veit då i kva etasje heisen er. Når heisen er komt til den angitte etasjen vil den stoppe. Figur 13 Sensorprintkort, t.v. fototransistor og t.h. IR LED. Pluggen som bryt strålen er montert bak heisen Figur 14 Oppkoplingsskisse for sensorane Prosjekt Intelevator Heis v2 Side 15 av 25

5.2 Relé Vi brukte 4 stk. G6DS 1 polet relé for å styre motoren. Grunnen til at vi brukte 4 relé er at vi må bryte både Vcc og gnd til motoren for å kunne snu polariteten, slik at heisen kan gå både opp og ned. Relea er tilkopla 2 utgangar på Alterakortet slik at når utgangen på kortet blir «høg» slår releet inn. Utgangane på Alterakortet gir ut 3,3 V so det skulle i teorien vere nok til å «trigge» releet, men når vi kopla det til kortet drog det ned spenninga til under 3 volt. Dette gjorde til at vi måtte inn med ein transistorkrets for å drive dei. Motstanden som vi hadde mellom utgangen på alterakortet og base på transistoren var utrekna av faglærar til å være ca 100 Ω, og det fungerte fint. Transistorane er ikkje kopla på det same kretskortet som relea av den grunn at vi først lagde kretskortet med dei 4 relea, og så fant vi ut at vi måtte ha transistorane i tillegg. Vi sette dei derfor på eit anna kretskort slik at vi slapp å lage eit heilt nytt kretskort til reléstyringa, og sparte derfor litt tid og arbeid på dette. Dersom vi skal vidare utvikle modellen kan det være aktuelt å lage nye kretskort, for å få det litt finare og meir systematisk oppbygd. Under testinga av heisen møtte vi på eit nytt problem, støy. Dette løyste vi med å bruke «pull down» motstandar mellom alle inngangane på Alterakortet og jord. Størrelsen vi valde på motstandane er 1,5kΩ. Når inngangane på Alterakortet ikkje får signal kan kortet vise ein tilfeldig status på inngangen, dette løyser seg når vi setter på disse motstandane, for då er vi sikre på at inngangane faktisk er «låge», for då vil eventuelle støysignal gå til jord. «Pull down» motstandane monterte vi på det same kretskortet som transistorstyringane til relea. Figur 15 Relékretskortet og kretskortet med transistorane og «pull down» motstandane Figur 16 Koplingsskisse relé Prosjekt Intelevator Heis v2 Side 16 av 25

5.3 Motor Motoren monterte vi på ein brakett på toppen av heisen. Braketten er spesiallaga til formålet og er utført i aluminium og lakka svart. Motoren er festa oppå denne braketten med eksosklemmer frå Biltema. Sjå bilde. Leidningane frå relé-styringa er tilkopla motoren med kabelsko på tilkoplingsklemmene på bakkant av motoren. Som spole/aksling til å snurre inn og ut snøret på heisen sette vi berre ein bolt inn i choksen på motoren. Motoren vi har brukt er ein 12V batteridrillmotor, men vi måtte redusere spenninga til 5V for å få den til å gå sakte nok. Sidan vi brukte Thandar-spenningskilde var ikkje dette noko problem da den er justerbar. Motoren som vi brukte på prosjektet første året var ikkje heilt i orden, så vi valte å bytte denne. Roy hadde heldigvis ein heilt lik motor liggande, så denne kunne vi bruke utan å måtte modifisere oppfestinga. Figur 17 Motorfeste og tilkopling Prosjekt Intelevator Heis v2 Side 17 av 25

5.4 Brytarane Pulsbrytarane som står ved kvar etasje på heisen er kjøpt på Biltema. Disse brytarane får tilført 3,3v får Vcc på Alterakortet og so går da ein leidning frå kvar av brytarane og inn på kvar sin inngang på Alterakortet. Brytarane fekk vi i år til å fungere fint. Når du trykker på brytaren i ein etasje, kjem heisen til den aktuelle etasjen. Vi kan ikkje bruke brytarane samtidig som vi køyrer Java-programmet, da vi ikkje har fått dette til i programmet. Vi brukar derfor ein brytar på Alterakortet til å velje mellom brytarane på Heisen, og Java-styring. Når vi i år begynte å teste heisen fann vi ut at den eine brytaren var defekt, og vi måtte derfor kjøpe ein ny. Figur 18 Pulsbrytar plassert i kvar etasje 5.5 Tilkopling til Alterakortet. Alt eksternt utstyr er tilkopla Alterakortet via 40-pin flatkabel (IDE-kabel). Alle leidningane vi skulle kople til Alterakortet av isolerte vi og putta dei ned i dei aktuelle hola på den eine kontakten på IDE-kabelen og sette den andre enden i tilkoplingspunktet på Alterakortet. Dette var ingen god løysing da det ofte var dårlig kontakt i tilkoplingane og vi fekk ein del støy i med denne løysinga. Vi valte derfor i år å montere på ein kontakt til IDE-kabelen på heisen, slik at alle kablane er lodda fast til eit kretskort saman med denne kontakten. Dette gjorde at vi fekk meir system på kablane og vi unngjekk dårlig kontakt. Mykje av støyen forsvann og med dette. Figurane nedanfor viser IDE-kabelen, kva for pinnar vi har brukt og Figur 19 Kontakt til flatkabel kva dei er til, og kontakten montert på heisen. Figur 20 IDE-kabel Prosjekt Intelevator Heis v2 Side 18 av 25

5.5.1 GPIO tilkopling Figur 21 Viser tilkoplingspunktet på Alterakortet og kva for pinnar som er brukt 5.6 Display Vi bestemte oss for å ha 2 display, eit 16-segments display som skulle vise retninga heisen går, og eit 7-segments display som skulle vise kva etasje heisen er. Vi kunne finne riktige datablad til displaya, så vi målte ut dei tilkoplingane til dei ulike diodane manuelt. Vi var uheldige å sprenge displayet som skulle vise retning, men det andre fungerer som det skal. Sidan diodane var berekna for 2,0 V spenning, og 15-20 ma, måtte vi kople til ein motstand i serie, for å redusere spenninga frå Altera som er 3,3 V.. Vi velte ein motstand på 100 ohm i serie med kvar anode på displayet. Den felles katoden kopla vi til GND på Altera. Utgangane frå 7-segent blokka i Quartus Verilog samsvarer med nummera på diodane på bildet. Fargane syner kva leidningar vi har velt til vår oppkopling. Figur 22 7-segment display med tilkoplingar Figur 23 Kretskort 7-segmentdisplay Figur 24 Display Prosjekt Intelevator Heis v2 Side 19 av 25

6.0 Arbeidsprosessen I det første prosjektet laga vi ferdig ein modellheis, så motor, motorstyring, innstilling av sensorar, tilkopling til altera og brytarar var ferdig, og vi trengde ikkje å bruke noko tid på dette. Vi brukte likevel noko tid tidleg i prosjektfasen på å gå over alle tilkoplingar og kontrollere at ting var som det skulle før vi starta å arbeide med det nye prosjektet. Vi starta å skrive programmet i Verilog så snart kunnskapane i faget var gode nokk. Å skrive sjølve programmet var ikkje så lang tid, men det var ikkje så lett å få det til å fungere som planlagt. Etter ein del feilsøking, fann vi ut at den eine trykkbrytaren var defekt, og når denne var skifta fungerte det som tenkt. Vi hadde i det første prosjektet store problem med trykkbrytarane, men ved å legge ein liten forsinking på dei i Verilog, fungerte dei bra. Vi kunne no begynne å konsentrere oss om styringa frå PC. Vi fann eit Javaprogram laga til eit tidlegare prosjekt, og vi moderniserte dette så det skulle fungere til vårt formål. Det tok ein del tid å forme sjølve brukarpanelet etter vårt ønskje. Når vi skulle til å teste og kople data med Java saman med Altera hadde vi store problem i starte på å få dei til å kommunisere. Det viste seg å vere klokkeinnstillingane i det originale Javaprogrammet som ikkje stemte med sender og mottakar blokkene i Verilog. Når vi synkroniserte desse fungerte det meste og vi trengde berre å foreta nokon småjusteringar i Verilog for å få Javaprogrammet til å stå på pause, når vi skulle styre heisen frå trykkbrytarane på heisen. Vi monterte ein ny støtte for drivakslingen på toppen av heisen, og ein brakett for feste av display. Vi laga til kretskort til displayet som vart montert på heisen, Å få display til å fungere gjekk fint når vi fekk målt ut dei ulike diodane, og kopla til den riktige spenninga. Vi laga og til eit kretskort med ei kontakt for fastmontering av flatkabelen, som var svært utsett for støy. Dette fjerna alle problem med denne kabelen. Veke Arbeid Antal timer 39 Planlegge 2 40 Begynne å skrive program i Verilog. Montere ny støtte til aksling. 5 42 Finne display. Måle ut og teste. 2 43 Rekne ut motstand og lodde display. Montere og teste med Altera Skrive resten av Verilogblokkene. Setje saman blokkdiagram 44 Testing av styringsprogram. Endre Javaprogram og lage brukarpanel 12 45 Få Altera til å fungere med Java 12 46 Testing, feilsøking og endring av heis med altera Java og display 6 47 Kople alt saman, og ferdigstille. Montere flatkabelkontakt. Lage presentasjon og skrive rapport. 48 Ferdigstille rapport og levere. SUM 66 3 5 3 16 Prosjekt Intelevator Heis v2 Side 20 av 25