For the 50 per cent of the population whose spatial and auditory senses are diminished by what one could only presume is due to massive brain damage caused by a series of tragic falls down several flights of stairs, this heroic ballet-ing robit will reserve your obnoxiousness from the rest of us who acknowledge that other people exist.
Ingredients Arduino Nano Magnetic Spring Module MG995 Servo (3) 9G Servo Magnet
Notations 1. 9G servos (plastic gears) torque limited - remodeled with MG995s. 2. Divvyed up the segments for printing sake - to make alterations and not rehash the entire build. 3. 33 hours remaining in the MacroFab contest - wrote a new Arduino serial testing script for multiple servos. https://hackaday.io/project/166931-arduino-door-catcher/log/166873-arduino-control-multiple-servos-thru-serial-monitor 4. MacroFab extended the deadline by 20 days - sigh of unnecessary relief. https://macrofab.com/blog/macrofab-design-contest-useless-machine-sponsored-by-mouser-electronics/ 5. The door handle 'grasp' -er relies a bit on circumstance - tension must be applied by pressure to the knob to initiate rotational shift of the grasp which then applies tension to the handle permitting the turning subsequent of the turning. Got it?! Rotation tensions rotation that tensions rotation. 6. 5V 2A power supply was insufficient for VarServoSpeed code which runs servo simultaneously. Separated the Nano and magnetic module to another 5V - gnd together. 7. VarServoSpeed is magic! https://github.com/netlabtoolkit/VarSpeedServo 8. MacroFab contest 'entry' suffixed to the video -> The Door Uncloser 9. It was brought to our (my) attention that this project in fact could be un-useless - by permitting those with arthritis to open/close doors with ease while still fulfilling need for closed doors - say for while watching grandchildren or pets or et cetera. [sneer]
// Door Opened if (magnet == HIGH) { // Door Was Closed if (state == 0) { Serial.println("Active"); delay(1000); engage(); state = 1; // Door Was Open } else if (state == 1) { do_it(); Serial.println("Deactived"); delay(1000); state = 0; } } delay(47); }