Jack Hansdampf
/
MiniRoboter4DOF
Diff: main.cpp
- Revision:
- 0:d7ad0916857f
- Child:
- 1:f3303de6e057
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Jan 17 15:55:17 2022 +0000 @@ -0,0 +1,242 @@ +/* mbed Microcontroller Library + * Copyright (c) 2019 ARM Limited + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" +#include "LCD.h" + +lcd mylcd; + +PwmOut greifer(PC_7); +PwmOut heber(PB_3); +PwmOut schwenker(PB_4); +PwmOut dreher(PB_9); + +PortOut saft(PortC,0b01100110); +AnalogIn poti(PA_0); + +int main() +{ + float wg,wg0=140,wg1=100,ag; + float wh,wh0=90,wh1=90,ah; + float ws,ws0=90,ws1=90,as; + float wd,wd0=90,wd1=90,ad; + int schritte=50; + saft=0b01100110; + greifer.period_ms(20); + heber.period_ms(20); + schwenker.period_ms(20); + dreher.period_ms(20); + HAL_Delay(100); + greifer=0.025+(wg0/180.0)*0.1; + heber=0.025+(wh0/180.0)*0.1; + schwenker=0.025+(ws0/180.0)*0.1; + dreher=0.025+(wd0/180.0)*0.1; + mylcd.clear(); + + while (true) { + mylcd.cursorpos(0); + mylcd.printf("Schritt 0"); + schritte=50; + wg1=180; + wh1=90; + ws1=70; + wd1=150; + ag=(wg1-wg0)/schritte; + ah=(wh1-wh0)/schritte; + as=(ws1-ws0)/schritte; + ad=(wd1-wd0)/schritte; + for (float i=0;i<schritte;i++) + { + wg=ag*i+wg0; + wh=ah*i+wh0; + ws=as*i+ws0; + wd=ad*i+wd0; + greifer=0.025+(wg/180.0)*0.1; + heber=0.025+(wh/180.0)*0.1; + schwenker=0.025+(ws/180.0)*0.1; + dreher=0.025+(wd/180.0)*0.1; + HAL_Delay(20); + } + + wg0=wg1; + wh0=wh1; + ws0=ws1; + wd0=wd1; + + mylcd.cursorpos(0); + mylcd.printf("Schritt 1"); + + wg1=100; + wh1=110; + ws1=70; + wd1=150; + ag=(wg1-wg0)/schritte; + ah=(wh1-wh0)/schritte; + as=(ws1-ws0)/schritte; + ad=(wd1-wd0)/schritte; + for (float i=0;i<schritte;i++) + { + wg=ag*i+wg0; + wh=ah*i+wh0; + ws=as*i+ws0; + wd=ad*i+wd0; + greifer=0.025+(wg/180.0)*0.1; + heber=0.025+(wh/180.0)*0.1; + schwenker=0.025+(ws/180.0)*0.1; + dreher=0.025+(wd/180.0)*0.1; + HAL_Delay(20); + } + + wg0=wg1; + wh0=wh1; + ws0=ws1; + wd0=wd1; + + mylcd.cursorpos(0); + mylcd.printf("Schritt 2"); + + wg1=180; + wh1=110; + ws1=70; + wd1=150; + ag=(wg1-wg0)/schritte; + ah=(wh1-wh0)/schritte; + as=(ws1-ws0)/schritte; + ad=(wd1-wd0)/schritte; + for (float i=0;i<schritte;i++) + { + wg=ag*i+wg0; + wh=ah*i+wh0; + ws=as*i+ws0; + wd=ad*i+wd0; + greifer=0.025+(wg/180.0)*0.1; + heber=0.025+(wh/180.0)*0.1; + schwenker=0.025+(ws/180.0)*0.1; + dreher=0.025+(wd/180.0)*0.1; + HAL_Delay(20); + } + + wg0=wg1; + wh0=wh1; + ws0=ws1; + wd0=wd1; + + mylcd.cursorpos(0); + mylcd.printf("Schritt 3"); + + wg1=180; + wh1=60; + ws1=100; + wd1=150; + ag=(wg1-wg0)/schritte; + ah=(wh1-wh0)/schritte; + as=(ws1-ws0)/schritte; + ad=(wd1-wd0)/schritte; + for (float i=0;i<schritte;i++) + { + wg=ag*i+wg0; + wh=ah*i+wh0; + ws=as*i+ws0; + wd=ad*i+wd0; + greifer=0.025+(wg/180.0)*0.1; + heber=0.025+(wh/180.0)*0.1; + schwenker=0.025+(ws/180.0)*0.1; + dreher=0.025+(wd/180.0)*0.1; + HAL_Delay(20); + } + + wg0=wg1; + wh0=wh1; + ws0=ws1; + wd0=wd1; + + mylcd.cursorpos(0); + mylcd.printf("Schritt 4"); + + wg1=180; + wh1=30; + ws1=100; + wd1=30; + ag=(wg1-wg0)/schritte; + ah=(wh1-wh0)/schritte; + as=(ws1-ws0)/schritte; + ad=(wd1-wd0)/schritte; + for (float i=0;i<schritte;i++) + { + wg=ag*i+wg0; + wh=ah*i+wh0; + ws=as*i+ws0; + wd=ad*i+wd0; + greifer=0.025+(wg/180.0)*0.1; + heber=0.025+(wh/180.0)*0.1; + schwenker=0.025+(ws/180.0)*0.1; + dreher=0.025+(wd/180.0)*0.1; + HAL_Delay(20); + } + + wg0=wg1; + wh0=wh1; + ws0=ws1; + wd0=wd1; + + mylcd.cursorpos(0); + mylcd.printf("Schritt 5"); + + wg1=120; + wh1=30; + ws1=100; + wd1=30; + ag=(wg1-wg0)/schritte; + ah=(wh1-wh0)/schritte; + as=(ws1-ws0)/schritte; + ad=(wd1-wd0)/schritte; + for (float i=0;i<schritte;i++) + { + wg=ag*i+wg0; + wh=ah*i+wh0; + ws=as*i+ws0; + wd=ad*i+wd0; + greifer=0.025+(wg/180.0)*0.1; + heber=0.025+(wh/180.0)*0.1; + schwenker=0.025+(ws/180.0)*0.1; + dreher=0.025+(wd/180.0)*0.1; + HAL_Delay(20); + } + + wg0=wg1; + wh0=wh1; + ws0=ws1; + wd0=wd1; + + mylcd.cursorpos(0); + mylcd.printf("Schritt 6"); + + wg1=100; + wh1=60; + ws1=100; + wd1=30; + ag=(wg1-wg0)/schritte; + ah=(wh1-wh0)/schritte; + as=(ws1-ws0)/schritte; + ad=(wd1-wd0)/schritte; + for (float i=0;i<schritte;i++) + { + wg=ag*i+wg0; + wh=ah*i+wh0; + ws=as*i+ws0; + wd=ad*i+wd0; + greifer=0.025+(wg/180.0)*0.1; + heber=0.025+(wh/180.0)*0.1; + schwenker=0.025+(ws/180.0)*0.1; + dreher=0.025+(wd/180.0)*0.1; + HAL_Delay(20); + } + + wg0=wg1; + wh0=wh1; + ws0=ws1; + wd0=wd1; + } +}