Update projects

This commit is contained in:
Tom 2025-05-07 12:44:42 +01:00
parent 655c777c2c
commit bd1cdbb187
12 changed files with 100 additions and 9 deletions

View File

@ -4,6 +4,7 @@ layout: project
excerpt: An old ceiling mounted LED downlight becomes a chonky bike light.
permalink: /projects/downlight_bikelight
assets: /assets/projects/downlight_bikelight
images: /assets/projects/downlight_bikelight/img
date: 2025-05-11
img:
@ -12,11 +13,33 @@ img:
src: /assets/projects/downlight_bikelight/thumbnail.png
social_image: /assets/projects/downlight_bikelight/thumbnail.png
model: /assets/projects//downlight_bikelight/models
draft: True
model: /assets/projects/downlight_bikelight/models
head: |
<script src="/assets/js/expand_img_tags.js" defer></script>
---
I pulled this dying LED downlight out of my kitchen ceiling.
<figure>
<img src="{{page.images}}/original_location.jpeg" alt="My hand pulling a circular LED downlight out of the ceiling.">
</figure>
In doing so I realised that this downlight has an amusingly chonky heatsink and a nice lens.
<figure class = "two-wide">
<img src="{{page.images}}/laid_out_front.jpeg" alt="All the parts of the downlight laid out on the carpet. There's a lens, LED and various spacers.">
<img src="{{page.images}}/laid_out_top.jpeg" alt="All the parts of the downlight laid out on the carpet. There's a lens, LED and various spacers.">
</figure>
So I made a front plate for it to turn it into a bicycle light. I think it suits the current cobbled together, solarpunky aesthetic of my bike.
<outline-model-viewer model = "{{page.model}}/fbx_export.glb" camera='{"type":"perspective","fov":30,"near":10,"far":10000,"position":[848.5,470.2,-294.9],"rotation":[-2.131,0.9915,2.214],"zoom":300,"target":[0,0,0]}'>
<img class="outline-model-poster no-wc" src = "{{page.assets}}/thumbnail.svg">
<p class="has-wc">Loading model...</p>
</outline-model-viewer>
Next job is to actually mount it!
<figure>
<img src="{{page.images}}/cad.jpeg" alt="Me holding the printed out new front ring in front of the CAD model on my laptop.">
</figure>

View File

@ -12,7 +12,7 @@ img:
src: /assets/projects/elegoo_mount/thumbnail.png
social_image: /assets/projects/elegoo_mount/thumbnail.png
draft: True
draft: false
---
This is just a quick mount for a [BIQU H2V2](https://biqu.equipment/products/biqu-h2-v2-0-extruder) hotend on an Elegoo Neptune 2.

View File

@ -11,6 +11,7 @@ img:
social_image: /assets/projects/helmet_lights/thumbnail.png
models: /assets/projects/helmet_lights/models
date: 2023-01-01
---

View File

@ -4,6 +4,8 @@ layout: project
excerpt: 3D Printed Lamp Shades
permalink: /projects/lamps
assets: /assets/projects/lamps
date: 2023-01-01
draft: true
img:
alt: A CAD model of a 3D printable mount for a common LED light onto a helmet.

View File

@ -125,10 +125,16 @@ hr.heading {
width: 100%;
margin-top: 0;
margin-bottom: 2em;
border: 1px solid rgba(128, 128, 128, 0.2);
height: 0;
border: 1px solid rgba(128, 128, 128, 0.2);
}
hr.byline {
margin-top: 0.2em;
margin-bottom: 0.5em;
border: 1px solid rgba(128, 128, 128, 0.2);
}
// Used for both blog and project summaries
@mixin time-text {
font-size: 0.75em;
@ -163,10 +169,7 @@ section.byline-time {
}
}
hr.byline {
margin-top: 0.2em;
margin-bottom: 0.5em;
}
section.byline {
font-style: italic;

View File

@ -0,0 +1,62 @@
function isIOS() {
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
}
function enterFullscreen(element) {
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else {
console.warn("Fullscreen API not supported on this browser");
}
}
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
// Create and style fullscreen overlay container
const fullscreenContainer = document.createElement("div");
fullscreenContainer.style.position = "fixed";
fullscreenContainer.style.top = 0;
fullscreenContainer.style.left = 0;
fullscreenContainer.style.width = "100vw";
fullscreenContainer.style.height = "100vh";
fullscreenContainer.style.background = "rgba(0, 0, 0, 0.95)";
fullscreenContainer.style.display = "flex";
fullscreenContainer.style.alignItems = "center";
fullscreenContainer.style.justifyContent = "center";
fullscreenContainer.style.zIndex = 9999;
fullscreenContainer.style.cursor = "zoom-out";
fullscreenContainer.style.visibility = "hidden";
const fullscreenImage = document.createElement("img");
fullscreenImage.style.maxWidth = "90vw";
fullscreenImage.style.maxHeight = "90vh";
fullscreenImage.style.boxShadow = "0 0 20px rgba(0,0,0,0.8)";
fullscreenContainer.appendChild(fullscreenImage);
document.body.appendChild(fullscreenContainer);
document.querySelectorAll("img").forEach((img) => {
img.style.cursor = "zoom-in";
img.addEventListener("click", () => {
console.log("Image clicked:", img.src);
fullscreenImage.src = img.src;
fullscreenContainer.style.visibility = "visible";
// Only attempt fullscreen if supported
enterFullscreen(fullscreenContainer);
});
});
fullscreenContainer.addEventListener("click", () => {
console.log("Exiting fullscreen");
fullscreenContainer.style.visibility = "hidden";
exitFullscreen();
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

View File

@ -45,7 +45,7 @@ Welcome to my little home on the web! Below you'll find recent blog posts, proje
<span class="dt-label">Last Modified</span>
</section>
<hr class="heading">
{% assign projects = site.projects | sort_natural: "last_modified_at"%}
{% assign projects = site.projects | sort_natural: "date" | reverse %}
{% for post in projects limit:5 %}
{% if post.draft == false or jekyll.environment == "development" %}
{% include project_summary.html %}