...
The two components of the fishing rod were the casting mechanism and the box for the electronics housing. The casting mechanism is made up of 1/4" acrylic links connected with 6 mm bearings at the joints. Before the final laser cuts of the acrylic links were made, the prototype was cut out of 1/4" wood. The electronics housing is a jigsaw box of 1/4" wood with 3 of the 4 walls glued to each other to minimize the collapsibility, yet retain the ability to open the box and view the circuit. At the bottom of the electronics housing is a 3D printed attachment with an opening that allows for a weight to be inserted at the front.
Multimedia | ||||
---|---|---|---|---|
|
...
Software Development
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#include <Servo.h> // Define Button Pins #define BUTTON1_PIN 2 #define BUTTON2_PIN 4 #define BUTTON3_PIN 7 // Servo Servo servo1; int servoPos = 0; const int maxServoPos = 180; bool windingUp = false; void setup() { // initialize serial communications at 19200 bps: Serial.begin(19200); // Servo setup servo1.attach(9); // Attaching the servo to pin 9 servo1.write(0); // Move servo to home position // Button inputs pinMode(BUTTON1_PIN, INPUT); pinMode(BUTTON2_PIN, INPUT); pinMode(BUTTON3_PIN, INPUT); } void loop() { // Read button states bool button1State = digitalRead(BUTTON1_PIN); bool button2State = digitalRead(BUTTON2_PIN); bool button3State = digitalRead(BUTTON3_PIN); if (windingUp) { // Check if the winding up condition should be terminated if (!(button1State == HIGH && button2State == HIGH)) { windingUp = false; servoPos = 0; servo1.write(servoPos); // Move servo to position 0 degrees when released } else if (servoPos < maxServoPos) { servoPos++; servo1.write(servoPos); delay(15); // Control the winding speed } } else { // Condition for both buttons pressed simultaneously if (button1State == HIGH && button2State == HIGH) { windingUp = true; } else if (button1State == HIGH) { servo1.write(0); // Move servo to position 0 degrees } else if (button2State == HIGH) { servo1.write(66); // Move servo to position 66 degrees } else if (button3State == HIGH) { servo1.write(132); // Move servo to position 132 degrees } } } |
...