Difference between revisions of "Bipolar Step Motor Driver"

From Hive13 Wiki
Jump to navigation Jump to search
(Log)
(Current Status - Inactive)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is the wiki page for the Stepper Driver that [[User:Traylerphi|TP]] is working on.
+
This is the wiki page for the Stepper Drivers that [[User:Traylerphi|TP]] was working on.
  
This project is a sub-project of [[DIY CNC Router]].
+
This project was a sub-project of the (still active) [[DIY CNC Router]] project, but is no longer itself active.
  
 
= Overview =
 
= Overview =
Line 7: Line 7:
  
 
== Background ==
 
== Background ==
Being a form of brushless motor, stepper motors require that their windings are charged in a particular sequence with particular polarities.  A motor driver is an electronic device that uses logic signals from a controller to connect the winding(s) of a motor to a power supply.  The logic signals from the controller determine how and when connections are made.  For the 50Ω bipolar stepper motors we need to drive, this boils down to two full H-bridges that can handle 12V with current spikes up to 400 mA, with an emphasis on minimum component count.
+
Being a form of brushless motor, stepper motors require that their windings are charged in a particular sequence with particular polarities.  A motor driver is an electronic device that uses logic signals from a controller to connect the winding(s) of a motor to a power supply.  The logic signals from the controller determine how and when connections are made, although some drivers simplify the interface out to the controller to only step (frequency controls speed) and direction (CW or CCW).  For the 50Ω bipolar stepper motors we need to drive, this boils down to two full H-bridges that can handle 12V with current spikes up to 2A, with an emphasis on minimum component count.
  
 
== Phase I ==
 
== Phase I ==
Control our 4-wire NEMA17 bipolar test motor with some random controller board laying around my apartment using an [http://www.sparkfun.com/commerce/product_info.php?products_id=9402 EasyDriver] board from Sparkfun.  The EasyDriver board can drive one (1) stepper motor.
+
Control our 4-wire NEMA17 bipolar test motor with an [[Arduino]] using an [http://www.sparkfun.com/commerce/product_info.php?products_id=9402 EasyDriver] board from Sparkfun.  The EasyDriver board can drive one (1) stepper motor.
  
 
The EasyDriver board is being used for this control exercise because:
 
The EasyDriver board is being used for this control exercise because:
Line 18: Line 18:
  
 
== Phase II ==
 
== Phase II ==
Attempt to build a low cost driver board and run this driver with the same random controller board.
+
Attempt to build a low cost driver board and run this driver with an [[Arduino]].
  
The EasyDriver boards cost about $15 (plus S&H) each.  I'll be trying to design a board that can be built for less than $45 to drive all three (3) motors we need for the project.  The hope is to design something that can be incorporated into a kit we can call our own while being reasonable for another Hackerspace to replicate.
+
The EasyDriver boards cost about $15 each (plus S&H).  I'll be trying to design a board that can be built for less than $30 to drive all the motors we need for the project.  The hope is to design something that can be incorporated into a kit we can call our own while being reasonable for another Hackerspace to use or even replicate from scratch.
 +
 
 +
A secondary design restraint is to make the custom board a drop-in replacement for the EasyDriver boards, so someone trying to build our CNC can use either without software changes.  Unfortunately, there will be one major difference:  the Phase II driver will full-step whereas the EasyDriver micro-steps.  Hopefully this is only a minor software change, like a configuration setting.
  
 
== Phase III ==
 
== Phase III ==
  
If the home grown driver is green-lighted by [[DIY CNC Router]] team, build soldered board and then test driving and controlling actual project motors with a single [[Arduino]] controller.
+
If the home grown driver is green-lighted by [[DIY CNC Router]] team, build soldered board and then test driving and controlling actual project motors with an [[Arduino]] controller.
 +
 
 +
= Code =
 +
 
 +
'''[[BSMD_PhaseI_Code|Phase I]]''' (Arduino)
  
 +
= Current Status - Inactive =
  
= Current Status - Active - Phase I =
+
With so many low cost options availble on the market, the desire for completing this project has waned considerably.
  
 
'''Phase I'''
 
'''Phase I'''
* In progress as of Oct 7th, 2009
+
* Completed, demo'd Oct 20, 2009 at weekly meeting
* Completion hoped for by Oct 13th, 2009
+
** We discovered EasyDriver "micro-steps" motors, which ''may'' not be the greatest thing
** Arduino on order - shipment time may delay completion past the 13th
 
** Rough draft of software complete, just waiting for board to arrive to test
 
  
 
'''Phase II'''
 
'''Phase II'''
 +
 +
* Basic circuit planned out
 +
* Waiting for parts
  
 
'''Phase III'''
 
'''Phase III'''
  
= Log =
+
= Work Log =
  
 
'''Oct 7, 2009'''
 
'''Oct 7, 2009'''
  
* Connector (mostly) repaired.  Used a #5 jeweler screwdriver to remove pin clamp and re-attached it to wire.  Clamp damaged by whatever original event damaged the cable (I received it damaged), so not 100% clamped. I took a picture of the clamp out of the connector, to be posted another time.
+
* Connector (good enough) repaired.  Used a #5 jeweler screwdriver to remove pin clamp and re-attached it to wire.  Clamp damaged by whatever original event damaged the cable (I received it damaged), so not 100% clamped. Solid enough for use as long as not further abused.  I took a picture of the clamp out of the connector, to be posted another time.
 
* [[Arduino]] on order.
 
* [[Arduino]] on order.
 
** Software IDE downloaded and unzipped (man it's huge!)
 
** Software IDE downloaded and unzipped (man it's huge!)
 
** Rough draft of exerise software written
 
** Rough draft of exerise software written
*** Since this is just a 'make it turn' exercise, the pan is to use a potentiometer for control, the more the pot is turned left, the faster left the moter goes, etc.
+
*** Since this is just a 'make it turn' exercise, the plan is to use a potentiometer for control: the more the pot is turned left, the faster the motor turns to the left, etc.
* Also ordered some cheap $1 hall-effect sensors (four) which could be of use to the [[DIY CNC Router]] project at some point.
+
* Also ordered some cheap $1 hall-effect sensors (four) which could possibly be of use to the [[DIY CNC Router]] project at some point.
 +
 
 +
 
 +
'''Oct 20, 2009'''
 +
 
 +
* Demo'd Phase I for Jim and Paul.
 +
** The connector broke again when I went to dissconnect it from motor.  :(
 +
* Jim and Dave have put together a 4 motor test stand - very cool
 +
** Dave is taking lead on EasyDrivers now, so I am moving on to Phase II
 +
 
  
 
= Current Issues =
 
= Current Issues =
  
* Connector for the test motor has a broken wire that will need to be repaired
+
* Waiting on part order
* Other end of connector is soldered to the EasyDriver, so trying to connect Phase II prototype to test motor will be a problem
+
 
** Actual motors for project have pigtail leads and not connectors
 
  
 
= Next Steps =
 
= Next Steps =
  
* Fix connector
+
* I have a $5 H-Bridge chip coming with an order I made for my RC car that has not been dedicated to anything; I ordered it 'just because' - too bad I only got one.  I think it is rated for 5A.  I'll get some more after doing a proof of concept.
* Setup development environment for my old AVR controller board (JackRabbit currently in use by [[Self-Guided RC Car AI]] project)
+
 
 +
 
 +
= Links of Interest =
 +
 
 +
* http://www.schmalzhaus.com/EasyDriverQuad/index.html
 +
 
 +
 
 +
[[Category:Arduino]]
 +
[[Category:InactiveProjects]]
 +
[[Category:Projects]]

Latest revision as of 18:57, 8 November 2010

This is the wiki page for the Stepper Drivers that TP was working on.

This project was a sub-project of the (still active) DIY CNC Router project, but is no longer itself active.

Overview

I have been tasked with exploring the control of a 4-wire bipolar stepper motor for the DIY CNC Router project.

Background

Being a form of brushless motor, stepper motors require that their windings are charged in a particular sequence with particular polarities. A motor driver is an electronic device that uses logic signals from a controller to connect the winding(s) of a motor to a power supply. The logic signals from the controller determine how and when connections are made, although some drivers simplify the interface out to the controller to only step (frequency controls speed) and direction (CW or CCW). For the 50Ω bipolar stepper motors we need to drive, this boils down to two full H-bridges that can handle 12V with current spikes up to 2A, with an emphasis on minimum component count.

Phase I

Control our 4-wire NEMA17 bipolar test motor with an Arduino using an EasyDriver board from Sparkfun. The EasyDriver board can drive one (1) stepper motor.

The EasyDriver board is being used for this control exercise because:

  • Jim already has one
  • It has a connection cable soldered to it that matches our test motor
  • It is cheaper than other ready-made alternatives suggested so far

Phase II

Attempt to build a low cost driver board and run this driver with an Arduino.

The EasyDriver boards cost about $15 each (plus S&H). I'll be trying to design a board that can be built for less than $30 to drive all the motors we need for the project. The hope is to design something that can be incorporated into a kit we can call our own while being reasonable for another Hackerspace to use or even replicate from scratch.

A secondary design restraint is to make the custom board a drop-in replacement for the EasyDriver boards, so someone trying to build our CNC can use either without software changes. Unfortunately, there will be one major difference: the Phase II driver will full-step whereas the EasyDriver micro-steps. Hopefully this is only a minor software change, like a configuration setting.

Phase III

If the home grown driver is green-lighted by DIY CNC Router team, build soldered board and then test driving and controlling actual project motors with an Arduino controller.

Code

Phase I (Arduino)

Current Status - Inactive

With so many low cost options availble on the market, the desire for completing this project has waned considerably.

Phase I

  • Completed, demo'd Oct 20, 2009 at weekly meeting
    • We discovered EasyDriver "micro-steps" motors, which may not be the greatest thing

Phase II

  • Basic circuit planned out
  • Waiting for parts

Phase III

Work Log

Oct 7, 2009

  • Connector (good enough) repaired. Used a #5 jeweler screwdriver to remove pin clamp and re-attached it to wire. Clamp damaged by whatever original event damaged the cable (I received it damaged), so not 100% clamped. Solid enough for use as long as not further abused. I took a picture of the clamp out of the connector, to be posted another time.
  • Arduino on order.
    • Software IDE downloaded and unzipped (man it's huge!)
    • Rough draft of exerise software written
      • Since this is just a 'make it turn' exercise, the plan is to use a potentiometer for control: the more the pot is turned left, the faster the motor turns to the left, etc.
  • Also ordered some cheap $1 hall-effect sensors (four) which could possibly be of use to the DIY CNC Router project at some point.


Oct 20, 2009

  • Demo'd Phase I for Jim and Paul.
    • The connector broke again when I went to dissconnect it from motor. :(
  • Jim and Dave have put together a 4 motor test stand - very cool
    • Dave is taking lead on EasyDrivers now, so I am moving on to Phase II


Current Issues

  • Waiting on part order


Next Steps

  • I have a $5 H-Bridge chip coming with an order I made for my RC car that has not been dedicated to anything; I ordered it 'just because' - too bad I only got one. I think it is rated for 5A. I'll get some more after doing a proof of concept.


Links of Interest