I’m bad at sports betting so I made a Magic 8-Ball to recommend bets for me. For all the ink that has been spilled over how to lock in a sure-fire bet, the fact of the matter is that even the most successful sports bettors in the world only hit on 60% of their bets. When we can’t trust our gut and we can’t trust logic, we might as well outsource these decisions to machines and let the fates decide.
Here’s how it is intended to work: With an integrated vibration sensor, the device detects when a person is shaking the object and queries ChatGPT through an API Key with a prompt that asks ChatGPT to scour the daily betting markets and identify inefficiencies in the market that can be exploited. This takes into account betting markets, performance trends, opponent analysis, and similar game scenarios to identify one bet at a time. I was able to complete a prototype that surfaces a random bet, because I had trouble with OpenAI’s terms of service. With more experimentation with the prompt, I believe this would work as designed. My goal for this project was to immerse myself in AI tools so that I can begin to understand how they can be best integrated into devices.
Improvements:
I decided to add a Draftkings Sportsbook vinyl sticker to make the 8-ball look more legitimate. Going forward, I would probably use a more sensitive vibration switch because the medium-strength switch requires a very firm shake.
Timing is really important for this video to pick up views. I am going to film and post this during Sunday NFL Football and the video will be submitted before Dec 17th.
Sample Social Media Post to IG/Reddit:
“buddy cracked the code. magic 8-ball that tells you what bets to place @draftkings @houseofhighlights @barstoolsports”
Honestly I thought this would be a somewhat manageable project, however I was very very wrong. This project caused me so much frustration and took almost double the amount of time I had anticpated.
Okay now that I’ve gotten that out of the way let me introduce you to Acceptus!
Idk why this photo always look so low quality when uploading to the internet…
Introducing the Acceptus wall sconce—an organic, sculptural lighting solution designed to transform your home’s ambiance. This innovative sconce mounts seamlessly on any wall, creating an instant welcome as you enter a room. Perfect for those weary from long workdays, especially during the dark and cold winter months when returning home can feel uninspiring.
The Acceptus features intelligent motion-sensing technology that brings warmth and comfort to your living space. As you open the door or walk by, the sconce detects your presence, gently fading on to create a soft, inviting glow. No more harsh overhead lights or dark, unwelcoming entryways—just a subtle, comforting illumination that greets you and instantly makes your space feel more welcoming.
Where intelligent motion sensing meets sculptural minimalism.
Illumination that understands the art of welcome.
Caption
Precision meets poetry in our latest architectural lighting solution. More than a mere fixture, Acceptus represents a sophisticated intersection of technology and design.
Intelligent motion-sensing technology crafts an environment that anticipates and adapts.
Final Remarks:
This project could not have been possible without a few key people…
Becky (obviously): Thank you for helping me finalize my code and troubleshooting! But basically thank you for your support throughout the entire project.
Kyle: Thank you for training me on the CNC machine plus answering all of my circuit related questions!
Tashea: Thank you for giving me your extra nano board after killing mine! And I’m sorry I killed that one the next morning 🙂
My sister: Thank you for letting me take my frustrations out on you throughout this process and talking me off the ledge multiple times.
Ever since I moved here, I can only see he through FaceTime.
So, I decided to create this neon cat light to keep his presence close.
Screenshot
I designed the outline based on his chubby figure and placed it on my bedside table. It’s both a decorative piece and a functional light.
Process
Modeling: I used Rhino to design the 3D model of the cat’s outline, ensuring the grooves fit perfectly for the LED neon strip.
3D Printing: I printed the outline using a 3D printer, creating a sturdy frame to hold the components and the neon light securely.
Materials Used:
Acrylic board: For the base.
LED neon strip: For the lighting.
Arduino Gemma board: For programming the light modes.
Buttons: To switch between modes.
Wires: For connections.
Power adapter: To power the light.
Assembly: After printing the frame, I placed the LED strip into the grooves, connected the Arduino board and wires, and programmed the buttons to control the light modes.
A mistake
When I tried to use a heat gun to shrink the wire insulation, the hot air accidentally blew onto the frosted acrylic board, turning it transparent! (Note to self: never use a heat gun near frosted acrylic!)
Features
The lamp has two modes:
Day Mode: The light flashes like a comet, with each “comet” in a different color. After the comet effect, a rainbow light flows smoothly through the strip.
Night Mode: The light switches to a soft white glow that flickers gently, serving as a cozy night light.
If I were to improve this project, I would like to create more complex outlines and enable the neon light to display multiple colors simultaneously. This would add more depth and versatility to the design.
Lets workout! The dumbbell brought quite the challenge but it was a success.
As mentioned. This is a responsive dumbbell that changes light based on your increasing arm rep. The aim is to always get to the color green, this signifies that you have successfully completed the workout.
See process below!
Stage 1 – Initial Sketch – I had no idea what I was doing, or faith that I could pull this off.
Stage 2 – Second Sketch – still had no idea, but the sketching got the gears turning in my head
Stage 3 – Coding – the pressure was on!
Stage 4- Took a break – much needed orange gin cocktail break.
This is a physical check-in device placed at home. When you set a goal and start acting on it, you press the button to check in each time you complete a task. When you reach your check-in goal, the calculator will shoot out confetti to congratulate you.
I had two big problems with the model this week, the first was how the confetti could be sprayed and used multiple times. The second was how to implement the idea that the user must clock in 7 times in a row to trigger the confetti.
Model
Regarding the colored confetti , I took your feedback this week into consideration and looked for many ways to make simple ribbon cones, and finally decided to use the prototype below.
This video inspired me about how to do a continuous clocking
Oh, and as far as how to pull this leash, I think an eccentric wheel ➕ rotator (I’d prefer a servo) could do it.
So now I have my prototype model.
Next I am going to use 3D modeling and printing for all mechanical parts except for circuits, motors, lights, switches, etc.
Circuit diagram
My main question is: which one of the servos or the DC motor can actually drive my leash setup. I first tried to build the circuit diagram for the DC motor, I chose to connect 7 switches in series, each responsible for one LED. This was to make sure that the switches were pressed one after the other to get the confetti going. Then add another DC motor in parallel with the LED on the last switch. This makes it possible to press the switch 7 times in a row to start the confetti (after 7 consecutive punches, the reward is given directly). This was a tough design and it took me about 3 hours to connect it.
The other option is to use servos, luckily I only had to make a few modifications to the last schematic and all the necessities were taken care of by the way the circuit was connected, I just had to set up how the motor would turn in the code section !!!!!!
My first design is a music box that adjusts the brightness of its light based on changes in the external environment. The specific design can reference the style of Hayao Miyazaki’s film Ponyo on the Cliff by the Sea. The space inside my Snow Globe is divided into two parts, the bottom part of the goldfish girl will be filled with uv glue or Water, and the top part of the boy’s home will be air, and there will be a light sensor on the base, and based on the analog signal output from the sensor, and then a further analog signal to the led light to change the intensity of the led light.
My Google Doc (including my Introductions, Materials, Steps)
Here is some photos of the form prototype. Some modifications may need to be made as I need to create a proper base so it is able to be mounted to a wall and hide all the wiring.
Okay moving to my circuit diagram… I need help. I haven’t attempted this complicated of a circuit yet. But these are the components I believe I need.
Now for the storyboard, warning it is not pretty… but I think it captures its function.
Above is a story about a person who is coming home from a long day of work. But instead of walking into a dark and depressing apartment, they are greeted instead by a beautiful light that appears when they walk through the door.
My idea is to decorate a luminous Bluetooth airpods earring. This decoration not only lets people know you are using Bluetooth headsets but also displays the style of music you are listening to through flashing lights. It’s a great way to convey information to the outside world.
The element I will use for this project is a metallic butterfly. I will use 3D printing technology to create the main part of the decoration, while the hollow areas will be covered with Cellophane wrap. This material is transparent and allows light to pass through.
One aspect I’m still considering is whether to design a decoration specifically for headphones or Bluetooth headsets. For Bluetooth headsets, the design might be too heavy for the device to support. As a result, I may need to add an ear hook to provide extra support.
I’m looking for a small light that would be suitable for mounting on a headset decoration. Since my work is small, I need a light that matches the size of my product.
I will design three lighting effects for my work: -When you are listening to dynamic music, the light will have a rhythmic flashing red or orange light -When you are listening to soothing music, the light will have a rhythmic blue and green light -When you are listening to white noise, the light will have a rhythmic white and yellow light
I wanted to make a moon cycle lamp that shows you the cycle/phase of the current moon.
How it works
A light is placed in the middle of the box and a dome spins around it casting a shadow on the moon. This allows you to see the current cycle of the motor.
The Process
The Box
I built a wooden box in the VFL, it was quite challenging because I wanted the box to be seamless and had to miter the edges to achieve that look.
3D Printing
I designed and 3d printed the domes, both the outer dome, which is the moon, and the inner dome that casts the shadow.
I had to design the inner dome a few times because of balance issues.
The Circuit
I have a stepper motor, a motor breakout board, an Arduino Nano, an LED light, and a 100-ohm resistor. I soldered the Arduino nano and the motor breakout board to the “solderable” breadboard and soldered wires to connect everything together.
The Code
I had a really hard time coding this.
I researched a lot about the moon phases and even tried to create a function that calculates the moon. In the end, I downloaded a library in Arduino called “Moonphase” by Cellie. Then I used an example from their GitHub.
Then I researched how to make a stepper motor move and created a function to make the motor move from The Arduino Website.
Currently, the motor moves, but the moon phase location is not working as I want.
#include <WiFi.h>
#include <moonPhase.h>
#include <Wire.h>
#include <RTClib.h>
const char * wifissid = "WiFi Name";
const char * wifipsk = "Password";
moonPhase moonPhase;
RTC_DS1307 RTC;
struct tm timeinfo = {0};
// Define motor pins
#define A_OUT_1 9
#define A_OUT_2 10
#define B_OUT_1 11
#define B_OUT_2 12
// Define the delay between steps in milliseconds
const int STEP_DELAY = 100; // Adjust for speed
int stepsMoved = 0;
// Define the step sequence for a bipolar stepper motor
const int stepSequence[4][4] = {
{HIGH, LOW, HIGH, LOW}, // Step 1
{LOW, HIGH, HIGH, LOW}, // Step 2
{LOW, HIGH, LOW, HIGH}, // Step 3
{HIGH, LOW, LOW, HIGH} // Step 4
};
void setup() {
pinMode(2, OUTPUT);
// put your setup code here, to run once:
Wire.begin();
// Set motor pins as outputs
pinMode(A_OUT_1, OUTPUT);
pinMode(A_OUT_2, OUTPUT);
pinMode(B_OUT_1, OUTPUT);
pinMode(B_OUT_2, OUTPUT);
//Moon Angle
//Serial.begin(115200);
//Serial.println();
//Serial.println();
//Serial.println( "moonPhase esp32-sntp example." );
//Serial.print( "Connecting to " );
//Serial.println( wifissid );
//WiFi.begin( wifissid, wifipsk );
//while ( !WiFi.isConnected() )
// delay(100);
//Serial.println();
//Serial.println( "Connected. Getting time..." );
//configTzTime( "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", "0.pool.ntp.org" ); // Timezone: Amsterdam, Netherlands
//while ( !getLocalTime( &timeinfo, 0 ) )
// vTaskDelay( 10 / portTICK_PERIOD_MS );
}
void loop() {
//getLocalTime( &timeinfo );
//Serial.print( asctime( &timeinfo ) );
digitalWrite(2, HIGH);
stepsMoved = moveSteps(20);
moonData_t moon = moonPhase.getPhase();
Serial.print( "Moon phase angle: " );
Serial.print( moon.angle ); // angle is a integer between 0-360
Serial.print( " degrees. Moon surface lit: " );
Serial.printf( "%f%%\n", moon.percentLit * 100 ); // percentLit is a real between 0-1
Serial.println();
delay(30000);
}
// Function to move the motor a specific number of steps
int moveSteps(int steps) {
int stepCount = abs(steps); // Get the absolute number of steps
int direction = (steps > 0) ? 1 : -1; // Determine direction (1 = forward, -1 = backward)
int currentStep = 0; // Track current step in the sequence
for (int i = 0; i < stepCount; i++) {
// Calculate the next step index
currentStep = (currentStep + direction + 4) % 4;
// Set the motor coils according to the step sequence
digitalWrite(A_OUT_1, stepSequence[currentStep][0]);
digitalWrite(A_OUT_2, stepSequence[currentStep][1]);
digitalWrite(B_OUT_1, stepSequence[currentStep][2]);
digitalWrite(B_OUT_2, stepSequence[currentStep][3]);
// Delay to control the speed
delay(STEP_DELAY);
}
// Turn off all coils after motion
releaseMotor();
return stepCount; // Return the number of steps moved
}
// Function to release the motor (turn off all coils)
void releaseMotor() {
digitalWrite(A_OUT_1, LOW);
digitalWrite(A_OUT_2, LOW);
digitalWrite(B_OUT_1, LOW);
digitalWrite(B_OUT_2, LOW);
}
//Moving the Motor in phase with the real moon
// Function that changes position from % to step location f.e. 180° = 100 steps
// Function (angle) --> (position)
// For Loop that moves the motor
// position = 0;
// newPosition = 0;
// for ...
// if newPosition == position - 1
// move motor (1)
// position = newPosition
//