UCL-Embedded Control- MJJ Salatgriber
by Gloomdk in Workshop > 3D Printing
241 Views, 1 Favorites, 0 Comments
UCL-Embedded Control- MJJ Salatgriber
Velkommen til MJJ - "Tomorrows Tools".
Vi er 3 automationsteknolog studerende på UCL. I vores fag embedded control har vi fået 30 dage til at lave en griber til icebergsalat, her er vores produkt.
Supplies
3D printer
Lode koble
Motor servo motor: Tower Pro MG995(High speed)/MG996R(High tourge), med skruer og 4 punkts vinge
Sensor 1, afstandsmåler VL53LOX V2, kigger på tværs af griber skålen for at se salathoved.
Sensor 2, strømmåler, INA219, måler ampere forbrug på servomotor for at detektere at der ikke klippes i noget for hårdt.
Sensor 3, potmeter i servomotor, indikerer om griberen er åben/lukket, feedback til UR om griber tilstand
Styring, ESP 32, C++.
Ledninger
1 stk. M6 6mm undersænket bolt
1 stk. M6 30mm wingebolt
3D Print
Griberens krop er 3D printet.
Vi har printet vores dele på en Prusa3 MK3S.
Tegningerne er lavet i Fusion 360 og slicet med PrusaSlicer 2.3.3.
0,15mm Quality med 15% infill og support everywhere.
Det tager omkring 50 timer at printe alle delene.
Delene der skal printes er:
Main Body
Dette er griberens primære del, det er på denne afstandssensoren, servo motoren, strømmåleren og ESPen er monteret.
Lyn kobling-han
På main delen er der en fordybning som denne del kan monteres i, vær opmærksom på formen, den kan kun monteres på én måde.
Wing
Denne del er den roterende vinge der går ind og klipper hovedet af. På undersiden er der en udskæring til montering af kniven.
Kniv
Udskiftelig kniv til montering på wing.
Programmering
Kredsløbet er opbygget ved hjælp af samlemuffer, som sidder på bagsiden af griberens søjle. Komponenterne som er forbundet via samlemuffer er alle forsynet med 5V/GND spænding. Det er vigtigt at holde fælles ground mellem alle komponenter. Afstandsmåleren, U3 VL53LOX, er monteret på forsiden af søjlen, og vil ved en given afstand afgive et digitalt input til ESP'en, så griberen lukker. Servomotoren, U2, Tower Pro MG995/996, modtager PWM output signal fra ESP, GPIO 2. Strømmåleren, U1 INA219 sidder i seriel forbindelse for at måle, hvilken strømstyrke der bliver sendt til motoren. Ved for høj strømstyrke afbrydes motoren. SDA og SCL muliggør master/slave kommunikation på flere enheder via I2C bus med kun to pins på ESP'en. Fra ESP'en går der SDA og SCL signal til SDA- og SCL-pins på INA219 og VL53LOX.
Sekvensbeskrivelse (se ovenstående billede)
- Griber står standby (hvileposition).
- UR starter på signalet DO8=TRUE, hvilket giver besked til ESP om at køre programmet.
- Griberen åbner når programmet starter.
- ESP’en kigger på afstandssensoren, hvorvidt den er ved hovedet.
- UR får digital input DI9 (TRUE). ESP sætter griber til at lukke, når griberen er i position under salathovedet.
- Potentiometer drejer. Når griber er lukket (ses på potmeter/analog indgang AI2) som sætter UR DO9=TRUE. ESP’en ved at griber er lukket, derfor sætter DI9=FALSE, nu ved UR at salathovedet er høstet.
- DO8=False, så den stopper med at lave scanningen på marken. Der bliver nu kørt til aflevering af icebergsalathovedet.
- Griber kører tilbage til marken og sætter DO8=TRUE.
- Der vil være konstant overvågning på strømmen, så servomotoren ikke staller, dette sker når >1200 mA, sætter en udgang så der udløses alarm.
Dette projekt kan optimeres ved at udnytte at ESP'en har to kerner, dermed kan programkoden opdeles på mere end én kerne og udnytte multitasking i sin eksekvering af programmet. Vi vedlægger en skabelon med koden til multitasking, så man selv kan sætte op, hvad man vil køre og på hvilken kerne.
Koden til griberen kan læses i filen: "CodeTilGripper.ino".
Samling
Lodning:
Det er generelt vigtigt, at lodningerne er af god kvalitet, det vil sige at lodningen får form som et "cirkustelt" med en konveks form fremfor en boble. Vi har i testfasen oplevet at ledninger og chippen på ESP'en blev meget varme grundet lodninger af svingende kvalitet.
Modificering af servomotor:
Servomotoren skal modificeres inden den kan bruges, der skal på loddes tre ledninger på den, to af dem er, for at strømmåleren kan sættes i serie forbindelse med motoren og den sidste er til potentiometeret. Husk at tage billeder af motoren før du splitter den ad, da den kan afvige fra vores.
A. Start med at splitte motoren ad, motor og printplade skal helt ud af huset.
B. Et hul skal bores i dækslet, så ledningerne kommer ud af huset i bunden i stedet for siden.
C. En ledning påloddes potentiometerets midterste pin, signalet skal videre til robotten.
D/E. Den ene ledning fra printboardet til motoren skal erstattes af to ender til strømmåleren. Den ene ende skal være på printboardet og den anden på motoren. Begge ledninger føres ud.
F. Gearet i motoren skal samles igen, se på billede oven over (eller dit eget) for hvordan det skal samles.
Der er muligvis en tap på den største skive, der skal flugte med potentiometerets ydre grænser i forhold til de andre tandhjul, vær opmærksom på det.
G. I dækslet til gearet er der en ring der fikserer tandhjulet, den skal være der.
H. Låget sættes på og skruer skrues i.
Samling af griberkroppen:
I bunden af den cylinderformede mainbody (billede 2 og 3) monteres servomotoren, dette gøres ved at de seks ledninger føres ud gennem hullet lidt under midten på siden af cylinderen. Servomotorens messingtandhjul skal vende nedad (billede 3). De sorte ledninger føres ud til det grønne stik der er på loddet INA219 ved Vin+ og Vin- ved R100-chippen.
I hullet i vingen monteres det sorte gevind. Vingen påsættes i bunden af cylinderen, så mainbody og vinge tilsammen danner form som en skål delt i to halvdele (billede 4).
Vinge og mainbody skal nu fastgøres. Dette sker, ved at tage den lille propel og placere den i bunden af cylinderen for vingen og mainbody. Skrue nr. 1 skal nu skrues op gennem gevindet i propellen, så denne får fat i gevindet på servomotoren (billede 5).
Lynkoblingen (billede 6) monteres i toppen af mainbody (billede 2), så pentagontappen føres ned i fordybningen. Lynkoblingen fastgøres ved hjælp af skrue nr. 3 (billede 7), så denne får fat i gevindet i lynkoblingen, som sidder på indvendig side af cylinderen.
Kniven monteres i bunden af vingen med skrue nr. 2 (billede 7), denne monteres så disse går i hak med tapperne, kniven skal være helt i plan med bunden af vingen efter endt montering (billede 8).
Fortrådning.
Ledninger fortrådes i forhold til step 2, programmering.
Afslutning
Vi har undersøgt muligheden for at udvikle en prototype til en griber, som kan løfte et icebergsalat ved hjælp af en ESP, sensorer og en motor. Vi har gennem brainstorming formået at skabe en prototype, der ved montering på en UR robot og C++ programmering i arduino er i stand til at gribe et icebergsalat ved hjælp af en servomotor. Vi har samtidig programmeret både en afstandssensor og en strømsensor, der kan give feedback omkring korrekt position til klipning af salatstokken. Ved videre udvikling vil det være relevant at se på muligheder for at tilføje ekstra komponenter og vision, for eksempel ved at arbejde med de to kerner på ESP'en.
Vi har haft en del problemer med ESP 32, så hvis man ikke skal bruge multikerne processing kan man med fordel skifte controller, det kunne eksempelvis være en Arduino mini.