Robot basebil

Ole Caprani og Lasse Deleuran
Institut for Datalogi, Aarhus Universitet,
ocaprani@cs.au.dk

Sidst opdateret 29.9.12.

Bygning af robot basebil

Med udgangspunkt udelukkende i delene i LEGO MINDSTORMS Education NXT Base Set 9797:
har folkene bag nxtprograms.com udviklet Express-bot, som er fotobaserede byggevejledninger for en robot base med udvidelser.

Start med at bygge robot basen, dog uden det foreslåede støttehjul, men i stedet med det viste støttehjul med de to små sorte tandhjul. Støttehjulet med de to små tandhjul er valgt, fordi overfladen på FLL banen er lidt ru og ujævn. Samtidig syntes et støttehjul med små hjul at give en mere præcis kørsel end et med store hjul:

For at ledningerne ikke skal stritte ud og genere, kan det være bekvemt at fastgøre ledningerne bagtil med to styk Technic koblingsdel 1x3 type 5 sort:
Samtidig er de to styk Technic koblingsdel 1x2 type 5 blå:
som i Express-bot fastholder støttehjulet, erstattet af 2 sorte 4 aksler, så støttehjulet sidder bedre fast. Endelig er der monteret en kofanger bagpå. Så kan bilen bakke op mod en kant og rette op. Hvis det er nødvendigt.
Til løsning af flere af opgaverne skal bevægelige værktøjer bruges. I en robot base med udvidelser er det vist, hvordan en sådan værktøjsmotor kan monteres:
Værktøjsmotoren skal forbindes til port A. Monter dernæst en 5'er aksel i motorhjulet og på 5'er akslen en 10'er aksel ved at bruge en Technic koblingsdel vinkel 6 sort:
De bevægelige værktøjer kan så monteres på 10'er akslen:
I en robot base med udvidelser er der vist andre måder at bruge den vertikale motor med monterede værktøjer. Bemærk, at den forreste "kofanger" er fjernet. De letter monteringen af skubbeværktøjer.

Programmering af robot basebil

1. Programmering af kørsel med basebil

Prøv nu at se, hvordan robot basebilen kører ved at bruge et simpelt program med blot et kør ikon:
I konfigureringspanelet for kør ikonen ses, at bilen er sat til at køre fremad en rotation af hjulet med motorstyrke 75:
Eksperimenter med ændringer i konfigureringspanelet, så bilen bakker, kører længere end en rotation, kører hurtigere, eller drejer. Prøv også med at sætte flere kør ikoner efter hinanden og få på den måde robotbilen til at køre en rute på FLL banen. F. eks. fra basen og hen til opgaven Indkøb (hylder) - rød rute:
og tilbage til basen igen. Det er svært at få robotbilen til at køre lige, ikke? Prøv med forskellige motorstyrker og undersøg, hvornår robotbilen kører mest lige.

2. Programmering af værktøjsmotor

Prøv nu at undersøge, hvordan værktøjsmotoren på robot basebilen bevæger sig og dermed hvordan "pinden" bevæger sig. Brug et simpelt program med blot et kør ikon:
I konfigureringspanelet for kør ikonen ses, at værktøjsmotoren er sat til at dreje 60 grader med motorstyrke 50 og Retning er sat til at være pilen som peger opad:
Prøv med konfigureringspanelets indstillinger og find ud af, hvilken vej motoren drejer. Eksperimenter med ændringer i konfigureringspanelet for at finde ud af, hvordan pindens bevægelse kan styres. Hvad sker f.eks. hvis pinden forhindres i at dreje det gradantal, som er angivet i konfigurationspanelet?

Anvendelse af brugerdefinerede programmeringsblokke

Når robotbilen skal programmeres til at bevæge sig rundt på banen, kan det være bekvemt at kunne angive strækninger i cm og ikke i rotationer eller grader. Det ser også ud som om det at dreje robotbilen 90 grader skal bruges tit. Derfor kan det være nyttigt en gang for alle at finde ud af, hvor mange grader hjulene skal dreje, for at robotbilen drejer 90 grader. Detaljerne i hvordan robotbilen programmeres til at køre f.eks. 20 cm frem, dreje 90 grader mod uret, osv, kan skjules i såkaldte brugerdefinerede programmeringsblokke. For at vise hvordan brugerdefinerede programmeringsblokke kan bruges i forbindelse med robot basebilen, er der lavet fire programmeringsblokke: frem, drejModUr90, drejMedUr90 og bak. De fire blokke er brugt i et program, kaldet fremOgTilbage, for at illustrere, hvordan de kan bruges til at få robotbilen til at bevæge sig - som det ses på videoen:
Få nu programmet fremOgTilbage til at styre den nybyggede robot basebil:
  1. Hent programmet fremOgTilbage.rbtx
  2. Start programmeringsværktøjet
  3. Gå ind i menuen Rediger:
    og vælg Håndter profiler:
    under Navn skrives et selvvalgt navn, f.eks. FLL2012. Tryk på Opret og en profil med navnet FLL2012 er oprettet.
  4. Vælg den oprettede profil:
    og åben programmet fremOgTilbage.rbtx i fil-menuen. Efter lidt tid åbnes programmet og det vises med navnet fremOgTilbage.
Overfør programmet til NXT på den nybyggede robot basebil for at se hvordan bilen opfører sig.

Klik på blokken frem og se konfigureringspanelet for frem. Her kan den strækning, som skal køres, angives i cm og motorstyrken angives som et tal imellem 0 og 100:

Prøv også at klikke på de andre blokke og se hvad der skal angives. Eksperimenter med forskellige værdier og se hvordan robotbilen opfører sig.

Prøv nu at eksperimentere med programmer. hvor de fire blokke bruges:

  1. Åben et nyt program:
  2. Tryk på Min palette:
  3. Få de brugerdefinerede blokke frem ved at klikke på den øverste grønne firkant:
  4. Vælg f.eks. blokken frem og anbring blokken i programmet.
Prøv nu at køre korte og lange strækninger og mål efter om robotbilen nu også kører det antal cm, som gives til blokkene. Prøv at lave ruter, som får robotbilen forskellige steder hen på robotbanen.

Ret i brugerdefinerede programmeringsblokke

Dobbeltklik på blokken frem og se, hvad der skjuler sig inde i den brugerdefinerede programmeringsblok:
I det første ikon, matematik ikonen, ganges antal cm, f.eks. 20, med 21,3 ( som kan ses i konfigureringspanelet for matematik ikonen). Resultatet 426 føres via datakablet til antal grader hjulet sættes til at dreje i kør ikonen. Faktoren 21,3 er fundet ved at lade hjulet kører 360 grader, måle strækningen til 16,9 cm og så udregne 360/16,9 grader/cm = 21,3 grader/cm. Hvis faktoren skal ændres, så det passer med den nybyggede basebil, kan det ændres her i konfigureringspanelet for matematik ikonen. Husk at gemme den ændrede udgave af frem:
hvis konstanten 21,3 ændres.

Ikonen bak er næsten som frem, kør ikonet er dog sat til at køre den modsatte retning. Hvis bilen ikke bakker helt det antal cm som angives, skal der ændres i konstanten i matematik ikonen i bak.

Inde i drejMedUr90 er der blot et ikon:

og i konfigurationspanelet for kør ikonen er antal grader sat til 260 og den lille hvide markering under Styring er ført helt ud til venstre, så robotbilen drejer med uret om et centrum som ligger midt imellem hjulene:
Konstanten er fundet ved at lade robotbilen dreje fire gange 90 grader med uret styret af et program med kun drejMedUr90 og så se om bilen nåede en hel omgang rundt:
På videoen ses, at bilen drejer en smule mere end 360 grader, så konstanten skulle måske rettes til 255. Det er altså denne konstant, som skal ændres, hvis den byggede robotbil ikke drejer 90 grader. Husk at gemme den ændrede udgave af drejMedUr90.