From a5699f857a861991a1ad957525cbdf6e4205723a Mon Sep 17 00:00:00 2001 From: Damien Boisvert Date: Fri, 9 Feb 2024 23:36:08 +0000 Subject: [PATCH] stuff happened :) --- school/9_AlternateEnergyCar.md | 111 --------------------------- school/9_CheapHomelessHouses.md | 22 ------ school/9_FireAway.md | 29 ------- school/9_PhysicsOfSports.md | 48 ------------ school/9_rubegoldberg.md | 20 ----- school/english/9_poetry_portfolio.md | 43 +++++++++++ 6 files changed, 43 insertions(+), 230 deletions(-) delete mode 100644 school/9_AlternateEnergyCar.md delete mode 100644 school/9_CheapHomelessHouses.md delete mode 100644 school/9_FireAway.md delete mode 100644 school/9_PhysicsOfSports.md delete mode 100644 school/9_rubegoldberg.md diff --git a/school/9_AlternateEnergyCar.md b/school/9_AlternateEnergyCar.md deleted file mode 100644 index c794d5f..0000000 --- a/school/9_AlternateEnergyCar.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: post -title: Alternate Energy Car -permalink: /school/9/alternate-energy-car ---- - -## Introduction -Ah, another month, another project. If you have been following my blog, you may have known a bit about this project, -as I was writing a bit about my adventures in making this. The goal is to create a car that uses an alternate source -of power. *(i.e., not being a chemically powered source, like gas or a battery.)* This seemed simple. I went directly -to using solar power. Most of the other people in my class used rubber bands or something like that. I found that this -is not accurate enough. What do I mean by that? The goal of the car is to **only go 5 meters** *(or as close as possible)*. -For me, mechanical, inefficient sources of energy were not good enough. I needed a car that could **THINK**! So, I decided -to use solar power and an Arduino microcontroller. - -## Concept -The goal of this car was simple-- I thought, *"Why can't I just program in the time it takes to go 5 meters and then stop the motor?"* -I found two problems, right off the bat. For one, I couldn't get the distance to be consistent. Our car was made from foam and hot -glue, and our front wheel made the car turn. We thought that we could have the car aimed to the right when we started it, but we soon -noticed that the car would go half a meter too short, and then half a meter too long. So, this was a definite no-go. The problem was -that we tried to make it work for so long, we already were 3 weeks in. We needed a good idea, and FAST. - -### The solution -After bashing my head against the wall for a while thinking of a good idea, I thought of a good idea. At home, we have [Roomba](https://irobot.com) -robot vacuums. The robot comes with these handy *Virtual Wall Barriers* that emit an infrared signal that tells the robot to -turn around. After noticing that I already had an [infared](https://en.wikipedia.org/wiki/Infrared) receiver for another project I -did. I thought, *"Maybe I can use the infrared receiver to get the signal from the virtual wall barrier, place it at the 5-meter mark, -and program the robot to stop when it gets the signal?"*. This seemed good in theory, except for some reason, I could not get the -IR receiver to consistantly get the signal from the virtual wall barrier. I still can't figure out why. Luckily, I had a IR remote, -and I thought that infared would go in a straight line and not pan out anywhere else. I don't know why I thought this, but it didn't work. -The remote panned out, and it made the car stop early. - -## The code -Now, I am not gonna put the code here like copy and pasting. You can, if you wish, view the source [here](#oops). I'll put little snippets where needed, though. - - -The code started messy, with the board going against the #1 rule of Arduino--*loop()* runs continously. I broke that rule by doing this--Firsy, I initalize a boolean variable that says if loop() has called. It starts at false. -```c++ -// some other code ... -const int trigbtn = 5; -const int buzzer = 6; -const int motor = 8; -const int startDelayTime = 5; -bool icanhasstarted = false; // <-- this line -``` -Then, the loop() function will check that variable when it starts, and ensures that it'll not run again. -```c++ -// No-loop protection. -if (icanhasstarted == true) { - return; // dont run twice! -} -``` -Of course, it will set the value to true at the end... -```c++ -icanhasstarted = true; // make sure that loop() does not call again -``` -### How I start it (with my old and useless approach) -This seems simple, right? Just plug it in and press a button, right? Well, I decided to use Serial IO to tell the board when to start moving. Here's the (simplified) code for that: -```c++ -void serialHang() { - bool hanging = true; - while (hanging == true) { - if (Serial.available() > 0) { - String receivedMessage = ""; - while (Serial.available() > 0) { - char incomingChar = Serial.read(); - if (incomingChar == '\n') { - break; - } - receivedMessage += incomingChar; - } - for (int i = 1; i < 11; i++) { - Serial.print(i); - Serial.print("... "); - delay(1000); - } - -} -``` -This seemed like a good idea, but then I noticed that if I were to do this, I had to plug my computer into the Arduino, hit ENTER, and then proceed to grab the USB cable from the Arduino in the 5 seconds given. Remember--our car is made of foam, so it is a pain in the rear end to plug it in. Now, we are using a infared toggle system. Here's what I mean by that. - -* The car sets a value (default being `LOW`) for the `status` variable. -* Whenever you run the `contraryState()` function, it will set the motor to `HIGH` if it is currently `LOW`, and vice versa. - -```c++ -void contraryState() { - if (state == LOW) { - state = HIGH; - } - else { - state = LOW; - } - digitalWrite(motor, state); - digitalWrite(LED_BUILTIN, state); // <-- set the builtin LED to be the same value as the motor. Very useful for debugging. -} -``` - -Now, the car will run `contraryState()` whenever it recieves an infared signal: - -```c++ -void loop() { - if(receiver.decode(&results)) { // Decode the button code and put it in "results" variable - Serial.println(results.value, HEX); // Print the code as a hexadecimal value - contraryState(); - delay(250); - receiver.resume(); // Continue listening for new signals - } -} -``` -You may notice how I have a `delay(250)` there. This is to prevent the "dancing", when it turns on and off the motor VERY fast, whenever you either press a button on the remote, or even at random. I believe the 'randomness' is because of other teachers using a TV remote, as you may notice that the code doesn't even check the infared value. It accepts anything, as my remote sucks and every button seems to return hexadecimal `FFFFFF`, so it doesn't work well. Also, it allows the person to hold the remote button to make it turn on and off fast, but not when you press the button once, as that was an issue. - diff --git a/school/9_CheapHomelessHouses.md b/school/9_CheapHomelessHouses.md deleted file mode 100644 index cb13afe..0000000 --- a/school/9_CheapHomelessHouses.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default -permalink: /school/9/3dhomelesshouse -title: 3D Printing Homeless Houses ---- -## Hold your horses! -This page is not ready... YET! You can see my progress below. - -# 3D-Printing Homeless Houses - -And with that, the first project done of 2024 is done! In this project, we decided on -a world problem, being homelessness, hunger, *political unrest?*, and found a solution on -what we were going to do, and present it! We chose homelessness, because...well... Look -at San Francisco right now! We used our **Damien&Flint(tm) Thinking Caps Version 2** -(patent pending) and decided to use concrete 3d printing to make them! This idea was heavily -inspired by [JerryRigEverything](https://www.youtube.com/@JerryRigEverything)'s video -[*"I 3D Printed Printed a 6,000 Pound Statue of Myself"*](https://youtu.be/FaNLkd0rzXk) -where he used a huge 3d printer in order to send his friend, ["What's Inside?"](https://www.youtube.com/user/lincolnmarkham) -a 6,000 pound statue of himself, because that's what you do, right? - -## When we started -When we started this project, we decided to make a prototype made of wood. We did this at a 1:4 scale *(i.e, 1 foot in the prototype equals 4 feet in the real world)*. This made our job one million times easier as we only had to build 1' by 1'4" for the prototype.) diff --git a/school/9_FireAway.md b/school/9_FireAway.md deleted file mode 100644 index 1b6e59a..0000000 --- a/school/9_FireAway.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: post -permalink: /school/9/fireaway ---- - -

The Proof of Efficacy document can be found HERE.

- - - -

We have finally completed our brand-new project! It was called Fire Away! The project was that we would make a trebuchet that launches a projectile as far as possible while fitting into a 1x1x1 meter size, with two legs and an arm. This project went through its ups and downs, with our prototype destroying itself on multiple occasions, our class setting off the school fire alarm, TWICE IN ONE PERIOD, and we finally finished with a great design. Let's go!

- - - -
-

The road to wisdom? Well, it’s plain and simple to express: Err, and err, and err again: but less, and less, and less.

-Piet Hein
- - - -

Step one was how we were going to design our machine. We 3d modeled a basic idea in Sketchup, and we made our prototype. Our prototype was simple and inefficient. We had a base with two legs made of wood. The arm was held by a PVC pipe that was put into 1cm deep holes in the legs, which the PVC pipe would slide into and be able to swing around. This was a very inefficient way of doing this because of friction, but more on that later. The arm was attached to 3-4 rubber bands on the base. The rubber bands were our potential energy, as a human would push down on the other side of the machine, stretching the rubber bands, and then release, firing the ball that was loaded in a .5cm deep hole in the arm. A simple prototype.

- - - -

This prototype worked, but it had some limitations. The first limitation was how we attached the arm. We needed to be able to take it on and off for storage, so the arm was smaller than the length needed to go fully into the 1cm holes on the legs, causing it to fall off whenever we stretched more than 30°-35° back. Another issue was my human mess-ups. We decided to drill the files 3 centimeters below the tip of the legs, and while they looked like the same height to the naked eye, they were most certainly not. I drilled the holes 3cm, the same on both, but they did not align, as the second leg's hole was too high for the PVC pipe to go straight in. We found a workaround that would come to bite us in the rear end, by making the hole tilted to accommodate for the small height change. This was what made it difficult to keep it in for a 35° shot, which most of our shots ranged from us pushing down 35° to 45°. We knew that we had to deal with this in our final build. We ended up fixing that in our final build and also the friction issue with the same stone!

- - - -

After learning from the sloppy design of our prototype, we made sure our final build was made well without the sloppiness of our prototype. The final build used a long, thick base to stop it from falling over due to Newton's third law, our arms were higher this time to have a longer arm, and drilling completely through the wood so that the ends of the pipe were on the other side of the arms, reducing the friction, and also have nothing attached to the pipe so that the arm spins on it freely so that the arm does not have to move with the pipe, cutting down on friction again.

- diff --git a/school/9_PhysicsOfSports.md b/school/9_PhysicsOfSports.md deleted file mode 100644 index c2498e2..0000000 --- a/school/9_PhysicsOfSports.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: post -permalink: /school/9/physicsofsports ---- -

Physics of Sports Video

- -

Ah, the day that we finished our Rube Goldberg unit, WE ARE BACK FOR MORE! Now in the field of video editing, we have made a video for the San Marin Basketball team.

- - - -

Other team members (and their websites)

- - - -

They should have their opinions on their websites.

- - - - - - - -

The Task

- - - -

Our task was to make a video detailing the physics behind the sport that we chose. We decided to do basketball hoops. (I personally think that that was not a good idea, as I did not know anything about basketball or basketball hoops. I watch football! As I put it in the video,

- - - -
-

I guess that I can shoot a hoop given a team that is falling asleep, passing me the ball, and the clock is waiting for the heat death of the universe! So, I DO BELIEVE THAT I AM FULY QUALIFIED TO EXPLAIN THIS.

-Damien Boisvert
- - - -

The Process

- - - -

At the start, I did not have high hopes. I knew more about football, and basketball was foreign to me. What I ended up doing was recording slow motion videos of

- diff --git a/school/9_rubegoldberg.md b/school/9_rubegoldberg.md deleted file mode 100644 index 57546b3..0000000 --- a/school/9_rubegoldberg.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default -permalink: /school/9/rubegoldberg -title: Rube Goldberg Machines ---- -# Rube Goldberg Machines -We created Rube Goldberg machines as a start-of-the-year collaboration assignment. This was our first taste of collaborative work in the STEM Marin program, and I would like to say that it was AMAZING at working in a group–but let’s just say that there is A LOT of room for improvement as far as teamwork. We did get a good grade on this assignment, below are our graded rubrics. (on a 1 through 4 grading system) - - - - -## After that... - -After that, we got our grades and reflected on how we did this project. You can see the presentation slides [here](https://docs.google.com/presentation/d/16YJb9Ys83ohV5ukrnTJJi-tT3yhpGK_qf0iz_G76FFU/edit?usp=sharing). - -## Run video - - -## Machine sketchout - diff --git a/school/english/9_poetry_portfolio.md b/school/english/9_poetry_portfolio.md index beb0826..a54a12e 100644 --- a/school/english/9_poetry_portfolio.md +++ b/school/english/9_poetry_portfolio.md @@ -2,3 +2,46 @@ layout: default permalink: /school/9/poetryportfolio/ --- +# Poetry Portfolio +**NOTE**: This was meant to be a Google Slides. Ordinary people would *do* a google slides. Unfortunately, *I AM NOT ORDINARY PEOPLE*, and I needed content, so I put it on this site! +## Table of Contents +* [Poem #1][poem1] +* [Loud in Here][loudinhere] +## Poem #1 +```plaintext +A distraction on my desk, +Noise seeming to block out the rest. +It seems impossible to focus on a test, +with such a device on my desk. +With apps competing for my attention, +All trying to make an impression, +it just feels like a depression. +A day that I don't give my attention as expected, +Watching meaningless numbers ever climb +Friends of mine climb to my door, +Wondering why I didn't +Give into the push notifications in my pocket. +``` + +## Loud in Here + +```text +It’s loud in here: +The thoughts never stop knocking on my door +It’s crazy in here, a never-ending brainstorm +Just can’t hear through the chaos and the noise + +Looping in C++ or a explosive pencil sharpener, +Questions unbidden, taking up space. +I long to silence this cognitive flood, +If only I could, oh, I surely would. + +Random questions, with no purpose +Stuff like the proper rhyme and reason of +Not looping malloc() in C++, or potentially +How to sharpen a pencil explosively with a whoosh and a boom +``` + + +[loudinhere]: #loud-in-here +[poem1]: #poem-1 \ No newline at end of file