Programmering av hundemater

Framgangsmåte
I denne oppgava skal du programmere en hundemater. Hundemateren skal føre mat fra en beholder til en matskål ved hjelp av en mateskrue.
Du skal programmere en Arduino slik at mateskruen mater fram en gitt mengde hundefôr, basert på anbefalinger fra hundematleverandøren.
Velg deg en type hund og noter alder og vekt. (Du kan f.eks. ta utgangspunkt i gjennomsnittsverdiene for en voksen hund av en bestemt rase.)
Undersøk hvor mye mat denne hunden skal ha, og hvor mange ganger om dagen den skal mates. Slik informasjon finner du ofte på baksida av hundefôr-emballasje. Alternativt kan du gjøre et søk på internett.
Programmer hundemateren slik at den mater fram hundemat. Vi anbefaler at du starter med at motoren roterer 2 runder. Du bør også vurdere om hundemateren skal gå litt tilbake igjen etter at rotasjon er gjennomført. I så fall må materen rotere litt lenger enn 2 omdreininger. Du kan for eksempel legge inn 800 grader rotasjon, og deretter lar du materen gå 80 grader tilbake. Da får du totalt 720 grader rotasjon, det vil si to hele omdreininger.
Mål ut med ei vekt hvor mye fôr som kommer fram hver gang knappen trykkes. (Det kan forekomme små variasjoner. Ta derfor flere prøver og regn ut gjennomsnittet.)
Juster programmet slik at hundemateren gir riktig mengde fôr til "din" hund.
Tekniske komponenter
Til denne oppgava trenger du noen tekniske komponenter i tillegg til en egenprodusert hundemater:
1 Arduino R3
1 TB6600 MicroStep-kontroller
1 NEMA17 steppermotor
1 trykknapp
ledninger og koplinger
ekstern strømforsyning (12–36 volt, inntil 2,0 ampere)
eventuelt: 2 trykknapper, én som øker fôrmengden med 10 %, én som reduserer mengden med 10 %
Hvis du bruker andre komponenter enn de som er lista opp her, må du kanskje gjøre endringer i programkode, koplinger og på tegninger / ferdig produkt.
Kopling
Bruk gjerne koplingsforslaget nedenfor som utgangspunkt.
Arduino R3 | TB6600 Stepperdriver | Kommentar |
|---|---|---|
| D3 | PUL+ | pulsutgang |
| D4 | DIR+ | retning |
| GND | PUL og DIR | felles jording |
| D2 | trykknapp (mot GND, bruk INPUT_PULLUP) | |
| VCC | + på ekstern stpenningsforsyning | |
| GND | på ekstern stpenningsforsyning |
Innstillinger TB6600
TB6600 har en del instillinger for strømstyrke og antall steg den skal dele opp hver rotasjon i. Disse innstillingene justerer du ved hjelp av mikrobrytere som skal stå på enten ON eller OFF.
Mikrosteg (switch 1–3)
Driveren kan dele opp motorrotasjonen i små bevegelser (med lengde oppgitt som sirkelgrader). Driveren bestemmer da hvor langt motoren skal bevege seg hver gang motoren mottar et signal.
Dess større mikrosteg, dess færre steg per sekund og dess jevnere og roligere gange. Lavere mikrosteg krever mange små stopp og start og gir en uroligere og mer oppstykka rotasjon. Vi anbefaler at du starter med 1/16 (3200 steg/rev) for god balanse mellom mykhet og hastighet.
SW1 | SW2 | SW3 | Mikrosteg (Steg/Rev) | Kommentar |
|---|---|---|---|---|
| OFF | OFF | ON | 1/16 (3200) | glatt og presis motorbevegelse |
| ON | OFF | ON | 1/32 (6400) | svært myk, men tregere motorbevegelse |
Strømstyrke (switch 4–6)
På driveren må du også stille inn strømstyrken motoren skal ha tilgang til. Sjekk hvor mye strøm den eksterne strømkilden kan levere, og gå aldri over denne.
SW4 | SW5 | SW6 | Strøm (Peak) | Strøm (RMS) |
|---|---|---|---|---|
| ON | ON | OFF | 2,0 A | 1,4 A |
Vi anbefaler at du setter strømstyrken til 2 ampere. Dette passer bra for mange NEMA17-steppermotorer, som vanligvis tåler 1,5–2,0 ampere (sjekk datablad for nøyaktig grense). RMS-strøm er den gjennomsnittlige strømmen som motoren mottar kontinuerlig, mens Peak er den maksimale strømstyrken motoren tåler i korte perioder.
Oppdatering med riktig antall steg
Sjekk innstillingene på TB6600-kontrolleren og bruk dem til å oppdatere programmet ditt. Eksempel ved 1/16 (3200 steg per omdreining):
1 grad = steg
400 grader steg
40 grader steg
Her må altså motoren rotere 3556 steg og så returnere 356 steg.

Bruk av kunstig intelligens (KI)
Når du skal programmere hva materen skal gjøre, kan du bruke en praterobot som digital hjelper. Fortell prateroboten hvilken rolle den skal ha, hva du vil at den skal gjøre, og hva du ønsker å oppnå.
Forslag til instruks til praterobot
Du skal hjelpe meg å programmere en Arduino R3 som står montert i en hundematdispenser. Arduinoen er kopla til en TB6600 stepperdriver og en NEMA17 steppermotor.
Arduinoen styres av en trykknapp kopla til jord via Input_Pullup.
Arduino D2 er kopla til trykknapp via Input_Pullup.
Arduino D3 er kopla til TB6600 PUL+.
Arduino D4 er kopla til TB6600 DIR+.
Arduino GND er kopla til TB6600 PUL og DIR.
Motoren skal rotere 800 grader og returnere 80 grader slik at total bevegelse blir 720 grader. Rotasjonen skal skje med lav hastighet. Etter at matinga er utført, skal motoren ti ganger rotere 40 grader fram og tilbake i raskt tempo.
Kan du gi meg et forslag til programkode?
Eksempelkode
Her finner du et eksempel på en generert kode. Den kan kreve en del tilpasninger ut fra hvilke komponenter og tilkoplinger du bruker.
Bygg din egen hundemater
Under Relatert innhold finner du alle filene og tegningene du trenger for å bygge din egen hundemater. Siden det er snakk om mye platearbeid, må du kanskje tilpasse produktet noe ut fra de maskinene du har tilgjengelige på verkstedet.
Relatert innhold
Vil du bygge en automatisert hundemater? Her får du tips og råd.

