Programmering av hundematar

Framgangsmåte
I denne oppgåva skal du programmere ein hundematar. Hundemataren skal føre mat frå ein behaldar til ei matskål ved hjelp av ein mateskrue.
Du skal programmere ein Arduino slik at mateskruen matar fram ei gitt mengde hundefôr, basert på tilrådingar frå hundematleverandøren.
Vel deg ein type hund og notér alder og vekt. (Du kan t.d. ta utgangspunkt i gjennomsnittsverdiane for ein vaksen hund av ein bestemd rase.)
Undersøk kor mykje mat denne hunden skal ha, og kor mange gonger om dagen han skal matast. Slik informasjon finn du ofte på baksida av hundefôr-emballasje. Alternativt kan du gjere eit søk på internett.
Programmer hundemataren slik at han matar fram hundemat. Vi tilrår at du startar med at motoren roterer 2 rundar. Du bør òg vurdere om hundemataren skal gå litt tilbake igjen etter at rotasjon er gjennomført. I så fall må mataren rotere litt lenger enn 2 omdreiingar. Du kan til dømes legge inn ein rotasjon på 800 gradar, og deretter lar du mataren gå 80 gradar tilbake. Då får du totalt 720 gradar rotasjon, det vil seie to heile omdreiingar.
Mål ut med ei vekt kor mykje fôr som kjem fram kvar gong knappen blir trykt. (Det kan finnast små variasjonar. Ta derfor fleire prøvar og rekn ut gjennomsnittet.)
Juster programmet slik at hundemataren gir rett mengde fôr til "din" hund.
Tekniske komponentar
Til denne oppgåva treng du nokre tekniske komponentar i tillegg til ein eigenprodusert hundematar:
1 Arduino R3
1 TB6600 MicroStep-kontrollar
1 NEMA17 steppermotor
1 trykknapp
leidningar og koplingar
ekstern straumforsyning (12–36 volt, inntil 2,0 ampere)
eventuelt: 2 trykknappar, éin som aukar fôrmengda med 10 %, éin som reduserer mengda med 10 %
Viss du bruker andre komponentar enn dei som er lista opp her, må du kanskje gjere endringar i programkode, koplingar og på teikningar / ferdig produkt.
Kopling
Bruk gjerne koplingsforslaget nedanfor som utgangspunkt.
Arduino R3 | TB6600 Stepperdrivar | 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 ein del instillinger for straumstyrke og antal steg han skal dele opp kvar rotasjon i. Desse innstillingane justerer du ved hjelp av mikrobrytarar som skal stå på anten ON eller OFF.
Mikrosteg (switch 1–3)
Drivaren kan dele opp motorrotasjonen i små rørsler (med lengde oppgitt som sirkelgrader). Drivaren bestemmer då kor langt motoren skal bevege seg kvar gong motoren får eit signal.
Dess større mikrosteg, dess færre steg per sekund og dess jamnare og rolegare gange. Lågare mikrosteg krev mange små stopp og start og gir ein urolegare og meir oppstykka rotasjon. Vi tilrår at du startar med 1/16 (3200 steg/rev) for god balanse mellom mjukleik og fart.
SW1 | SW2 | SW3 | Mikrosteg (Steg/Rev) | Kommentar |
|---|---|---|---|---|
| OFF | OFF | ON | 1/16 (3200) | glatt og presis motorrørsle |
| ON | OFF | ON | 1/32 (6400) | svært mjuk, men treigare motorrørsle |
Straumstyrke (switch 4–6)
På drivaren må du òg stille inn straumstyrken motoren skal ha tilgang til. Sjekk kor mykje straum den eksterne straumkjelda kan levere, og gå aldri over denne.
SW4 | SW5 | SW6 | Straum (Peak) | Straum (RMS) |
|---|---|---|---|---|
| ON | ON | OFF | 2,0 A | 1,4 A |
Vi tilrår at du set straumstyrken til 2 ampere. Det passar bra for mange NEMA17-steppermotorar, som vanlegvis toler 1,5–2,0 ampere (sjekk datablad for nøyaktig grense). RMS-straum er den gjennomsnittlege straumen som motoren får kontinuerleg, mens Peak er den maksimale straumstyrken motoren toler i korte periodar.
Oppdatering med rett mengde steg
Sjekk innstillingane på TB6600-kontrollaren og bruk dei til å oppdatere programmet ditt. Døme ved 1/16 (3200 steg per omdreiing):
1 grad = steg
400 gradar steg
40 gradar steg
Her må altså motoren rotere 3556 steg og så gå 356 steg tilbake.

Bruk av kunstig intelligens (KI)
Når du skal programmere kva mataren skal gjere, kan du bruke ein praterobot som digital hjelpar. Fortel prateroboten kva rolle han skal ha, kva du vil at han skal gjere, og kva du ønsker å oppnå.
Forslag til instruks til praterobot
Du skal hjelpe meg å programmere ein Arduino R3 som står montert i ein hundematdispenser. Arduinoen er kopla til ein TB6600 stepperdrivar og ein NEMA17 steppermotor.
Arduinoen blir styrt av ein 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 gradar og returnere 80 gradar slik at total rørsle blir 720 gradar. Rotasjonen skal skje med låg fart. Etter at matinga er utført, skal motoren ti gonger rotere 40 gradar fram og tilbake i raskt tempo.
Kan du gi meg eit forslag til programkode?
Dømekode
Her finn du eit døme på ein generert kode. Han kan krevje ein del tilpassingar ut frå kva komponentar og tilkoplingar du bruker.
Bygg din eigen hundematar
Under Relatert innhald finn du alle filene og teikningane du treng for å bygge din eigen hundematar. Sidan det er snakk om mykje platearbeid, må du kanskje tilpasse produktet noko ut frå dei maskinene du har tilgjengelege på verkstaden.
Relatert innhald
Vil du bygge ein automatisert hundematar? Her får du tips og råd.

