🗿 Adds i2c scanner and page
This commit is contained in:
@@ -134,4 +134,10 @@ export type IMU = {
|
|||||||
altitude: number;
|
altitude: number;
|
||||||
bmp_temp: number;
|
bmp_temp: number;
|
||||||
pressure: number;
|
pressure: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface I2CDevice {
|
||||||
|
address: number;
|
||||||
|
part_number: string;
|
||||||
|
name: string;
|
||||||
};
|
};
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import logo from '$lib/assets/logo512.png';
|
import logo from '$lib/assets/logo512.png';
|
||||||
import MdiGithub from '~icons/mdi/github';
|
import MdiGithub from '~icons/mdi/github';
|
||||||
|
import MdiConnection from '~icons/mdi/connection';
|
||||||
import Users from '~icons/mdi/users';
|
import Users from '~icons/mdi/users';
|
||||||
import Settings from '~icons/mdi/settings';
|
import Settings from '~icons/mdi/settings';
|
||||||
import MdiController from '~icons/mdi/controller';
|
import MdiController from '~icons/mdi/controller';
|
||||||
@@ -59,6 +60,12 @@
|
|||||||
icon: Devices,
|
icon: Devices,
|
||||||
feature: true,
|
feature: true,
|
||||||
submenu: [
|
submenu: [
|
||||||
|
{
|
||||||
|
title: 'I2C',
|
||||||
|
icon: MdiConnection,
|
||||||
|
href: '/peripherals/i2c',
|
||||||
|
feature: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: 'Camera',
|
title: 'Camera',
|
||||||
icon: Camera,
|
icon: Camera,
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import I2C from './i2c.svelte';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="mx-0 my-1 flex flex-col space-y-4 sm:mx-8 sm:my-8">
|
||||||
|
<I2C />
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import type { PageLoad } from './$types';
|
||||||
|
|
||||||
|
export const load = (async () => {
|
||||||
|
return {
|
||||||
|
title: 'I2C'
|
||||||
|
};
|
||||||
|
}) satisfies PageLoad;
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import SettingsCard from "$lib/components/SettingsCard.svelte";
|
||||||
|
import MdiConnection from '~icons/mdi/connection';
|
||||||
|
import { onDestroy, onMount } from "svelte";
|
||||||
|
import { socket } from "$lib/stores";
|
||||||
|
import type { I2CDevice } from "$lib/types/models";
|
||||||
|
|
||||||
|
const i2cDevices = [
|
||||||
|
{address:30, part_number: "HMC5883", name: "3-Axis Digital Compass/Magnetometer IC"},
|
||||||
|
{address:64, part_number: "PCA9685", name: "16-channel PWM driver default address"},
|
||||||
|
{address:72, part_number: "ADS1115", name: "4-channel 16-bit ADC"},
|
||||||
|
{address:104, part_number: "MPU6050", name: "Six-Axis (Gyro + Accelerometer) MEMS MotionTracking™ Devices"},
|
||||||
|
{address:119, part_number: "BMP085", name: "Temp/Barometric"},
|
||||||
|
];
|
||||||
|
|
||||||
|
let active_devices:I2CDevice[] = [];
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
socket.on('i2cScan', handleScan);
|
||||||
|
socket.sendEvent('i2cScan', "");
|
||||||
|
})
|
||||||
|
|
||||||
|
onDestroy(() => {
|
||||||
|
socket.off('i2cScan', handleScan);
|
||||||
|
})
|
||||||
|
|
||||||
|
const handleScan = (data: any) => {
|
||||||
|
active_devices = data.addresses.map((address:number) => i2cDevices.find(device => device.address === address))
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<SettingsCard collapsible={false}>
|
||||||
|
<MdiConnection slot="icon" class="lex-shrink-0 mr-2 h-6 w-6 self-end" />
|
||||||
|
<span slot="title">I<sup>2</sup>C</span>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
{#each active_devices as device }
|
||||||
|
<div>[{device.address.toString(16)}] {device.part_number} - {device.name}</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</SettingsCard>
|
||||||
@@ -89,6 +89,7 @@ lib_deps =
|
|||||||
adafruit/Adafruit PWM Servo Driver Library@^2.4.1
|
adafruit/Adafruit PWM Servo Driver Library@^2.4.1
|
||||||
adafruit/Adafruit ST7735 and ST7789 Library@^1.10.4
|
adafruit/Adafruit ST7735 and ST7789 Library@^1.10.4
|
||||||
fastled/FastLED@^3.7.0
|
fastled/FastLED@^3.7.0
|
||||||
|
adafruit/Adafruit ADS1X15@^2.5.0
|
||||||
SPI
|
SPI
|
||||||
extra_scripts =
|
extra_scripts =
|
||||||
pre:scripts/pre_build.py
|
pre:scripts/pre_build.py
|
||||||
|
|||||||
Reference in New Issue
Block a user