English version Norsk versjon Gallery
Alle bilder er klikkbare for større versjon

Innholdsfortegnelse

Innledning

Denne oppgaven tar utgangspunkt i Eyebot-robotene som Høgskolen i Østfold disponerer. Mer detaljert skal vi designe minst to interface-kretser for å få en sensor til å snakke med roboten.

For vår del valgte vi ut 4 sensorer som vi ønsket å bruke. En lyssensor, en temperatursensor, et akselerometer og tilslutt en ultralydsensor(sender og mottager).

Vi har ikke lagt noen spesiell baktanke bak nøyaktig det utvalget av sensorer, annet enn at vi ønsket at roboten skulle være så egenrådig som mulig.

Lys og tempratur er mer gimikk en faktisk nytte, roboten ser tross alt ikke bedre om frontlysene slår seg på når det blir mørkt.

 

bilde
bilde

Arbeidsprosessen og resultater

For å få dette på plass på bare 14 dager er det ikke til å legge under en stol at det har blitt en god del sene kvelder, lange netter og til og med helger. Når vi ser på alt vi ikke rakk å gjøre kan vi heller ikke se bort fra at det kommer til å bli noen flere dager med jobbing.

bilde

Temperatursensor

Vi som alle andre måtte velge å ta med den obligatoriske temperatursensoren. Vi valgte å bruke en såkalt NTC-motstand. Dette er en passiv komponent, hvor mostanden synker ved øking av temperaturen.

Vi klarte ikke å komme på noen scenarioer hvor en temperatursensor kunne ha en praktisk betydning, så vi valgt å ikke legge noen særlig vekt på denne. Via robotens meny, kan man lese ut utslaget på sensoren. Per nå er denne hverken nullstilt eller kalibrert, men dette er det mulighet for både i maskinvare og programvare.

bilde

Lyssensor

I denne oppgaven valgte vi å ta med en lyssensor. Dette har strengt tatt ingen nytteverdi, da roboten ikke styres etter lys, men vi valgte å legge til en lyslist både foran og bak, som lyser når lysnivået til senoren faller under et gitt nivå. Om ikke annet, så er dette med på å gjøre roboten mer unik og ikke minst, stilig.

Vi valgte å bruke komponenten, TSL250. Denne viste seg å være ideell for vårt bruk, da den ga fullt utslag ved vanlig dagslys/rombelysning. Det var først når lysstyrken ble betydelig svekket, ved for eksempel skyggelegging av sensoren, eller mørke korridorer, at spenningen ut fra sensoren falt.

bilde
bilde

Akselerometer

Et akselerometer er en mekanisk eller elektrisk enhet som reagerer på forandringer og støt i en målt akse. Et typisk akselerometer har to eller tre tre akser som måles. Et eksempel på et akselerometer; ved støt vil sensoren reagere, og gir ut et elektrisk signal som indikerer hvor kraftig støtet var i de forskjellige aksene.

I vårt tilfelle valgte vi å bruke et akselerometer av typen LIS2L02AL. Denne har kun to akser, X- og Y-aksen. Høydeaksen er ikke så viktig for oss, da den har liten praktisk betydning, ettersom roboten (forhåpentligvis) vil holde seg i samme plan gjennom hele ferden.

I forsterkerkretsen er det lagt opp for justerbar forsterkning, slik at man i praksis kan stille på sensitiviteten til akselerometeret.

bilde
bilde

Ultralydsensor

Veien fra ide til en ferdig interface-krets har vært lang og ikke minst vanskelig. Opprinnelig ønsket vi å ha med en sensor av denne typen fordi den egner seg langt bedre enn de innebygde sensorene i roboten når det kommer til å oppdage objekter foran seg.

Etter å ha gjort litt research på virkemåten til denne typen sensor la vi det nesten på hylla. Men vi fant ut at vi antagelig kunne bruke et RC-ledd og litt enkel logikk til å bestemme om et objekt var for nærme eller ikke. Etter en del testing kom vi frem til at et RC-ledd i seg selv ikke gjorde jobben tilfredsstillende nok.

I stedet begynte vi å fikle med oscillatorer slik at vi kunne bruke en 4bits teller (74HCT93) og logikk til å bedømme om en avstand er for kort eller ikke. Tilslutt endte vi opp med å bruke en TLC 555 til å generere en klokkepuls på 10KHz noe som betyr at dersom echopulsen fra sensoren er under 1 ms (det vil si 10 pulser med 10KHz) frekvens vil vi gi roboten signal om at noe er for nærme, og deretter kan den reagere.

I tillegg til frekvensgeneratoren til telleren er det også en pulsgenerator bestående av to TLC 555som gir ut pulser med frekvens på 20Hz og 3/97 fordeling mellom positiv og negativ puls.

I tillegg til telleren bruker vi logikk og en SR-vippe til å mate roboten med lav tilstand når sensoren merker at et objekt er for nærme, eller høy tilstand dersom roboten kan kjøre fritt. Det denne kretsen gjør er å holde på siste høye verdi den fikk frem til det sendes ut et nytt signal til sensoren.

Kretstegning

Fakta om Ultralydsensorer

En ultralydsensor består av en sender og en mottager. Ved å gi senderen et signal inn vil den sende ut en lydbølge. Når denne lydbølgen treffer et objekt vil deler av lydbølgen bli reflektert tilbake. Dette snapper mottageren opp. Ved å se på tidsforskjellen fra lydbølgen ble sendt ut, til den er reflektert tilbake kan man finne avstanden til objektet.

I vår krets SRF04 gjør sensoren det for oss. Så sender den ut en "echopuls" med en en lengde som tilsvarer avstanden til nærmeste objekt. 100us er 3cm, 18ms er 3m. Hvis den ikke oppdager noe objekt er "echopulsen" 36ms.

bilde
bilde

Programmering

Vi har aldri programmert i C, så dette var en utfordring. I JAVA har vi nettopp lært litt rundt tråder, og vi bestemte oss fort for at dette skulle være basis for hvordan programmet til Bertha v1.0 skulle være. Det endte opp med en tråd for kjøring, en tråd for ultralyd-sensoren, en tråd for lys-sensoren og en tråd for å registrere tastatur-trykk. Slik at Bertha blant annet kunne stoppes, eller man kunne avslutte alle trådene og gå tilbake til hovedmenyen. Etter et par dager med koding og en del problemer som til slutt ble løst, er Bertha akkurat slik vi vil ha henne for øyeblikket.

Flere versjoner av Bertha vil komme!

bilde
Bertha sourcecode

Konklusjon

Dette har vært et usedvanlig spennende skoleprosjekt. Vi har lært utrolig mye de siste 14 dagene. Både når det kommer til elektronikk, programmering og egne fysiske grenser.

Det er nesten med en litt tom følelse i kroppen at vi nå har skrevet denne rapporten og innsett at vi med det har satt et punktum for alt vi har gjort de siste ukene. Eller gjør vi det?

Vi føler oss rimlig sikre på at dette ikke er det siste vi gjør med roboten, dette prosjektet har virkelig satt i gang intressen for roboter og sensorer hos alle fire. Man skal heller ikke utelukke at det kommer til å komme flere rapporter eller arbeidslogger hvor vi har jobbet med roboter.

Det store håpet er at vi om noen år kan være med i robocup i Danmark med en egen robot, noe vi har stor tro på at vi kan klare hvis vi fortsetter å jobbe og lære.

bilde
bilde
This is a project by Geir, Jonas, Lars Petter og Magnus from the "Superonsdag" group, Østfold University College :: Design by Magnus :: photos by Lars Petter.