Merge remote-tracking branch 'refs/remotes/origin/master'
This commit is contained in:
commit
51bd1a3460
@ -1,3 +1,4 @@
|
|||||||
![[UV_Diode_amplifier_two_stage.png]]
|

|
||||||
|
|
||||||
This is my working photo-diode amplifier that responded well the butane gas flames in the lab.
|
This is my working photo-diode amplifier that responded well the butane gas flames in the lab.
|
||||||
This worked well with manf:GUVB-S11DCT-ND ( $240 \rightarrow 320nm$ $ UVB) and manf:GUVV-S10SD ($240nm \rightarrow 320nm$ UVA). Note the 7M5 feeding the vref to the first op-amp is necessary for current balancing. A multi-meter will disturb this first stage as it is amplifying pico-amps (probably!)
|
This worked well with manf:GUVB-S11DCT-ND ( $240 \rightarrow 320nm$ UVB) and manf:GUVV-S10SD ($240nm \rightarrow 320nm$ UVA). Note the 7M5 feeding the vref to the first op-amp is necessary for current balancing. A multi-meter will disturb this first stage as it is amplifying pico-amps (probably!)
|
||||||
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
![[ir_photo_transistor_amplifier.png]]
|

|
||||||
|
|
||||||
This amplifier, when IR hits the exposed base on the photo~transistor (marked as a diode above) pulls the OPAMP minus input down. To re balance this the OPAMP output swings up in voltage to provide current via R12. This 1uA of current flowing through the photo transistor will cause $1 \mu A \times 82\times 10^3 = 82mV$. This signal is buffered by the OPAMP and thus suitable for direct reading by an ADC. Also if the OPAMP is operated from 0 to 3V3 supply, there is no need for ADC voltage scaling. The 2k2 potential divider should be connected to a port pin, so that the ADC readings and MUX can be verified.
|
This amplifier, when IR hits the exposed base on the photo~transistor (marked as a diode above) pulls the OPAMP minus input down. To re balance this the OPAMP output swings up in voltage to provide current via R12. This 1uA of current flowing through the photo transistor will cause $1 \mu A \times 82\times 10^3 = 82mV$. This signal is buffered by the OPAMP and thus suitable for direct reading by an ADC. Also if the OPAMP is operated from 0 to 3V3 supply, there is no need for ADC voltage scaling. The 2k2 potential divider should be connected to a port pin, so that the ADC readings and MUX can be verified.
|
||||||
@ -1,7 +1,7 @@
|
|||||||
---
|
# Quaternions
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
---
|
|
||||||
|
|
||||||
These are four dimensional numbers useful for rotation. Unlike matrices quaternions do not cause problems when rotating i.e. when the determinant is very small. Like complex number rotation, they simply wrap around.
|
These are four dimensional numbers useful for rotation. Unlike matrices quaternions do not cause problems when rotating i.e. when the determinant is very small. Like complex number rotation, they simply wrap around.
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
# Schrödinger Equation Derivation — Why the Kinetic Term is $-\hbar^2/(2m)\,\nabla^2$
|
|
||||||
|
# Schrödinger Equation Derivation
|
||||||
|
|
||||||
|
Why the Kinetic Term is $-\hbar^2/(2m)\,\nabla^2$
|
||||||
|
|
||||||
## Goal
|
## Goal
|
||||||
|
|
||||||
@ -85,7 +88,7 @@ $$
|
|||||||
\frac{\partial \psi}{\partial t} = -i\omega\psi
|
\frac{\partial \psi}{\partial t} = -i\omega\psi
|
||||||
$$
|
$$
|
||||||
|
|
||||||
Note this differentiates by time. Its looking at how fast the particle waveform oscillates which is directly related to the energy via the plank constant. As for a photon this means the frequency is $\propto$ E.
|
Note this differentiates by time. It's looking at how fast the particle waveform oscillates which is directly related to the energy via the plank constant. As for a photon this means the frequency is $\propto$ E.
|
||||||
|
|
||||||
|
|
||||||
Second derivative w.r.t. distance:
|
Second derivative w.r.t. distance:
|
||||||
@ -110,6 +113,7 @@ $$
|
|||||||
k = \frac{p}{\hbar}
|
k = \frac{p}{\hbar}
|
||||||
$$
|
$$
|
||||||
Substitute this into the second derivative result:
|
Substitute this into the second derivative result:
|
||||||
|
|
||||||
$$
|
$$
|
||||||
\frac{\partial^2 \psi}{\partial x^2}
|
\frac{\partial^2 \psi}{\partial x^2}
|
||||||
$$
|
$$
|
||||||
@ -153,12 +157,17 @@ Replace $p^2\psi$:
|
|||||||
|
|
||||||
$$
|
$$
|
||||||
E\psi
|
E\psi
|
||||||
=
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
\frac{1}{2m}\left(-\hbar^2 \frac{\partial^2 \psi}{\partial x^2}\right) + V\psi
|
\frac{1}{2m}\left(-\hbar^2 \frac{\partial^2 \psi}{\partial x^2}\right) + V\psi
|
||||||
$$
|
$$
|
||||||
|
|
||||||
So
|
So
|
||||||
$$
|
$$
|
||||||
E\psi = -\frac{\hbar^2}{2m}\frac{\partial^2 \psi}{\partial x^2} + V\psi
|
E\psi =
|
||||||
|
-\frac{\hbar^2}{2m}\frac{\partial^2 \psi}{\partial x^2} + V\psi
|
||||||
|
>>>>>>> refs/remotes/origin/master
|
||||||
$$
|
$$
|
||||||
This is where the factor
|
This is where the factor
|
||||||
$$
|
$$
|
||||||
|
|||||||
@ -1 +1,4 @@
|
|||||||
![[PXL_20241017_144621074.jpg_compressed.jpeg]]
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
76
make_missing_pages.py
Executable file
76
make_missing_pages.py
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
VAULT_PATH = os.path.expanduser("~/gdrive/your_vault_here")
|
||||||
|
|
||||||
|
vault = Path(VAULT_PATH)
|
||||||
|
|
||||||
|
wiki_link_re = re.compile(r"\[\[([^\]|#]+)")
|
||||||
|
markdown_link_re = re.compile(r"\[[^\]]+\]\(([^)#]+)")
|
||||||
|
|
||||||
|
existing_pages = {}
|
||||||
|
|
||||||
|
for md in vault.rglob("*.md"):
|
||||||
|
existing_pages[md.stem.lower()] = md
|
||||||
|
|
||||||
|
created = []
|
||||||
|
|
||||||
|
for md in vault.rglob("*.md"):
|
||||||
|
try:
|
||||||
|
text = md.read_text(encoding="utf-8")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Could not read {md}: {e}")
|
||||||
|
continue
|
||||||
|
|
||||||
|
links = []
|
||||||
|
|
||||||
|
# [[Page]] or [[Page|alias]]
|
||||||
|
links.extend(wiki_link_re.findall(text))
|
||||||
|
|
||||||
|
# [title](Page.md)
|
||||||
|
links.extend(markdown_link_re.findall(text))
|
||||||
|
|
||||||
|
for link in links:
|
||||||
|
link = link.strip()
|
||||||
|
|
||||||
|
if not link:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Ignore web/email/anchor links
|
||||||
|
if link.startswith(("http://", "https://", "mailto:", "#")):
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Strip anchor sections
|
||||||
|
link = link.split("#", 1)[0]
|
||||||
|
|
||||||
|
# Remove .md if already present
|
||||||
|
if link.lower().endswith(".md"):
|
||||||
|
link = link[:-3]
|
||||||
|
|
||||||
|
target = vault / f"{link}.md"
|
||||||
|
|
||||||
|
# Obsidian-style loose match by page name
|
||||||
|
if Path(link).name.lower() in existing_pages:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if target.exists():
|
||||||
|
continue
|
||||||
|
|
||||||
|
target.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
title = Path(link).name
|
||||||
|
dummy_text = f"# {title}\n"
|
||||||
|
|
||||||
|
try:
|
||||||
|
target.write_text(dummy_text, encoding="utf-8")
|
||||||
|
existing_pages[target.stem.lower()] = target
|
||||||
|
created.append(target)
|
||||||
|
print(f"Created: {target}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Failed to create {target}: {e}")
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(f"Done. Created {len(created)} missing pages.")
|
||||||
Loading…
Reference in New Issue
Block a user