diff --git a/app/src/lib/models.ts b/app/src/lib/models.ts index 4590350..8636a71 100644 --- a/app/src/lib/models.ts +++ b/app/src/lib/models.ts @@ -169,3 +169,15 @@ export type CameraSettings = { vflip: boolean; hmirror: boolean; }; + +export type servo = { + channel: number; + name: string; + direction: number; + angle: number; + min_pwm: number; + max_pwm: number; + min_angle: number; + max_angle: number; + center_angle: number; +}; \ No newline at end of file diff --git a/app/src/routes/menu.svelte b/app/src/routes/menu.svelte index 3733d8b..34ea787 100644 --- a/app/src/routes/menu.svelte +++ b/app/src/routes/menu.svelte @@ -7,6 +7,7 @@ import Devices from '~icons/mdi/devices' import Camera from '~icons/mdi/camera-outline'; import Rotate3d from '~icons/mdi/rotate-3d'; + import MotorOutline from '~icons/mdi/motor-outline'; import Health from '~icons/mdi/stethoscope'; import Folder from '~icons/mdi/folder-outline'; import Update from '~icons/mdi/reload'; @@ -65,6 +66,12 @@ href: '/peripherals/camera', feature: $page.data.features.camera, }, + { + title: 'Servo', + icon: MotorOutline, + href: '/peripherals/servo', + feature: true, + }, { title: 'IMU', icon: Rotate3d, diff --git a/app/src/routes/peripherals/servo/+page.svelte b/app/src/routes/peripherals/servo/+page.svelte new file mode 100644 index 0000000..19d5ba5 --- /dev/null +++ b/app/src/routes/peripherals/servo/+page.svelte @@ -0,0 +1,7 @@ + + +
+ +
diff --git a/app/src/routes/peripherals/servo/+page.ts b/app/src/routes/peripherals/servo/+page.ts new file mode 100644 index 0000000..715aed7 --- /dev/null +++ b/app/src/routes/peripherals/servo/+page.ts @@ -0,0 +1,7 @@ +import type { PageLoad } from './$types'; + +export const load = (async () => { + return { + title: 'Servo' + }; +}) satisfies PageLoad; diff --git a/app/src/routes/peripherals/servo/servo.svelte b/app/src/routes/peripherals/servo/servo.svelte new file mode 100644 index 0000000..4914de6 --- /dev/null +++ b/app/src/routes/peripherals/servo/servo.svelte @@ -0,0 +1,20 @@ + + +
+

{ servo.name }

+
+ Is inverted +
+
+ + + Min ($100) + $500 + $1000 + Max ($1500) +
+ +
\ No newline at end of file diff --git a/app/src/routes/peripherals/servo/servos.svelte b/app/src/routes/peripherals/servo/servos.svelte new file mode 100644 index 0000000..4036221 --- /dev/null +++ b/app/src/routes/peripherals/servo/servos.svelte @@ -0,0 +1,39 @@ + + + + + Servo + + {#each servos as servo} + +
+ {/each} +
\ No newline at end of file