Code Monkey home page Code Monkey logo

Nicholas Branson Francis's Projects

diy-cnc-winding-machine icon diy-cnc-winding-machine

I have created a PYTHON program (around 1000 lines of code) for my Raspberry Pi 4 to automate an old, purely mechanical winding machine for winding coils using copper wire, mainly used for the purpose of motors/generators, etc. Initially, you would have to manually wind your coils mechanically by using your right hand to turn the spindle, which rotates the attached bobbin, and the wire fed through the wire guide gets wound over the bobbin. The rotation of the main spindle would also result in the horizontal movement of the wire guide, since the gear of the spindle is mechanically linked to that of the wire guide, through a series of pulleys , rubber bushes, gears, etc. The issue is that, its not all that precise, since you could still encounter overlappings, or gap formations, while winding. Therefore, you would have to carefully wind coils to ensure no gaps or overlaps occur by slowly rotating the spindle with your hand, while paying attention to the winding process, which would take eons to wind one coil, as well as a lot of tiresome and stress. But with retrofitting, most of the above mentioned issues have been nullified. With a pair of stepper motors, stepper drivers, frequency generators, encoders, and a single-board computer to command all these components, it is a BREEZE. One stepper motor connected to the main spindle which rotates the bobbin, another stepper motor which controls the wire guide horizontal travel (right or left). Respective stepper drivers are connected to drive these motors, so that input is given to these drivers, which would drive the motors. Using these drivers, we can alter the speed of the motors, the direction (clockwise or anti-clockwise), as well as enable/disable the motors. A frequency input is given to the driver to spin the motor at desired RPMS. Initially, I generated the frequency from the Raspberry Pi , but found out to be unstable and erratic. Therefore, separate digital frequency oscillators had to be used to produce the frequency steadily. These oscillators support UART protocol, so I was able to interface them with the Raspberry Pi via the Serial communication bus. The Raspberry Pi sends commands under a certain format to these frequency oscillators to change the frequency as well as the duty cycle of their outputs, which are given as inputs to the respective motor drivers. This way, Raspberry Pi can act as the Brain, while the donkey work is done by those oscillators. These two oscillators are mathematically linked using a formula based on the wire thickness used for the winding, which is specified in the PYTHON script. This way, depending on what speed was set for the main spindle motor, the speed motor of the wire-guide goes at a ratio, thereby reducing the chance of overlaps or gap formations while winding. With this setup, you don't have to use your hand to rotate the spindle. It does everything automatically, although you have to keep an eye while the process is going on, incase something happens. You can pause in between in order to sort any kind of issue. The wire guide direction changes automatically after covering each layer, from left to right, and vice-versa. A coil which would normally take 2 hours to be wound precisely, would just take 30 minutes to be wound on a retrofitted machine like this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.