diff --git a/components/README.md b/components/README.md index 1e73887..3f99f96 100644 --- a/components/README.md +++ b/components/README.md @@ -13,28 +13,28 @@ Hver fysisk komponenttype får sit eget stabile id og en mappe med: ## Registrerede komponenter -| Komponent | Type | Interface | Produkt-id | Sketches | -| --- | --- | --- | --- | --- | -| [LCD1602 med PCF8574T](lcd1602-i2c-pcf8574/README.md) | Output/display | I²C | – | [`lcd1602_i2c_demo`](../sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo) | -| [RGB LED](keyestudio-ks0032-rgb-led/README.md) | Output/lys | Digital/PWM | KS0032 | – | -| [Mikrofon](keyestudio-ks0035-microphone/README.md) | Input/lyd | Analog | KS0035 | – | -| [IR-modtager](keyestudio-ks0026-ir-receiver/README.md) | Input/IR | Digital | KS0026 | – | -| [Analog temperatursensor](keyestudio-ks0033-thermistor/README.md) | Input/temperatur | Analog | KS0033 | – | -| [DS18B20-temperatursensor](keyestudio-ks0023-ds18b20/README.md) | Input/temperatur | 1-Wire | KS0023 | – | -| [Tiltsensor](keyestudio-ks0025-tilt/README.md) | Input/orientering | Digital | KS0025 | – | -| [Aktiv buzzer](keyestudio-ks0018-active-buzzer/README.md) | Output/lyd | Digital | KS0018 | – | -| [Laser-emitter](keyes-ke2054-laser-emitter/README.md) | Output/lys | Digital | KE2054 | – | -| [Analog rotationssensor](keyestudio-ks0014-analog-rotation/README.md) | Input/position | Analog | KS0014 | – | -| [Trykknap](keyestudio-ks0029-push-button/README.md) | Input/kontakt | Digital | KS0029 | – | -| [IR-sender](keyestudio-ks0027-ir-transmitter/README.md) | Output/IR | Digital/PWM | KS0027 | – | -| [Passiv buzzer](keyestudio-ks0019-passive-buzzer/README.md) | Output/lyd | Digital/tone | KS0019 | – | -| [Knock-sensor](keyestudio-ks0024-knock/README.md) | Input/slag | Digital | KS0024 | – | -| [Reed switch](keyestudio-ks0038-reed-switch/README.md) | Input/magnet | Digital | KS0038 | – | -| [Pulssensor](keyestudio-ks0015-pulse-rate/README.md) | Input/optisk | Analog | KS0015 | – | -| [Vibrationssensor](keyestudio-ks0037-vibration/README.md) | Input/vibration | Digital | KS0037 | – | -| [Fotomodstandssensor](keyestudio-ks0028-photocell/README.md) | Input/lys | Analog | KS0028 | – | -| [LM35-temperatursensor](keyestudio-ks0022-lm35/README.md) | Input/temperatur | Analog | KS0022 | – | -| [Collision-/endestopsensor](keyestudio-ks0021-collision/README.md) | Input/kontakt | Digital | KS0021 | – | +| Foto | Komponent | Type | Interface | Produkt-id | Sketches | +| --- | --- | --- | --- | --- | --- | +| – | [LCD1602 med PCF8574T](lcd1602-i2c-pcf8574/README.md) | Output/display | I²C | – | [`lcd1602_i2c_demo`](../sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo) | +| RGB LED | [RGB LED](keyestudio-ks0032-rgb-led/README.md) | Output/lys | Digital/PWM | KS0032 | – | +| Mikrofon | [Mikrofon](keyestudio-ks0035-microphone/README.md) | Input/lyd | Analog | KS0035 | – | +| IR-modtager | [IR-modtager](keyestudio-ks0026-ir-receiver/README.md) | Input/IR | Digital | KS0026 | – | +| Analog temperatursensor | [Analog temperatursensor](keyestudio-ks0033-thermistor/README.md) | Input/temperatur | Analog | KS0033 | – | +| DS18B20-temperatursensor | [DS18B20-temperatursensor](keyestudio-ks0023-ds18b20/README.md) | Input/temperatur | 1-Wire | KS0023 | – | +| Tiltsensor | [Tiltsensor](keyestudio-ks0025-tilt/README.md) | Input/orientering | Digital | KS0025 | – | +| Aktiv buzzer | [Aktiv buzzer](keyestudio-ks0018-active-buzzer/README.md) | Output/lyd | Digital | KS0018 | – | +| Laser-emitter | [Laser-emitter](keyes-ke2054-laser-emitter/README.md) | Output/lys | Digital | KE2054 | – | +| Analog rotationssensor | [Analog rotationssensor](keyestudio-ks0014-analog-rotation/README.md) | Input/position | Analog | KS0014 | – | +| Trykknap | [Trykknap](keyestudio-ks0029-push-button/README.md) | Input/kontakt | Digital | KS0029 | – | +| IR-sender | [IR-sender](keyestudio-ks0027-ir-transmitter/README.md) | Output/IR | Digital/PWM | KS0027 | – | +| Passiv buzzer | [Passiv buzzer](keyestudio-ks0019-passive-buzzer/README.md) | Output/lyd | Digital/tone | KS0019 | – | +| Knock-sensor | [Knock-sensor](keyestudio-ks0024-knock/README.md) | Input/slag | Digital | KS0024 | – | +| Reed switch | [Reed switch](keyestudio-ks0038-reed-switch/README.md) | Input/magnet | Digital | KS0038 | – | +| Pulssensor | [Pulssensor](keyestudio-ks0015-pulse-rate/README.md) | Input/optisk | Analog | KS0015 | – | +| Vibrationssensor | [Vibrationssensor](keyestudio-ks0037-vibration/README.md) | Input/vibration | Digital | KS0037 | – | +| Fotomodstandssensor | [Fotomodstandssensor](keyestudio-ks0028-photocell/README.md) | Input/lys | Analog | KS0028 | – | +| LM35-temperatursensor | [LM35-temperatursensor](keyestudio-ks0022-lm35/README.md) | Input/temperatur | Analog | KS0022 | – | +| Collision-/endestopsensor | [Collision-/endestopsensor](keyestudio-ks0021-collision/README.md) | Input/kontakt | Digital | KS0021 | – | ## Navngivning diff --git a/components/keyes-ke2054-laser-emitter/README.md b/components/keyes-ke2054-laser-emitter/README.md index 64a114a..253d292 100644 --- a/components/keyes-ke2054-laser-emitter/README.md +++ b/components/keyes-ke2054-laser-emitter/README.md @@ -1,5 +1,7 @@ # Keyes KE2054 laser-emittermodul +![Keyes KE2054 laser-emittermodul](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyes-ke2054-laser-emitter/image.webp b/components/keyes-ke2054-laser-emitter/image.webp new file mode 100644 index 0000000..078f508 Binary files /dev/null and b/components/keyes-ke2054-laser-emitter/image.webp differ diff --git a/components/keyes-ke2054-laser-emitter/thumbnail.webp b/components/keyes-ke2054-laser-emitter/thumbnail.webp new file mode 100644 index 0000000..d51e86b Binary files /dev/null and b/components/keyes-ke2054-laser-emitter/thumbnail.webp differ diff --git a/components/keyestudio-ks0014-analog-rotation/README.md b/components/keyestudio-ks0014-analog-rotation/README.md index c634323..1eb3457 100644 --- a/components/keyestudio-ks0014-analog-rotation/README.md +++ b/components/keyestudio-ks0014-analog-rotation/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0014 analog rotationssensor +![Keyestudio KS0014 analog rotationssensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0014-analog-rotation/image.webp b/components/keyestudio-ks0014-analog-rotation/image.webp new file mode 100644 index 0000000..3896122 Binary files /dev/null and b/components/keyestudio-ks0014-analog-rotation/image.webp differ diff --git a/components/keyestudio-ks0014-analog-rotation/thumbnail.webp b/components/keyestudio-ks0014-analog-rotation/thumbnail.webp new file mode 100644 index 0000000..31790bf Binary files /dev/null and b/components/keyestudio-ks0014-analog-rotation/thumbnail.webp differ diff --git a/components/keyestudio-ks0015-pulse-rate/README.md b/components/keyestudio-ks0015-pulse-rate/README.md index 6bfce3d..ef993dd 100644 --- a/components/keyestudio-ks0015-pulse-rate/README.md +++ b/components/keyestudio-ks0015-pulse-rate/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0015 pulssensor +![Keyestudio KS0015 pulssensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0015-pulse-rate/image.webp b/components/keyestudio-ks0015-pulse-rate/image.webp new file mode 100644 index 0000000..7551fbc Binary files /dev/null and b/components/keyestudio-ks0015-pulse-rate/image.webp differ diff --git a/components/keyestudio-ks0015-pulse-rate/thumbnail.webp b/components/keyestudio-ks0015-pulse-rate/thumbnail.webp new file mode 100644 index 0000000..94c93b8 Binary files /dev/null and b/components/keyestudio-ks0015-pulse-rate/thumbnail.webp differ diff --git a/components/keyestudio-ks0018-active-buzzer/README.md b/components/keyestudio-ks0018-active-buzzer/README.md index 4a3a21e..881a44f 100644 --- a/components/keyestudio-ks0018-active-buzzer/README.md +++ b/components/keyestudio-ks0018-active-buzzer/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0018 aktiv buzzer +![Keyestudio KS0018 aktiv buzzer](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0018-active-buzzer/image.webp b/components/keyestudio-ks0018-active-buzzer/image.webp new file mode 100644 index 0000000..976f4e0 Binary files /dev/null and b/components/keyestudio-ks0018-active-buzzer/image.webp differ diff --git a/components/keyestudio-ks0018-active-buzzer/thumbnail.webp b/components/keyestudio-ks0018-active-buzzer/thumbnail.webp new file mode 100644 index 0000000..a873f7d Binary files /dev/null and b/components/keyestudio-ks0018-active-buzzer/thumbnail.webp differ diff --git a/components/keyestudio-ks0019-passive-buzzer/README.md b/components/keyestudio-ks0019-passive-buzzer/README.md index 67d7492..e4ea35c 100644 --- a/components/keyestudio-ks0019-passive-buzzer/README.md +++ b/components/keyestudio-ks0019-passive-buzzer/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0019 passiv buzzer +![Keyestudio KS0019 passiv buzzer](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0019-passive-buzzer/image.webp b/components/keyestudio-ks0019-passive-buzzer/image.webp new file mode 100644 index 0000000..7280400 Binary files /dev/null and b/components/keyestudio-ks0019-passive-buzzer/image.webp differ diff --git a/components/keyestudio-ks0019-passive-buzzer/thumbnail.webp b/components/keyestudio-ks0019-passive-buzzer/thumbnail.webp new file mode 100644 index 0000000..13ecbed Binary files /dev/null and b/components/keyestudio-ks0019-passive-buzzer/thumbnail.webp differ diff --git a/components/keyestudio-ks0021-collision/README.md b/components/keyestudio-ks0021-collision/README.md index 698f16e..88cddc0 100644 --- a/components/keyestudio-ks0021-collision/README.md +++ b/components/keyestudio-ks0021-collision/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0021 collision-/endestopsensor +![Keyestudio KS0021 collision-/endestopsensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0021-collision/image.webp b/components/keyestudio-ks0021-collision/image.webp new file mode 100644 index 0000000..dc62af8 Binary files /dev/null and b/components/keyestudio-ks0021-collision/image.webp differ diff --git a/components/keyestudio-ks0021-collision/thumbnail.webp b/components/keyestudio-ks0021-collision/thumbnail.webp new file mode 100644 index 0000000..29b3222 Binary files /dev/null and b/components/keyestudio-ks0021-collision/thumbnail.webp differ diff --git a/components/keyestudio-ks0022-lm35/README.md b/components/keyestudio-ks0022-lm35/README.md index f888350..2014e30 100644 --- a/components/keyestudio-ks0022-lm35/README.md +++ b/components/keyestudio-ks0022-lm35/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0022 LM35-temperatursensor +![Keyestudio KS0022 LM35-temperatursensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0022-lm35/image.webp b/components/keyestudio-ks0022-lm35/image.webp new file mode 100644 index 0000000..6bf5a38 Binary files /dev/null and b/components/keyestudio-ks0022-lm35/image.webp differ diff --git a/components/keyestudio-ks0022-lm35/thumbnail.webp b/components/keyestudio-ks0022-lm35/thumbnail.webp new file mode 100644 index 0000000..e34ba79 Binary files /dev/null and b/components/keyestudio-ks0022-lm35/thumbnail.webp differ diff --git a/components/keyestudio-ks0023-ds18b20/README.md b/components/keyestudio-ks0023-ds18b20/README.md index bd0ad2c..8d846c1 100644 --- a/components/keyestudio-ks0023-ds18b20/README.md +++ b/components/keyestudio-ks0023-ds18b20/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0023 DS18B20-temperatursensor +![Keyestudio KS0023 DS18B20-temperatursensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0023-ds18b20/image.webp b/components/keyestudio-ks0023-ds18b20/image.webp new file mode 100644 index 0000000..96afc57 Binary files /dev/null and b/components/keyestudio-ks0023-ds18b20/image.webp differ diff --git a/components/keyestudio-ks0023-ds18b20/thumbnail.webp b/components/keyestudio-ks0023-ds18b20/thumbnail.webp new file mode 100644 index 0000000..bdb147e Binary files /dev/null and b/components/keyestudio-ks0023-ds18b20/thumbnail.webp differ diff --git a/components/keyestudio-ks0024-knock/README.md b/components/keyestudio-ks0024-knock/README.md index eabe14e..5756ae0 100644 --- a/components/keyestudio-ks0024-knock/README.md +++ b/components/keyestudio-ks0024-knock/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0024 knock-sensor +![Keyestudio KS0024 knock-sensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0024-knock/image.webp b/components/keyestudio-ks0024-knock/image.webp new file mode 100644 index 0000000..e43960a Binary files /dev/null and b/components/keyestudio-ks0024-knock/image.webp differ diff --git a/components/keyestudio-ks0024-knock/thumbnail.webp b/components/keyestudio-ks0024-knock/thumbnail.webp new file mode 100644 index 0000000..f3a3b0e Binary files /dev/null and b/components/keyestudio-ks0024-knock/thumbnail.webp differ diff --git a/components/keyestudio-ks0025-tilt/README.md b/components/keyestudio-ks0025-tilt/README.md index 07aff6d..6a7de80 100644 --- a/components/keyestudio-ks0025-tilt/README.md +++ b/components/keyestudio-ks0025-tilt/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0025 digital tiltsensor +![Keyestudio KS0025 digital tiltsensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0025-tilt/image.webp b/components/keyestudio-ks0025-tilt/image.webp new file mode 100644 index 0000000..7fd9323 Binary files /dev/null and b/components/keyestudio-ks0025-tilt/image.webp differ diff --git a/components/keyestudio-ks0025-tilt/thumbnail.webp b/components/keyestudio-ks0025-tilt/thumbnail.webp new file mode 100644 index 0000000..1efa5f5 Binary files /dev/null and b/components/keyestudio-ks0025-tilt/thumbnail.webp differ diff --git a/components/keyestudio-ks0026-ir-receiver/README.md b/components/keyestudio-ks0026-ir-receiver/README.md index 6b92743..983e077 100644 --- a/components/keyestudio-ks0026-ir-receiver/README.md +++ b/components/keyestudio-ks0026-ir-receiver/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0026 digital IR-modtager +![Keyestudio KS0026 digital IR-modtager](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0026-ir-receiver/image.webp b/components/keyestudio-ks0026-ir-receiver/image.webp new file mode 100644 index 0000000..915ed41 Binary files /dev/null and b/components/keyestudio-ks0026-ir-receiver/image.webp differ diff --git a/components/keyestudio-ks0026-ir-receiver/thumbnail.webp b/components/keyestudio-ks0026-ir-receiver/thumbnail.webp new file mode 100644 index 0000000..5af2064 Binary files /dev/null and b/components/keyestudio-ks0026-ir-receiver/thumbnail.webp differ diff --git a/components/keyestudio-ks0027-ir-transmitter/README.md b/components/keyestudio-ks0027-ir-transmitter/README.md index db2e8dc..b949811 100644 --- a/components/keyestudio-ks0027-ir-transmitter/README.md +++ b/components/keyestudio-ks0027-ir-transmitter/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0027 digital IR-sender +![Keyestudio KS0027 digital IR-sender](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0027-ir-transmitter/image.webp b/components/keyestudio-ks0027-ir-transmitter/image.webp new file mode 100644 index 0000000..1e11e11 Binary files /dev/null and b/components/keyestudio-ks0027-ir-transmitter/image.webp differ diff --git a/components/keyestudio-ks0027-ir-transmitter/thumbnail.webp b/components/keyestudio-ks0027-ir-transmitter/thumbnail.webp new file mode 100644 index 0000000..9bacc93 Binary files /dev/null and b/components/keyestudio-ks0027-ir-transmitter/thumbnail.webp differ diff --git a/components/keyestudio-ks0028-photocell/README.md b/components/keyestudio-ks0028-photocell/README.md index c9acd82..5c93503 100644 --- a/components/keyestudio-ks0028-photocell/README.md +++ b/components/keyestudio-ks0028-photocell/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0028 fotomodstandssensor +![Keyestudio KS0028 fotomodstandssensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0028-photocell/image.webp b/components/keyestudio-ks0028-photocell/image.webp new file mode 100644 index 0000000..ec04d69 Binary files /dev/null and b/components/keyestudio-ks0028-photocell/image.webp differ diff --git a/components/keyestudio-ks0028-photocell/thumbnail.webp b/components/keyestudio-ks0028-photocell/thumbnail.webp new file mode 100644 index 0000000..aa57cc6 Binary files /dev/null and b/components/keyestudio-ks0028-photocell/thumbnail.webp differ diff --git a/components/keyestudio-ks0029-push-button/README.md b/components/keyestudio-ks0029-push-button/README.md index f7ed7d9..30bddbf 100644 --- a/components/keyestudio-ks0029-push-button/README.md +++ b/components/keyestudio-ks0029-push-button/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0029 trykknapmodul +![Keyestudio KS0029 trykknapmodul](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0029-push-button/image.webp b/components/keyestudio-ks0029-push-button/image.webp new file mode 100644 index 0000000..c6ee859 Binary files /dev/null and b/components/keyestudio-ks0029-push-button/image.webp differ diff --git a/components/keyestudio-ks0029-push-button/thumbnail.webp b/components/keyestudio-ks0029-push-button/thumbnail.webp new file mode 100644 index 0000000..5e3d1d8 Binary files /dev/null and b/components/keyestudio-ks0029-push-button/thumbnail.webp differ diff --git a/components/keyestudio-ks0032-rgb-led/README.md b/components/keyestudio-ks0032-rgb-led/README.md index 233117d..fad6e72 100644 --- a/components/keyestudio-ks0032-rgb-led/README.md +++ b/components/keyestudio-ks0032-rgb-led/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0032 RGB LED-modul +![Keyestudio KS0032 RGB LED-modul](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0032-rgb-led/image.webp b/components/keyestudio-ks0032-rgb-led/image.webp new file mode 100644 index 0000000..28f29c3 Binary files /dev/null and b/components/keyestudio-ks0032-rgb-led/image.webp differ diff --git a/components/keyestudio-ks0032-rgb-led/thumbnail.webp b/components/keyestudio-ks0032-rgb-led/thumbnail.webp new file mode 100644 index 0000000..d28ad2d Binary files /dev/null and b/components/keyestudio-ks0032-rgb-led/thumbnail.webp differ diff --git a/components/keyestudio-ks0033-thermistor/README.md b/components/keyestudio-ks0033-thermistor/README.md index 639f431..e613e5c 100644 --- a/components/keyestudio-ks0033-thermistor/README.md +++ b/components/keyestudio-ks0033-thermistor/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0033 analog temperatursensor +![Keyestudio KS0033 analog temperatursensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0033-thermistor/image.webp b/components/keyestudio-ks0033-thermistor/image.webp new file mode 100644 index 0000000..d8409cc Binary files /dev/null and b/components/keyestudio-ks0033-thermistor/image.webp differ diff --git a/components/keyestudio-ks0033-thermistor/thumbnail.webp b/components/keyestudio-ks0033-thermistor/thumbnail.webp new file mode 100644 index 0000000..5d51841 Binary files /dev/null and b/components/keyestudio-ks0033-thermistor/thumbnail.webp differ diff --git a/components/keyestudio-ks0035-microphone/README.md b/components/keyestudio-ks0035-microphone/README.md index 1dc5497..c365763 100644 --- a/components/keyestudio-ks0035-microphone/README.md +++ b/components/keyestudio-ks0035-microphone/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0035 mikrofonmodul +![Keyestudio KS0035 mikrofonmodul](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0035-microphone/image.webp b/components/keyestudio-ks0035-microphone/image.webp new file mode 100644 index 0000000..8697e3b Binary files /dev/null and b/components/keyestudio-ks0035-microphone/image.webp differ diff --git a/components/keyestudio-ks0035-microphone/thumbnail.webp b/components/keyestudio-ks0035-microphone/thumbnail.webp new file mode 100644 index 0000000..6a4a83a Binary files /dev/null and b/components/keyestudio-ks0035-microphone/thumbnail.webp differ diff --git a/components/keyestudio-ks0037-vibration/README.md b/components/keyestudio-ks0037-vibration/README.md index 55e0c81..ad14071 100644 --- a/components/keyestudio-ks0037-vibration/README.md +++ b/components/keyestudio-ks0037-vibration/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0037 vibrationssensor +![Keyestudio KS0037 vibrationssensor](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0037-vibration/image.webp b/components/keyestudio-ks0037-vibration/image.webp new file mode 100644 index 0000000..f20b61b Binary files /dev/null and b/components/keyestudio-ks0037-vibration/image.webp differ diff --git a/components/keyestudio-ks0037-vibration/thumbnail.webp b/components/keyestudio-ks0037-vibration/thumbnail.webp new file mode 100644 index 0000000..3f6add3 Binary files /dev/null and b/components/keyestudio-ks0037-vibration/thumbnail.webp differ diff --git a/components/keyestudio-ks0038-reed-switch/README.md b/components/keyestudio-ks0038-reed-switch/README.md index 7954c2d..da3fed9 100644 --- a/components/keyestudio-ks0038-reed-switch/README.md +++ b/components/keyestudio-ks0038-reed-switch/README.md @@ -1,5 +1,7 @@ # Keyestudio KS0038 reed switch +![Keyestudio KS0038 reed switch](image.webp) + ## Identifikation | Felt | Værdi | diff --git a/components/keyestudio-ks0038-reed-switch/image.webp b/components/keyestudio-ks0038-reed-switch/image.webp new file mode 100644 index 0000000..5dc1b46 Binary files /dev/null and b/components/keyestudio-ks0038-reed-switch/image.webp differ diff --git a/components/keyestudio-ks0038-reed-switch/thumbnail.webp b/components/keyestudio-ks0038-reed-switch/thumbnail.webp new file mode 100644 index 0000000..4bee7ec Binary files /dev/null and b/components/keyestudio-ks0038-reed-switch/thumbnail.webp differ diff --git a/scripts/process_component_images.py b/scripts/process_component_images.py new file mode 100644 index 0000000..57076dc --- /dev/null +++ b/scripts/process_component_images.py @@ -0,0 +1,88 @@ +"""Crop the photographed Keyes modules and create README-ready WebP assets.""" + +from __future__ import annotations + +import argparse +from pathlib import Path + +import numpy as np +from PIL import Image, ImageOps + + +COMPONENTS_DIR = Path(__file__).resolve().parents[1] / "components" + +PHOTOS = { + "keyestudio-ks0037-vibration": "IMG_20261024_203426885_HDR.jpg", + "keyestudio-ks0019-passive-buzzer": "IMG_20261024_203440803_HDR.jpg", + "keyes-ke2054-laser-emitter": "IMG_20261024_203450304_HDR.jpg", + "keyestudio-ks0033-thermistor": "IMG_20261024_203506743_HDR.jpg", + "keyestudio-ks0024-knock": "IMG_20261024_203515354_HDR.jpg", + "keyestudio-ks0028-photocell": "IMG_20261024_203524523_HDR.jpg", + "keyestudio-ks0014-analog-rotation": "IMG_20261024_203538683_HDR.jpg", + "keyestudio-ks0023-ds18b20": "IMG_20261024_203559430_BURST000_COVER.jpg", + "keyestudio-ks0029-push-button": "IMG_20261024_203615490_HDR.jpg", + "keyestudio-ks0038-reed-switch": "IMG_20261024_203624532_HDR.jpg", + "keyestudio-ks0035-microphone": "IMG_20261024_203651498_HDR.jpg", + "keyestudio-ks0025-tilt": "IMG_20261024_203705101_HDR.jpg", + "keyestudio-ks0026-ir-receiver": "IMG_20261024_203723952_HDR.jpg", + "keyestudio-ks0018-active-buzzer": "IMG_20261024_203734801_HDR.jpg", + "keyestudio-ks0027-ir-transmitter": "IMG_20261024_203743461_HDR.jpg", + "keyestudio-ks0015-pulse-rate": "IMG_20261024_203754423_HDR.jpg", + "keyestudio-ks0022-lm35": "IMG_20261024_203804368_HDR.jpg", + "keyestudio-ks0021-collision": "IMG_20261024_203811921_HDR.jpg", + "keyestudio-ks0032-rgb-led": "IMG_20261024_203820913_HDR.jpg", +} + + +def crop_around_board(image: Image.Image) -> Image.Image: + """Find the red PCB, then retain generous room for protruding components.""" + pixels = np.asarray(image.convert("RGB")) + red = pixels[:, :, 0].astype(np.int16) + green = pixels[:, :, 1].astype(np.int16) + blue = pixels[:, :, 2].astype(np.int16) + mask = (red > 125) & (red > green * 1.35) & (red > blue * 1.20) + ys, xs = np.nonzero(mask) + if len(xs) < 10_000: + raise RuntimeError("Could not locate the red PCB") + + left, right = int(np.percentile(xs, 0.2)), int(np.percentile(xs, 99.8)) + top, bottom = int(np.percentile(ys, 0.2)), int(np.percentile(ys, 99.8)) + width, height = right - left, bottom - top + pad_x, pad_y = int(width * 0.22), int(height * 0.18) + box = ( + max(0, left - pad_x), + max(0, top - pad_y), + min(image.width, right + pad_x), + min(image.height, bottom + pad_y), + ) + return image.crop(box) + + +def fit(image: Image.Image, max_size: tuple[int, int]) -> Image.Image: + result = image.copy() + result.thumbnail(max_size, Image.Resampling.LANCZOS) + return result + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("source_dir", type=Path, help="Directory containing the source JPEGs") + args = parser.parse_args() + + for component, filename in PHOTOS.items(): + source = args.source_dir / filename + destination = COMPONENTS_DIR / component + with Image.open(source) as opened: + image = ImageOps.exif_transpose(opened).convert("RGB") + crop = crop_around_board(image) + fit(crop, (1400, 1050)).save( + destination / "image.webp", "WEBP", quality=90, method=6 + ) + fit(crop, (240, 180)).save( + destination / "thumbnail.webp", "WEBP", quality=90, method=6 + ) + print(f"{component}: {filename}") + + +if __name__ == "__main__": + main()