Commit Graph

45 Commits

Author SHA1 Message Date
Matt McWilliams 65ca7e882f Add neopixel example 2024-03-07 09:01:54 -05:00
Matt McWilliams eb6461c416 Work on report and start on integrating WebGUI 2024-03-03 10:16:39 -05:00
Matt McWilliams 9dde491bcb Begin progress on web gui stub. Make AP-only for now and form post. Would bluetooth from a webapp be better? 2024-03-02 22:49:10 +01:00
Matt McWilliams 6cf8f62a42 Add variables to start and stop lamp and alternately stop the machine after x number of frames 2024-02-25 14:00:24 +01:00
Matt McWilliams 7981250d5a Changed from dev mode to working mode. Lamp turns on after 24 frames. Will make it configurable. 2024-02-24 14:04:16 +01:00
Matt McWilliams 39650094bd Code is in test mode for getting approximations of the motor speed with no load, under single strand of film load and with 2 films. Should be possible to create a control loop to maintain a roughly-accurate speed. 2024-02-23 00:31:14 +01:00
Matt McWilliams 8efa6cea8a Moved all proof of concept sketches into ino/demos 2024-02-22 10:49:54 +01:00
Matt McWilliams f9803d2648 Add proof of concept blink script for wiring the lamp to be driven by +5V and the TIP120 controlling 3 LEDs at once. 2024-02-21 22:54:46 +01:00
Matt McWilliams 7c8be86fb8 Motor speed is now calculated (flawed). Tests can be run on various PWM speeds, resolutions and with and without loads to determine the ability for the printer run at maximum speeds. 2024-02-21 22:48:08 +01:00
Matt McWilliams db1f8c4100 Make some sacrifices in the DriveMotor class to make it non-generalizable. Working towards porting timing functions from encoder proof of concept sketch. 2024-02-21 16:47:53 +01:00
Matt McWilliams 1aca2dd5c0 Motor behavior is stable. Discarded one of the L298N boards: now we can run the drive motor off one channel and both takeup motors off another. DO NOT USE LESS THAN 2A. Using 1.3A the motor controller board draws too much and shuts it down. Removed the rerences to Picture/Stock and am just using takeup. All progress at Worm. 2024-02-20 22:11:13 +01:00
Matt McWilliams a39ba5c94d Test second set of pins 2024-02-20 12:17:39 +01:00
Matt McWilliams 0dc3269b31 Fixed the pinouts for the drive motor. Temporarily disabled takeup. 2024-02-19 13:35:27 +01:00
Matt McWilliams 6869b6f403 Add Serial output for debugging 2024-02-19 13:28:16 +01:00
Matt McWilliams 93a4418545 Re-arrange pins 2024-02-18 16:48:59 +01:00
Matt McWilliams 6ab151a664 Add placeholder jog_motor sketch in case motors need to be adjusted during use. 2024-02-18 10:34:19 -05:00
Matt McWilliams 2401fcf8e7 Create the Lamp class which will abstract to different lamp types before one is settled on. 2024-02-17 14:57:26 +00:00
Matt McWilliams e1f6085b87 Add variables for setting the target fps and rpm 2024-02-17 14:18:06 +00:00
Matt McWilliams 6205cef7f1 Add version file and VERSION constant to project 2024-02-17 14:00:10 +00:00
Matt McWilliams c036aad6cb Rename classes and constructors from EncoderMotor to DriveMotor. 2024-02-17 13:09:20 +00:00
Matt McWilliams 937cb85141 Rename encoder motor files drive motor (still broken). 2024-02-17 13:06:51 +00:00
Matt McWilliams 1056e81b82 Fill out EncoderMotor methods and add variables to be used to calculate position + speed and used for PID. TODO: rename class because it is not a generic EncoderMotor class, should instead be DriveMotor. 2024-02-17 13:05:43 +00:00
Matt McWilliams 1c1978107d Move all ramp variables to class members. To move the ramp behavior to the Loop() method there will need to be a global timer. 2024-02-17 12:17:26 +00:00
Matt McWilliams 344e1e8d1d Implement pwm ramp up with ledcWrite(), not analogWrite(). Use directional pins to start in particular direction and stop in both. Ramp behavior should move to loop so that it is not blocking loop behavior. 2024-02-16 18:57:57 -05:00
Matt McWilliams 899b52777a Assign pins to the correct pins for motor control 2024-02-14 22:24:18 -05:00
Matt McWilliams fe532a1f65 Start claiming pins 2024-02-11 11:49:46 -05:00
Matt McWilliams bf48f52333 Pass all Setup() and Loop() methods into Arduino setup() and loop() functions. 2024-02-03 16:35:29 -05:00
Matt McWilliams eb3c920d2d Project compiles now with scripts/compile.sh and in the IDE 2024-02-01 11:40:38 -05:00
Matt McWilliams 6321367c97 Create EncoderMotor.cpp. Compiler error on analogWrite using ESP32 build target. Without it the ledc* functions are unavailable. Will pull ESP32 build process over from meterlite. 2024-01-31 23:08:10 -05:00
Matt McWilliams 20d37eb1e6 Add header file for a motor encoder class. 2024-01-30 22:37:02 -05:00
Matt McWilliams a9944f5a47 Caught the error that was making me think I broke my ESP32 dev boards. The ledcWrite() duty cycle was not being set on the pwmChannel. This is intended for LEDS but I don't know if it matters that it's being used for a variable speed DC motor. 2024-01-30 00:12:36 -05:00
Matt McWilliams 11026922ad Bevel the sprockets and add reinforcement to let a bearing fit without issue. 2024-01-25 19:47:32 -05:00
Matt McWilliams de1ef1492b Fix calculate fps, find PWM value that (under no load) is roughly 24fps, calculate rolling fps (very inacurate) ready for analysis in notes and PID implementation. 2024-01-22 21:31:08 -05:00
Matt McWilliams d96e0d30b3 Check against rotations. 2024-01-22 11:42:21 -05:00
Matt McWilliams 78fb25b5a1 Calculate all frames 2024-01-22 11:40:10 -05:00
Matt McWilliams b32f6ad476 Fix the calculateFPS function 2024-01-22 11:39:27 -05:00
Matt McWilliams ec5915a6f9 Start calculating based on pulses, not on incrementing outside the interrupt 2024-01-21 22:32:28 -05:00
Matt McWilliams 5282fbec1c Update the esp32 poc to reflect what it is. 2024-01-21 22:27:40 -05:00
Matt McWilliams d1302e79fd Sketch has been updated to do monitoring of multiple rotations, active monitoring of number of estimated frames. Currently not registering the first ~910 pulses (why??) 2024-01-13 23:29:25 -05:00
Matt McWilliams 86b41954a5 Found ratio, seemingly 11PRR x 62:1 motor gearbox. 2024-01-13 01:33:07 -05:00
Matt McWilliams 6eb06ca724 Proof of concept encoder analysis. Still to not have a solid gear ratio but it's clear the encoder is very likely 11 PPR. Rotations take ~650 pulses, maybe 660 but it's hard to tell because the gearing makes stopping inconsistent. 2024-01-12 23:33:04 -05:00
Matt McWilliams d512a56b03 Arduino sketches, proofs of concept for different features 2024-01-11 23:14:02 -05:00
Matt McWilliams abc2054600 Define IO behavior 2023-05-25 10:40:02 -04:00
Matt McWilliams 7dc33b5dc1 Rough draft of new contact printer library and class layout. 2023-05-25 08:32:42 -04:00
mmcw-dev 41facffab0 All contact printer work to date. 2018-07-14 10:29:43 -04:00