diff --git a/.svelte-kit/generated/server/internal.js b/.svelte-kit/generated/server/internal.js index 26c1c79..c5fe4d6 100644 --- a/.svelte-kit/generated/server/internal.js +++ b/.svelte-kit/generated/server/internal.js @@ -21,7 +21,7 @@ export const options = { app: ({ head, body, assets, nonce, env }) => "\n\n \n \n \n \n \n \n
" + body + "
\n \n\n\n", error: ({ status, message }) => "\n\n\t\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t
\n\t\t\t" + status + "\n\t\t\t
\n\t\t\t\t

" + message + "

\n\t\t\t
\n\t\t
\n\t\n\n" }, - version_hash: "1j1xf8w" + version_hash: "1h7g22m" }; export async function get_hooks() { diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5d14424..e6f07b4 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -34,7 +34,7 @@
Flying Vehicle -

+

A grid flying through caves

@@ -45,16 +45,22 @@

Open source and networking hobbies led me to depoly a set of interconnected Linux servers:

@@ -63,7 +69,7 @@
Testing Input Response

- Testing Input
Response + Testing Input Response

Internal View

@@ -75,13 +81,12 @@ I chose to build a drone from scratch for my AP Physics final project. We were given an open ended assignment to build something cool and I wanted a drone. My choice was much more ambitious than the course required, and took quite a while to complete.

For the drones frame I finally had an excuse to purchase a 3d printer. I modelled the frame and arms modularly to support future upgrades and replacements from damage, reducing the cost of operation. Initially I was using some 3d printed torodial propellers due to their higher efficiency and lower sounds usage. Due to safety concerns of the propellers not withstanding tension at higher RPMs and exploding I switched to some generic acrylic propellers I bought. A challenge in designing the frame was leaving enough room to contain the volume of the wires. I went with the Elegoo Neptune 3 as the printer was open-source and had a much better cost-to-utility than proprietary printers such as the Ender series. I am not sponsored I just really like the printer.

-

-

+ The flight computer was the most difficult part to program. Using an ultrasonic distance sensor, gyroscope, and accelerometer the drone has enough information to probably never crash. The autopilot is implemented on an Arduino UNO using a PID controller for stabolization. The autopilot quality is currently impacted every time the drones mass distribution changes, which can be fixed with a reinforcement machine learning algorithm. For the higher level programming such as flight automation, video transmission and WiFi communications I used a Raspberry Pi Pico. There is also a 2.4GHz line of sight receiver for manual control. A future upgrade may contain a SIM card for near-infinite remote control connection, but drone regulations would make this difficult.

The power system is the most physically challenging portion of the drone. The motors took 14.6 Volts, while the UNO microcontroller took 5 Volts, and the Pico and most sensors run at 3.3 Volts. All of the power to the motors ran through the power distribution board, which I modified to also output the lower voltages and used Bidirectional Logic Level Converters to shift between 3.3 and 5V signals where needed. A potential flaw with having all the power coming from the same source is spikes in energy consumption to the motors may cause the microcomputers to receive too little power, which could be fixed with a capacitor. Luckily, I haven't experienced this yet as the 2C discharge rate on the 2.5Ah capacity battery is more than enough. Having a battery this big does mean it takes up about half the internal electronics volume and is half of the drones mass, but it can also maintain full throttle for half an hour making for long flights.

- The motors I used were a bit overkill for a 1.1kg drone, as going past 20% throttle sends it shooting through the sky -- which is not a bad issue to have. Here's the technical numbers behind that: I have propellers with a 6cm radius on motors with a 2450KV rating (2450 rpm per volt) at peaking at 14.6 Volts. From this the tip speed is computer to be 225m/s under no load at max throttle, quite a lot more than what is safe or necessary to get into the air. + The motors I used were a bit overkill for a 1.1kg drone, as going past 20% throttle sends it shooting through the sky -- which is not a bad issue to have. Here's the technical numbers behind that: I have propellers with a 6cm radius on motors with a 2450KV rating (2450 rpm per volt) at peaking at 14.6 Volts. From this the tip speed is computed to be ~225m/s under no load at max throttle, quite a lot more than what is safe or necessary to get into the air.

@@ -96,14 +101,19 @@
  • Design schedules based on many parameters include age, level, class size, siblings in adjacent classes, given availability, and more soft requirements
  • Send swimming lesson application confirmations
  • -

    Implementing the reception and confirmation of lessons was straightforward enough with a Flask site using Stripe for payments, and Firebase service for sending confirmation emails. The difficult part was building the schedule, which is a form of the NP-Hard Nurse Scheduling Problem. As there were at max a few hundred students per schedule, I solved this using a recursive algorithm and scoring system to choose the best generated option.

    +

    + Implementing the reception and confirmation of lessons was straightforward enough with a Flask site using Stripe for payments, and Firebase service for sending confirmation emails. The difficult part was building the schedule, which is a form of the NP-Hard Nurse Scheduling Problem. As there were at max a few hundred students per schedule, I solved this using a recursive algorithm and scoring system to choose the best generated option. +

    Volunteering

    -

    I volunteer within the Computer Science, Mathematics, and Statistics department at the University of Toronto as a Computer Science Ambassador to help cultivate interest in the Mathematical Sciences in high school students, as well as providing direction for first year students within the programs.

    +

    + I volunteer within the Computer Science, Mathematics, and Statistics department at the University of Toronto as a Computer Science Ambassador to help cultivate interest in the Mathematical Sciences in high school students, as well as providing direction for first year students within the programs. + +

    diff --git a/src/style.css b/src/style.css index f0a127e..2e24f51 100644 --- a/src/style.css +++ b/src/style.css @@ -19,7 +19,7 @@ button { max-width: 90vw; width: min-content; padding: 12px; - background-image: linear-gradient(45deg, #101010, #202020); + background-image: linear-gradient(315deg, #101010, #202020); padding-right: 40px; padding-left: 40px; border-image: linear-gradient(to bottom, orangered, maroon) 1 100%;