Obligatorisk oppgave nr. 4
Denne oppgaven består av 4 valgfrie deloppgaver. Man velger en av oppgavene
Hva som skal leveres
Fysisk demonstrasjon for din gruppelærer av følgende:
- Arduino som styrer en servo (Arduino student kit) slik at en lysfølsom transistor (Arduino student kit) følger bevegelsen til sola eller en annen lyskilde (Demo mot bevegelig lyskilde på gruppeøvelsen evt. video)
eller
- Kode i Python på PC som styrer en 2-akse Dynamixel-basert robotarm. Begge aksene skal rotere samtidig. (Må gjøres og demonstreres på gruppeøvelsen)
eller
- Kode i Arduino som styrer en enkel pneumatisk hopperobot. (Må gjøres og demonstreres på gruppeøvelsen)
eller
- Bygge og kjøre en DC motor (Må gjøres og demonstreres på gruppeøvelsen)
eller
- Delta i loddeprosjekt og demonstrere for gruppelærer (Må gjøres og demonstreres på gruppeøvelsen)
I alle deloppgavene kan man, hvis man vil, 3D-printe deler for å få bedre mekaniske løsninger. 3D printer vil være tilgjengelig på gruppeøvelsene og i Sonen
Regler for gjennomføring av obligatoriske oppgaver
Leveringsfrist
- 25/4 kl. 23.59
Sikkerhet, regler og ressurser
- Vårt labreglement / sikkerhet på labben
- Kjøp av Arduino student kit
- Nettressurser som medfølger Arduino student kit. Arduino Online Learning Content, (hvis man har lyst på mye mer nyttig info og eksempler)
- Komme i gang med UIO GPT-4
- Hvordan unngå å ødelegge Arduino
Oppgave - valg 1
Lysfølger
Den medfølgende fototransistoren er mest følsom for lys som kommer inn vinkelrett på toppplaten. Vil man ha enda bedre retningsfølsomhet kan man evt. lime sort tape rundt sidene slik at man får en trakt/skylapper. Denne effekten kan man bruke til å lage en liten robotarm som følger solen eller en annen lyskilde som beveger seg. Man kan enkelt montere fototransistoren til servoen i Adruino kittet slik som vist i figurene under. Servoen roterer til vinkel gitt av gjennomsnittsverdien på et PWM signal (analogWrite). Sort ledning er GND, rød ledning er 5V (power) og hvit ledning er PWM.
Man kan koble den lysfølsomme transistoren til ledninger slik som vist i figurene under. Hvis man presser med fingeren slik som vist, vil pinnene få relativt god kontakt med ledningene.



For å få servoen til å følge en lyskilde må man lese av fototransistorens verdi. Man kan for eksempel la servoen søke ved å øke vinkelen så lenge lysstyrken øker, og når styrken minker - stopper man og går tilbake. På denne måten oscillerer servoens vinkel rundt den vinkelen som gir størst lysstyrke. Det kan være gunstig å inkludere noe delay i koden.
Arduinos fototransistor - datablad. 1kOhm resistor i serie er bra. Lang pinne kobles mot Vdd.
- NB: med kun en sensor må servoen oscillere rundt målvinkel. Hvis dere vil slippe dette, kan dere låne en ekstra sensor (hør med grupelærer) slik at dere leser av to sensorer som har en liten vinkel mellom seg. Dette gir enklere kontroll, men mer å koble opp.
Denne oppgaven kan evt. gjøres hjemme og demonstreres ved video
Oppgave - valg 2
Dynamixel-basert robotarm
I figuren under ser vi de komponentene som skal til for å lage en 2-akse robotarm. Dynamixel-sevoene er her montert inn i en 3D printet fot. Hvis dere har lyst og tid kan dere også 3D printe holdere og fiksturer, men det er også greit å bruke de ferdige brakettene som ligger på labben til å lage en minimalistisk robot arm.
De komponeneten som må brukes er:
- En power regulator, kobles til 12V batterieliminator
- En USB dongle, pass på at bryteren peker vekk fra USB porten
- 2 stk AX12 eller AX18 servoer
- 3-pins kabler som kobler sammen alle komponentene over. Vilkårlig rekkefølge

Servoene styres fra din egen Python kode (spør GPT-4) gjennom serieport. For å få en servo til å rotere til en gitt vinkel med en gitt hastighet
- Send først over hastigheten (1-1023) til "Moving Speed"-register i servoen, adressen til dette registeret er 32
- Send så over den nye vinkelen (0-1023) tilsvarer 0-300 grader, til "Goal Position"-registeret i servoen, adresse er 30
I det øyeblikket den nye vinkelen er sendt over til registeret vil servoen gå til den nye vinkelen med spesifisert hastighet.
For å spesifisere hvilken servo dere vil snakke med, må dere FØRST sette inn en unik ID i hver servo - typisk verdi 1-10. Dette gjør dere ved å
- først sørge for at KUN en servo er koblet til 3-pins bussen. Første gang dere bruker en servo har den ID=1, og baud rate = 1000000 som default,
- bruke programmet DYNAMIXEL Wizard 2.0 til å sette ID til en unik verdi. Fint å teste servoen samtidig fra programmet. Vi bruker position mode ikke wheel mode
Under ser vi DynamixelWizard. Først klikker man options, i vinduet som kommer opp setter man parametre for skanning slik som vist med din aktuelle serieport valgt, så skanner man, og så finner programmet servoen og du kan sette ID slik som indikert. Her kan man også teste å bevege servoen til en ny posisjon



Oppgave - valg 3
Bygging av pneumatisk hopperobot. (Kan bli en omfattende oppgave)
I denne oppgaven lager dere en robot med 1 eller 2 føtter. Hver fot kan typisk ha 2 ledd som aktueres av pneumatiske sylindere. Føttene og evt. kropp vil bestå av karbonfiberrør som dere kapper til selv med baufil i kapperigg, se figur.

Dere 3D designer og printer ut ledd og sylinder-fester selv. Disse limes fast i karbonfiberrørene med epoxy. For inspirasjon vil det ligge endel tilsvarende roboter fra gamle IN5590 på assembler.

Roboten trenger ikke å balansere selv, da den kan festes til en stang som roterer slik at roboten går i en sirkelbevegelse, se film under
Roboten styres fra Arduino med binære signaler. Hver sylinder styres inn og ut med verdiene 0/1 (0V/5V). Driver (solenoidventil med transistor) er ferdig koblet opp.
Tilgjengelige rørdiametre er 12mm, 14mm og 20mm.
Festeflens - hull avstand er 47.2mm, antall hull er 6, hull diameter er 3mm


Er dere flinke i CAD design, kan man jo også lage overarmen på T-800 Terminator i plast, aktuert av 2 tykke pneumatiske sylindre. Humanoide roboter er jo populære for tiden

Oppgave - valg 4
"Do it yourself" DC motor
I denne oppgaven vikler dere en spole av kobbertråd ved hjelp av en elektrisk drill, og bygger en DC motor slik som vist i denne videoen.
Dere kan bruke ferdig 3D printede deler slik som vist i figuren under.

Her vises permanentmagnet (nedodynium) med blå farge, spole med gul farge og aksling med rød farge. Kommutatoren er ikke vist på dette bildet. Dere kan tilføre strøm ved å manuelt holde to ledninger fra spenningskilden intil kommutatoren.
Før dere kobler til spenning må dere måle motstanden i spolen med multimeteret og beregne strømmen som vil gå. Strømmen bør ikke være større en 2 -3 ampere pga. varmeutvikling og smelting av PLA plasten i spolen. Ha dette i tankene når dere velger antall vindinger.
Dere må vikle deres egne spoler og montere deres eget oppsett.





NB1 : Når dere vikler spolen, pass på å vikle veldig forsiktig så ikke den 3-delte spoleholderen demonteres, da får dere ikke på den tråden dere har viklet og må starte å vikle ny tråd på nytt
NB2 : Når dere har tredd tråd i kommutatoren må dere slipe vekk lakken med sandpapir. Lakken er en isolator.
NB3 : For å få hastighet må dere holde ledningene veldig forsiktig intill kommutatoren slik at den ikke bremses.
(Husk at mangetene har en retning) :)
Oppgave - valg 5
Loddeprosjekt
Har du lyst å få praktisk erfaring med lodding. Da kan du velge å delta i et fellers loddeprosjekt.

I denne oppgaven deltar du på et praktisk loddekurs hvor du lærer grunnleggende loddeteknikk gjennom å lodde en enkel krets på et Printed Circuit Board (PCB). Kretskortene inkluderer både through-hole (THT) og surface-mounted (SMD) komponenter, og gir mulighet for varierende vanskelighetsgrad. Du kan velge mellom flere ulike kretskort, og når loddingen er ferdig, får du ta med deg det du har laget hjem.
Kurset krever ingen forkunnskaper i lodding. Alt nødvendig utstyr vil være tilgjengelig på stedet. For å få godkjent må du møte opp, delta aktivt i kurset, og vise fram et fungerende ferdigloddet kretskort til gruppelærer.
Tid og sted annonseres snart.
For påmelding, bruk dette nettskjemaet her: https://forms.gle/kKZeVbMcY5Dj4i9S8
Ved eventuelle spørsmål kontakt Filip på e-post: filipar@uio.no
