GripGrab
Hej og velkommen til vores projekt. Vi er tre studerende, som har fået til opgave at lave en prototype af en griber. Opgaven går ud på at griberen skal samle et Iceberg salathoved op og aflevere det. I vores projektbeskrivelse skal griberen monteres på en Farmbot. Dog har vi fundet ud af, at Farmbotten kun kan løfte 1kg. Derfor skal vi tage udgangspunkt i at Farmbotten kan løfte griberen vi producerer. Yderlig har vi fået en ekstra opgave om at lave en lynkobling til griberen.
Vi startede med at brainstorme, med ord og skitser, hvordan vi ville lave vores griber. Vi valgte en kloakrenser/skovl som vores udgangspunkt. Også har vi videreudviklet på det. Først med en 3D printet model og senere hen i laserskåret model.
Vi vil gennemgå vores skitser, diagrammer og vores program. Her vil vi gennemgå dem ned i detaljer og forklare hvordan vi har gjort.
Konstruktion
Vores griber ser sådan her ud, hvor vi op i toppen har et kontrolrum med vores motor og styreenhed. Derudover har vi skovlen, hvor salathoved skal ligge. Her har vi designet, at griberen har klør, hvor den eventuelt kan skære salaten. Ude på spidserne af kløerne er de flade, som gør at der eventuelt kan monteres knivblade på, så griberen bedre kan skære salatens rod over. Oppe i kontrolrummet er der også gjort klar til at det eventuelt kan lukkes af så det kan være støv og vandtæt.
Specifikationer:
Bredde - 28 cm.
Højde åben - 31 cm.
Højde lukket - 36 cm.
Gribe kapacitet - 18,5 cm.
Vægt - 1,4 kg.
3D Tegning
Vores griber er tegnet i fusion 360, hvor alle delene er lavet i.
Downloads
Laserskæring
Vi har laserskåret de fleste dele, på den måde har vi hurtigere kunne få delene og se om der skulle ændres lidt i modellen. Det har sparet os en del tid, da det kun tager ca. 1,5 time at skære det ift. hvis vi skulle 3D printet det.
Der skal bruges 2 plader af størrelsen 600*450mm.
Downloads
3D Printning
Vi har tre dele som vi har 3D printet. Her har vi brugt PLA.
- Aksen til motor ( 100 % infill )
- Holder til endestop ( 30 % infill )
- Lynkobling til UR
Fordi vi har 3D printet disse dele er, at de skal kunne klare mere eller er lidt specielt i designet.
Komponenter
Samling Af Konstruktion
El-diagram
Vi har lavet en skitse over vores elektriske opstilling, så det er nemmere, at danne sig et overblik over vores ledningsforbindelser. Oppe i vores materialeliste, kan der ses hvilke elektriske komponenter vi har anvendt.
I vores kreds har vi to forskellige forsyninger, hvor den ene er styrekredsen (5 VDC), og den anden er til motoren (24 VDC). Her skal man være sikker på at hele kredsen har fælles nul/ground.
Forbindelse til esp32 cam pins:
- Signal til robot. GPIO 1
- Signal fra robot. GPIO 2
- Signal til robot. GPIO 3
- Endestop åben. GPIO 4
- Motor Driver pin IN1. GPIO 12
- Motor Driver pin IN2. GPIO 13
- Afstandssensor pin SDA. GPIO 14
- Afstandssensor pin SCL. GPIO 15
- Endestop lukket. GPIO 16
Motor Driver - L298N
Tilslutning til vores motor driver bruger vi kun halvdelen af den, da vi kun bruger en motor. Her styre vi retning fra vores esp32. Vores motor er forsynet med 24 VDC, da den ellers ikke har nok moment til at åbne/lukke. Her kan der eventuelt bruges en anden motor med mere moment, så den eventuelt også kan skære/klippe.
- Motor til Output A
- Forsyning på Power terminalerne. Være sikker på de monteres rigtig ift. styrespændingen og motorspændingen.
- Sæt jumper på A så den er Enable.
Programmering
Vores program er programmeret i Arduino IDE, som vi har overført til vores esp32.
Først går vi ind og henter biblioteker fra Arduinos bibliotek og definer to af vores pin til kommunikation med afstand sensoren. Samtidig definer vi også vores ind- og udgange på esp32, så de er låst til den komponent vi bruger. Til sidst opretter vi nogle variabler som vi kan overføre data over i fra vores defineret ind- og udgange.
I vores setup, starter vi med at åbne vores forbindelse til Arduinos monitor. Herefter opsættes SDA og SCL til busforbindelse, så de er defineret til den forbindelse. Nu definer vi vores pins, om de skal være ind- eller udgange.
Vores if funktion bruger vi til at se om vi har forbindelse til vores afstandssensor. Hvis den ikke har, skriver den beskeden i vores monitor.
Vores loop er her hvor vores handleringer er, og her hvor vi skal have vores betingelser eksekveret. Vi starter med at overføre værdier fra vores indgange over i vores variabler, og får vist hvad vores afstandssensor måler i vores monitor.
Efterfølgende har vi to if funktioner, hvor vi overføre endestoppenes værdier til de to output som er til robotten.
For at få griberen til at lukket sammen, har vi tre betingelser der skal opfyldes. Afstandssensoren skal være indenfor den angivet værdi, den skal få besked om at den er det rigtig sted, samt at griberabenState er 0. Hvis det er opfyldt, sætter vi Bryder til 1 og går ned i vores funktion MotorGrib.
Nede i funktion MotorGrib har vi et while loop, som den går ind i, ved at Bryder er 1, som vi lige har sat til 1. Nu kører motoren og derved lukker sammen, indtil griberlukketState bliver 0. Her sætter den Bryder til 0 og stopper motoren.
For at få griberen til at åbne igen, har vi to betingelser. Den få igen besked om, at den er det rigtige sted, samt griberlukketState er 0. Her sætter vi igen Bryder til 1 og går ned i funktionen MotorSlip. Funktionen er den samme som ved MotorGrib, men motor køre nu den anden vej.
Downloads
Præsentation
Konklusion
Vi fik udleveret et projekt, hvor vi skulle lave en griber til plukning af Iceberg salat. Den skulle have en feedback sensor, skulle styres via en ESP32 og have en minimum kapacitet på 15 cm.
VI fandt hurtigt vores grundprincip for griberen, gennem idegenerering, hvor vi skrev det ned på posteres og så skulle man præsentere sine ideer via ord eller skitser og til sidst skulle vi så i fælleskab vælge den vi syntes, havde størst potentiale. Gennem projektet har vi udviklet griberen på forskellige måde. F.eks. gik vi fra en 3D printet model til at laserskære, for at spare tid og for at vi hurtigere kunne vurdere, hvad vi ville eller skulle ændre. Vi ændrede også selve konstruktionen, både pga. vi ikke kunne skære samme former som 3D printeren og fordi vi fandt en mere robust konstruktion, også fik vi lavet et styrehus til motoren og ESP’en. Motoren har voldt os en del problemer. Programmeringsdelen, har vi ændret på flere gange, fordi Stepper motor og DC motor ikke skal programmeres på samme måde. Vi skiftede, pga. stepper motoren ikke havde nok moment til at åbne/lukke griberen. ESP’en har også voldt nogle problemer. Det har den gjort, da vi ikke har arbejdet med ESP`en før og generelt ikke har arbejdet med Arduino før. Der er flere pins på ESP`en som virker på en bestemt måde. Nogle er låst til en vist formål. Den ESP vi har arbejdet med, er mere bygget til kamera opsætning og ikke så meget mere. I det her projekt, ville det have været bedre med en større model af ESP eller en Arduino nano. Det ville have gjort det mere optimalt, da der ville være mulighed for udvidelse eller at vi kunne have haft flere funktioner med.