1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hockel-AFMotor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
main.ts 6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
hockel Отправлено 5 лет назад 30aa2ef
enum LINE {
//% block="M1"
1,
//% block="M2"
2,
//% block="M3"
3,
//% block="M4"
4
}
enum DIR {
//% block="前进"
FORWARD,
//% block="后退"
BACKWARD
}
enum COM {
//% block="M1M2"
1,
//% block="M3M4"
2
}
enum MODEL {
//% block="全步进(单线圈)"
SINGLE,
//% block="全步进(双线圈)"
DOUBLE,
//% block="半步进"
INTERLEAVE,
//% block="微步进"
MICROSTEP
}
//% color="#3264C8" iconWidth=50 iconHeight=40
namespace AFMOTOR {
//% block="设置电机 [motor] 方向 [dir]速度 [speed]" blockType="command"
//% motor.shadow="dropdown" motor.options="LINE" BUTTON.defl="LINE.M1"
//% dir.shadow="dropdown" dir.options="DIR" dir.defl="DIR.前进"
//% speed.shadow="range" speed.params.min=0 speed.params.max=255 speed.defl=200
export function AFMotorInit(parameter: any, block: any) {
let Motor = parameter.motor.code;
let Dir = parameter.dir.code;
let Speed = parameter.speed.code;
Generator.addInclude('AFMOTOR_INIT', '#include <AFMotor.h>');
Generator.addObject(`AFMOTORobj${Motor}`, `AF_DCMotor`, `motor${Motor}(${Motor});`,true);
Generator.addCode(`motor${Motor}.setSpeed(${Speed});\n\tmotor${Motor}.run(${Dir});`);
}
//% block="停止电机 [motor]" blockType="command"
//% motor.shadow="dropdown" motor.options="LINE" BUTTON.defl="LINE.M1"
export function AFMotorStop(parameter: any, block: any) {
let Motor = parameter.motor.code;
Generator.addCode(`motor${Motor}.setSpeed(0);\n\t motor${Motor}.run(RELEASE);`);
}
//% block="设置步进电机步数 [s1] 端口[c1] 运转模式[m1]" blockType="command"
//% s1.shadow="number" s1.defl="2048"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
//% m1.shadow="dropdown" m1.options="MODEL"
export function AFMotorStepperinit(parameter: any, block: any) {
let S1 = parameter.s1.code;
let C1 = parameter.c1.code;
let M1 = parameter.m1.code;
Generator.addInclude('AFMOTOR_INIT', '#include <AFMotor.h>');
Generator.addInclude('STEPPER_INIT', '#include <AccelStepper.h>');
Generator.addObject(`Af_Stepper${C1}`, `AF_Stepper`, `motor${C1}(${S1}, ${C1});`);
Generator.addObject(`forwardstep${C1}`, `void`, `forwardstep${C1}() {\n\tmotor${C1}.onestep(FORWARD, ${M1});\n\t}`);
Generator.addObject(`backwardstep${C1}`, `void`, `backwardstep${C1}() {\n\tmotor${C1}.onestep(BACKWARD, ${M1});\n\t}`);
Generator.addObject(`Accel_Stepper${C1}`, `AccelStepper`, `stepper${C1}(forwardstep${C1}, backwardstep${C1});`);
}
//% block="设置步进电机[c1]最大速度 [speed]" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
//% speed.shadow="number" speed.defl="500"
export function MaxSpeedset(parameter: any, block: any) {
let C1 = parameter.c1.code;
let S1 = parameter.speed.code;
Generator.addCode(`stepper${C1}.setMaxSpeed(${S1}); `);
}
//% block="设置电机[c1]运行速度 [speed]" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
//% speed.shadow="number" speed.defl="300"
export function SpeedInit(parameter: any, block: any) {
let C1 = parameter.c1.code;
let S1 = parameter.speed.code;
Generator.addCode(`stepper${C1}.setSpeed(${S1});`);
}
//% block="步进电机[c1]加速度[a1]" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
//% a1.shadow="number" a1.defl="50"
export function stepperAcceleration(parameter: any, block: any) {
let C1 = parameter.c1.code;
let A1 = parameter.a1.code;
Generator.addCode(`stepper${C1}.setAcceleration(${A1});`);
}
//% block="步进电机[c1]移动目标相对位置[p1]" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
//% p1.shadow="number" p1.defl="100"
export function stepperMove(parameter: any, block: any) {
let C1 = parameter.c1.code;
let P1 = parameter.p1.code;
Generator.addCode(`stepper${C1}.move(${P1});`);
}
//% block="步进电机[c1]移动目标绝对位置[p1]" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
//% p1.shadow="number" p1.defl="100"
export function stepperMoveTo(parameter: any, block: any) {
let C1 = parameter.c1.code;
let P1 = parameter.p1.code;
Generator.addCode(`stepper${C1}.moveTo(${P1});`);
}
//% block="获取步进电机[c1]运行当前位置" blockType="reporter"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
export function stepperCurrentPosition(parameter: any, block: any) {
let C1 = parameter.c1.code;
Generator.addCode(`stepper${C1}.currentPosition()`);
}
//% block="获取步进电机[c1]运行目标位置" blockType="reporter"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
export function steppertargetPosition(parameter: any, block: any) {
let C1 = parameter.c1.code;
Generator.addCode(`stepper${C1}.targetPosition()`);
}
//% block="步进电机[c1]运行(匀速模式)" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
export function stepperStart(parameter: any, block: any) {
let C1 = parameter.c1.code;
Generator.addCode(`stepper${C1}.runSpeed();`);
}
//% block="步进电机[c1]运行(先加速后减速模式)" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
export function stepperRunStart(parameter: any, block: any) {
let C1 = parameter.c1.code;
Generator.addCode(`stepper${C1}.run();`);
}
//% block="停止步进电机[c1]" blockType="command"
//% c1.shadow="dropdown" c1.options="COM" c1.defl="COM.M1M2"
export function stepperStop(parameter: any, block: any) {
let C1 = parameter.c1.code;
Generator.addCode(`stepper${C1}.stop();`);
}
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/hockel-AFMotor.git
git@gitlife.ru:oschina-mirror/hockel-AFMotor.git
oschina-mirror
hockel-AFMotor
hockel-AFMotor
master