* センサレスDCモータにセンサを付けて回す
#電子工作 #途中経過

HDDに用いられるセンサレスのDCブラシレスモータは、部品として取りだしてもそれを回すのはなかなか大変である。
…が、センサを付けてしまえば、複雑な位置検知回路は不要である。
というわけで、
・反射型フォトセンサ
・通電パターンを印刷した円盤
・トランジスタ
を組み合わせ、HDD用のセンサレスDCモータを回してみた。

HDDのモータは身近にあるモータの中では群を抜いて高精度な物なので、これを単体でいじれるとメカトロ野郎(or乙女)にとって面白いおもちゃになるだろう。
参考文献
トランジスタ技術 2000年2月号「特集 実験で学ぶモータ制御回路の設計」
ソリトン 2006年8月 モータの基礎と実用制御回路設計 モータの動作原理と特性
http://www.japanservo.jp/products/pdf/soliton34.pdf
日本サーボ株式会社
Eagle用データ
http://baku.homeunix.net/elec/loft/ptn4DCmoter.brd

ruby -Ks mkptn.rb > mkptn.scr
とかしてEagle用スクリプト生成し、作成した。
create : 2007/02/02 (Fri)
update : 2007/02/02 (Fri)

HDDに用いられるセンサレスのDCブラシレスモータは、部品として取りだしてもそれを回すのはなかなか大変である。
…が、センサを付けてしまえば、複雑な位置検知回路は不要である。
というわけで、
・反射型フォトセンサ
・通電パターンを印刷した円盤
・トランジスタ
を組み合わせ、HDD用のセンサレスDCモータを回してみた。

HDDのモータは身近にあるモータの中では群を抜いて高精度な物なので、これを単体でいじれるとメカトロ野郎(or乙女)にとって面白いおもちゃになるだろう。
参考文献
トランジスタ技術 2000年2月号「特集 実験で学ぶモータ制御回路の設計」
ソリトン 2006年8月 モータの基礎と実用制御回路設計 モータの動作原理と特性
http://www.japanservo.jp/products/pdf/soliton34.pdf
日本サーボ株式会社
Eagle用データ
http://baku.homeunix.net/elec/loft/ptn4DCmoter.brd

ruby -Ks mkptn.rb > mkptn.scr
とかしてEagle用スクリプト生成し、作成した。
include Math require 'complex' offset_x = 50 offset_y = 50 $中心 = Complex.new(offset_x, offset_y) 半径 = 45.72+1.27 # 2.54mm*18 幅 = -5.08 # 2.54mm*2 相数 = 3 極数 = 4 相間電気角 = 120 #[deg] 各相電気角正 = 90 #[deg] # 60:1相励磁 , 90:1-2相励磁 各相電気角負 = 90 #[deg] def 円弧(半径, 始角, 終角) # 始点・終点は[deg] 最小角 = 3 #[deg] 分割数 = ((終角-始角).abs/最小角).ceil points=[] for n in 0..分割数 θ = 2*PI* (始角 + (終角-始角)*n/分割数)/360 points << Complex.new(cos(θ),sin(θ))*半径 end return points end def eagle_coord(複素数) return sprintf("(%.3f %.3f)", 複素数.real, 複素数.image) end def put_polygon(内径, 幅, 始角, 終角) 内側 = 円弧(内径, 始角, 終角) 外側 = 円弧(内径+幅, 始角, 終角) points = [] points += 内側 points += 外側.reverse points << 内側[0] coords = "" points.each do |point| coords << eagle_coord(point+$中心) + " " end return "polygon " + coords end θ = 0 for 極 in 0..(極数-1) for 相 in 0..(相数-1) θ = 360*極/極数 + 相間電気角*相/極数 print put_polygon(半径+幅*相,幅, θ-各相電気角負/極数, θ+各相電気角正/極数) end end
create : 2007/02/02 (Fri)
update : 2007/02/02 (Fri)