モータと、前記モータに回転駆動される先端工具と、前記モータの回転をマイクロプロセッサを用いて制御する制御部を有する電動工具であって、前記制御部に記憶手段を設け、前記モータの使用状況を学習して前記記憶手段に制御情報として記憶し、前記記憶された制御情報に従って前記モータを駆動することを特徴とする電動工具。前記学習される制御情報には、前記モータによる締め付け時間、前記モータの電流制限値、前記モータの回転数、のいずれかを含むことを特徴とする請求項1に記載の電動工具。前記学習される制御情報は、作業者によって指定された特定作業において得られる学習値であることを特徴とする請求項2に記載の電動工具。前記電動工具はハンマとアンビルを有する打撃工具であって、前記制御情報は、前記ハンマと前記アンビルを用いた連続駆動モードから断続駆動モードへの移行タイミングを決定する情報であることを特徴とする請求項1~3のいずれか一項に記載の電動工具。前記制御情報は、前記連続駆動モードから断続駆動モードへ切り替える際の前記モータの電流値であることを特徴とする請求項4に記載の電動工具。前記特定作業の開始と終了を指定するためのサンプルモードスイッチを設けたことを特徴とする請求項1~5のいずれか一項に記載の電動工具。前記特定作業は複数回実行され、前記特定作業時に取得された複数の駆動電流値から算出された値を制御情報として設定することを特徴とする請求項6に記載の電動工具。前記算出値は、前記取得された駆動電流値の最大値の平均であることを特徴とする請求項7に記載の電動工具。前記記憶手段に記憶された制御情報を破棄して工場出荷時の制御情報に戻すリセット機能を設けたことを特徴とする請求項1から8のいずれか一項に記載の電動工具。特許文献1のような従来においては、電動工具の製造業者が工場出荷前に作業者ユーザにとって最適と思われる制御モードを予め設定するので、電動工具の出荷後は制御モードを変更することが実質的に不可能であった。従って、作業者が締め付けの制御や、連続駆動モードから断続駆動モードへの移行するタイミングをユーザにあわせて変更することはできなかった。本発明は上記背景に鑑みてなされたもので、その目的は使用するユーザ毎に最適な駆動モードを実現できる電動工具を提供することにある。本発明の別の目的は、ユーザに最適な駆動制御を学習することにより最適な駆動モードを実現する電動工具を提供することにある。本発明のさらに別の目的は、簡単な操作でユーザの希望する駆動制御条件に変更することができる電動工具を提供することにある。本願において開示される発明のうち代表的なものの特徴を説明すれば次の通りである。本発明の一つ特徴によれば、モータと、モータに回転駆動される先端工具と、モータの回転をマイクロプロセッサを用いて制御する制御部を有する電動工具であって、制御部に記憶手段を設け、モータの使用状況を学習して記憶手段に制御情報として記憶し、記憶された制御情報に従ってモータを駆動するように構成した。学習される制御情報には、モータによる締め付け時間、モータの電流制限値、モータの回転数のいずれかを含む。学習される制御情報は、作業者によって指定された特定作業において得られる学習値にすると良い。また、特定作業の開始と終了を指定するためのサンプルモードスイッチを設けると好ましい。本発明の他の特徴によれば、電動工具はハンマとアンビルを有する打撃工具であって、制御情報はハンマとアンビルを用いた連続駆動モードから断続駆動モードへの移行タイミングを決定する情報であり、好ましくは前記連続駆動モードから断続駆動モードへ切り替える際のモータの電流値である。学習後の通常の使用においては、連続駆動時のモータに流れる電流値が学習された電流値に到達した場合に、モータを連続駆動から断続駆動に切り替えて打撃動作を行うように制御する。本発明のさらに他の特徴によれば、学習のための特定作業は複数回実行され、特定作業時に取得された複数の駆動電流値から算出された値を制御情報として設定する。この算出値は取得された駆動電流の最大値の平均値とすることができる。また、電動工具には記憶手段に記憶された制御情報を破棄して工場出荷時の制御情報に戻すリセット機能が設けられる。請求項1の発明によれば、制御部に記憶手段を設け、モータの使用状況を学習して記憶手段に制御情報として記憶し、記憶された制御情報に従ってモータを駆動するので、作業者ごとに異なる締め付け作業に最適な制御を実現できる。請求項2の発明によれば、学習される制御情報には、モータの締め付け時間、モータの電流制限値、モータの回転数のいずれかを含むので、作業者の使用状況に合わせてこれらの制御情報を最適な情報に変更することができる。請求項3の発明によれば、学習される制御情報は作業者によって指定された特定作業において得られる学習値であるので、サンプルとなる数回の作業から適正な制御情報を決定することができる。請求項4の発明によれば、制御情報はハンマとアンビルを用いた連続駆動モードから断続駆動モードへの移行タイミングを決定する情報であるので、締め付け作業に適した最適な打撃動作を実現することができる。制御情報は、連続駆動モードから断続駆動モードへ切り替える際のモータの電流値であるので、制御情報を変更するだけで容易に打撃強さを変更することができる。請求項6の発明によれば、特定作業の開始と終了を指定するためのサンプルモードスイッチを設けたので、作業者によって任意のタイミングで学習動作を行うことができる。請求項7の発明によれば、特定作業は複数回実行され、複数回の特定作業時に取得された駆動電流値をもとに算出した算出値を切り替え電流制御情報として設定するので、作業者が意図した制御状態を確実に再現できる電動工具を提供できる。請求項8の発明によれば、算出値は取得された駆動電流値の最大値の平均であるので、作業者の意図する状況と一致する最適な制御情報を設定することができる。請求項9の発明によれば、記憶手段に記憶された制御情報を破棄して工場出荷時の制御情報に戻すリセット機能を設けたので、学習された制御情報が好ましくない状態であっても容易に初期状態に戻すことができ、使いやすい電動工具を実現できる。本発明の上記及び他の目的ならびに新規な特徴は、以下の明細書の記載及び図面から明らかになるであろう。以下、本発明の実施例を図面に基づいて説明する。以下の説明において、上下前後の方向は、図1中に示した方向として説明する。図1は本発明に係る電動工具1の全体構造を示す縦断面図である。電動工具1は、充電可能なバッテリパック2を電源とし、モータ3を駆動源として打撃機構50を駆動し、出力軸であるアンビル61に回転力と打撃を与えることによってドライバビット等の図示しない先端工具に連続する回転力や断続的な打撃力を伝達してネジ締めやボルト締め等の作業を行う。モータ3は、ブラシレスDCモータであって、側面から見て略T字状の形状を成すハウジング6の略筒状の胴体部6a内に、回転軸4の軸方向が前後方向と一致するように胴体部6a内に収容される。ハウジング6は、ほぼ対称な形状の左右2つの部材に分割可能に構成され、それら部材が複数の図示しないネジにより固定される。そのため、分割されるハウジング6の一方本実施例では左側ハウジングに複数のネジボス19bが形成され、図示しない他方のハウジング右側ハウジングに複数のネジ穴が形成される。モータ3の回転軸4は、胴体部6aの後端側のベアリング17bと中央部付近に設けられるベアリング17aによって回転可能に保持される。モータ3の後方には6つのスイッチング素子11が搭載されたインバータ基板10が設けられ、これらスイッチング素子11によってインバータ制御を行うことによりモータ3を回転させる。インバータ基板10の前方側であって回転子の永久磁石に対向する位置には、回転子の位置を検出するためのホールIC等の回転位置検出素子図示せずが搭載される。ハウジング6の胴体部6aから略直角方向下方に一体に延びるハンドル部6b内の上部にはトリガ操作部8a及び正逆切替レバー14が設けられ、トリガスイッチ8には図示しないバネによって付勢されてハンドル部6bから突出するトリガ操作部8aが設けられる。胴体部6aの先端側に接続されるハンマケース7の下方位置にはLED12が保持される。LED12は、装着穴61aに図示せぬ先端工具であるビットが装着された際に、ビットの前端付近を照射可能に構成される。ハンドル部6b内の下方であってバッテリ保持部6cの内部には、トリガ操作部8aの操作に応じてモータ3の速度を制御する機能等を備えた制御回路を搭載する制御回路基板9が収容される。制御回路基板9の側方には電動工具1の動作モードを設定するための後述する複数のスイッチが設けられる。スイッチによって複数の動作モードを切り替えることができ、例えば動作モードを、ドリルモードクラッチ機構無し、ドリルモードクラッチ機構付き、又は、インパクトモードに切り替えることができる。インパクトモードにおいては、打撃トルクの強さを段階的に又は連続的に可変に設定できるように構成すると好ましい。ハンドル部6bの下方に形成されたハウジング6のバッテリ保持部6cには、ニッケル水素やリチウムイオン等の複数の電池セルが収容されたバッテリパック2が着脱可能に装着される。バッテリパック2は、ハンドル部6bの内部にまで伸びる延在部2aが形成され、図1のように側面からみると略L字状の形状である。バッテリパック2の両側側面にはリリースボタン2bが設けられ、リリースボタン2bを押しながら下方にバッテリパック2を移動させることにより、バッテリパック2をバッテリ保持部6cから取り外すことができる。モータ3の前方には、回転軸4に取り付けられてモータ3と同期して回転する冷却ファン18が設けられる。冷却ファン18は、回転方向によらずに回転軸4付近の空気を吸引して径方向外側に排出する遠心ファンであり、冷却ファン18により胴体部6aの後方に設けられた空気取入口13aから空気が吸引される。ハウジング6の内部に吸引された外気は、モータ3の回転子3aと固定子3bの間、及び、固定子3bの磁極の間を通過した後に冷却ファン18に到達し、冷却ファン18の半径方向外周側付近に形成される複数の空気排出口後述からハウジング6の外部に排出される。打撃機構50は、アンビル61と遊星キャリヤ組立体51の2つの部品により構成され、遊星キャリヤ組立体51は遊星歯車減速機構20の遊星歯車の回転軸を連結すると共に、アンビル61を打撃するための後述するハンマの機能を有する。現在広く使われている公知の打撃機構と違って、打撃機構50は、スピンドル、スプリング、カム溝、及びボール等を有するカム機構をもたない。そしてアンビル61と遊星キャリヤ組立体51とは回転中心付近に形成された嵌合軸と嵌合穴により半回転未満の相対回転だけができるように連結される。アンビル61は、先端工具図示せずを装着する出力軸部分と一体に構成され、前端には軸方向と鉛直面の断面形状が六角形の装着穴61aが形成される。尚、アンビル61と、先端工具を装着する出力軸は別体部品で構成して連結させるように構成しても良い。アンビル61の後方側は遊星キャリヤ組立体51の嵌合軸と連結され、軸方向中央付近でメタル16aによりハンマケース7に対して回転可能に保持される。アンビル61の先端には先端工具をワンタッチで着脱するためのスリーブ15が設けられる。これらアンビル61と遊星キャリヤ組立体51の詳細形状については後述する。ハンマケース7は打撃機構50及び遊星歯車減速機構20を収容するために金属製の一体成形で製造され、ハウジング6の前方側の内部に装着される。ハンマケース7は、ベアリング機構を介してアンビル61を保持するものであり、左右分割式のハウジング6によって全体が覆われるようにして固定される。ハンマケース7は、ハウジング6に対してしっかりと保持されるので、アンビル61の軸受け部分にガタつきが生ずることを防止できる。トリガ操作部8aが引かれてモータ3が起動されると、モータ3の回転は遊星歯車減速機構20によって減速され、モータ3の回転数に対して所定の比率の回転数で遊星キャリヤ組立体51が回転する。遊星キャリヤ組立体51が回転すると、その回転力は遊星キャリヤ組立体51に設けられる後述するハンマを介してアンビル61に伝達され、アンビル61が遊星キャリヤ組立体51と同じ速度で回転を開始する。先端工具側からの受ける反力によってアンビル61にかかる力が大きくなると、後述する制御部は締め付け反力の増大を検出し、モータ3の回転が停止してロック状態になる前に、遊星キャリヤ組立体51の駆動モードを変更してハンマを断続的に駆動する。図2は本発明の実施例に係る電動工具1の側面図である。ハウジング6は3つの部分胴体部6a、ハンドル部6b、バッテリ保持部6cから構成され、胴体部6aの、冷却ファン18の半径方向外周側付近には冷却風排出用の空気排出口13bが形成される。ハウジング6は、モータ3の回転軸4を通る鉛直面にて左右分割式に形成され、複数本のネジ19aによって左右に分割可能なハウジング6が固定される。ハウジング6の前方側には、先端工具保持部を構成するスリーブ15が突出する。ハウジング6のバッテリ保持部6cの一部には、モータ3の駆動モードドリルモード、インパクトモードを切り替えるためのモード切替スイッチ31とモード表示LED32が設けられる。次に図3及び図4を用いて、打撃機構50を構成する遊星キャリヤ組立体51とアンビル61の詳細構造を説明する。図3は、遊星キャリヤ組立体51とアンビル61の形状を示す斜視図であり、遊星キャリヤ組立体51は斜め前方から、アンビル61は斜め後方から見た図である。本実施例における遊星歯車減速機構20はプラネタリー型であり、サンギヤ、複数のプラネタリーギヤ、リングギヤを含んで構成される。遊星キャリヤ組立体51は、2つの打撃爪たるハンマ52、53を有し、アンビル61に形成された打撃爪64、65に対応する。遊星キャリヤ組立体51はモータ3と同方向に回転する。遊星キャリヤ組立体51は、一体に構成される円盤状部材54を基本とし、円盤状部材54の対向する2箇所に軸方向前方に突出する2つのハンマ52、53が形成される。ハンマ52、53は打撃部打撃爪として機能し、ハンマ52の円周方向には、打撃面52aと52bが形成され、ハンマ53の円周方向には、打撃面53aと53bが形成される。打撃面52a、52b、53a、53bは、共に平面に形成されたもので、アンビル61の後述する被打撃面と良好に面接触する。円盤状部材54の中心軸付近から前方に、突当部56aと嵌合軸56bが形成される。円盤状部材54の後方側には遊星キャリヤの機能を有するように2つの円盤部が形成され図3では1つだけが見える、円盤部55b円周方向の3箇所において2つの円盤部を接続する接続部55cが形成される。円盤部55bの円周方向のそれぞれ3箇所には、貫通穴55eが形成され、2つの円盤部の間に3つのプラネタリーギヤ図示せずが配置され、これらプラネタリーギヤの回転軸たるニードルピン図示せずが貫通穴55eに装着される。尚、遊星キャリヤ組立体51は、金属の一体構造にて製造すると強度的にも重量的にも好ましい。同様にアンビル61も金属の一体構造にて製造すると強度的にも重量的にも好ましい。アンビル61は、円柱形の出力軸部分62の後方に円盤部63が形成され、この円盤部63の外周方向に突出する2つの打撃爪64、65が形成される。打撃爪64の円周方向両側には被打撃面64a及び64bが形成される。同様に打撃爪65の円周方向両側には被打撃面65a及び65bが形成される。円盤部63の中央には嵌合穴63aが形成され、嵌合軸56bが嵌合穴63aによって回動可能なように接続されることにより、遊星キャリヤ組立体51とアンビル61が、モータ3の回転軸4と同軸延長線上にて相対回転できるように構成される。遊星キャリヤ組立体51が正回転ネジ等を締め付ける回転方向するときには、打撃面52aが被打撃面64aに当接し、同時に打撃面53aが被打撃面65aに当接する。また、遊星キャリヤ組立体51が逆回転ネジ等をゆるめる回転方向するときには、打撃面52bが被打撃面65bに当接し、同時に打撃面53bが被打撃面64bに当接する。この当接するタイミングが同時となるようにハンマ52、53及び打撃爪64、65の形状が決定されるので、回転する軸心を基準に対称な2箇所にて打撃が行われ、打撃時のバランスが良く電動工具1が振られにくい。図4は、ハンマ52、53及び打撃爪64、65の使用状態における一回転の動きを6段階で示した断面図である。断面は軸方向と垂直面であって、図1のA-A部の断面である。図4においては、ハンマ52、53及び円盤部55aが一体に回転する部分駆動側であり、打撃爪64、65が一体に回転する部分被駆動側である。図41の状態において、先端工具からうける締め付けトルクが小さいうちは、打撃爪64、65はハンマ52、53から押されることにより反時計回りに回転する。しかしながら、締め付けトルクが大きくなってハンマ52、53から押される力だけでは回転できなくなった場合には、ハンマ52、53を逆回転させるべく、モータ3の逆回転駆動を開始する。1で示す状態においてモータ3の逆転を開始し、それによって2に示すようにハンマ52、53を矢印58aの方向に回転させる。モータ3が図43の矢印58bに示す所定回転角度だけ後退した位置に到達したら、モータ3に正回転方向への駆動電流を流すことにより、ハンマ52、53の矢印59aの方向正回転方向への回転を開始する。尚、ハンマ52、53を逆回転させた際に、ハンマ52と打撃爪65、及びハンマ53と打撃爪64が衝突しないように、停止位置において確実にハンマ52、53を停止させることが重要である。ハンマ52、53の停止位置を、打撃爪64、65と衝突する位置のどの程度前に設定するかは任意であるが、必要とされる締め付けトルクが大きいときは、逆転角を大きくすると良い。停止位置は、モータ3の回転位置検出素子の出力信号を用いて検出および制御される。そして、図44で示すようにハンマ52、53を矢印59bの方向に加速させて、図45に示す位置にてモータ3への駆動電圧の供給をストップするとほとんど同時に、ハンマ52の打撃面52aは打撃爪64の被打撃面64aと衝突する。同時に、ハンマ53の打撃面53aは打撃爪65の被打撃面65aと衝突する。この衝突の結果、打撃爪64、65には強力な回転トルクが伝達され、打撃爪64、65は図46の矢印59dで示す方向に回転する。図46の位置は、図41で示した状態から、ハンマ52、53と打撃爪64、65の双方が所定角度分だけ回転した状態であり、再び図41の状態から図45に至る正転及び逆転動作を繰り返すことによって、被締め付け部材を適正トルクになるまで締め付けを行う。次に、モータ3の駆動制御系の構成と作用を図5に基づいて説明する。図5はモータ3の駆動制御系の構成を示すブロック図であり、本実施例では、モータ3は3相のブラシレスDCモータで構成される。このブラシレスDCモータは、いわゆるインナーロータ型であって、複数組本実施例では2組のN極とS極を含む永久磁石マグネットを含んで構成される回転子ロータ3aと、スター結線された3相の固定子巻線U、V、Wから成る固定子3bと、回転子3aの回転位置を検出するために周方向に所定の間隔毎、例えば角度60°毎に配置された3つの回転位置検出素子ホール素子78を有する。これら回転位置検出素子78からの位置検出信号に基づいて固定子巻線U、V、Wへの通電方向と時間が制御され、モータ3が回転する。インバータ基板10上に搭載されるインバータ回路72には、3相ブリッジ形式に接続されたFETなどの6個のスイッチング素子Q1~Q6図1のスイッチング素子11を含む。ブリッジ接続された6個のスイッチング素子Q1~Q6の各ゲートは、制御回路基板9に搭載される制御信号出力回路73に接続され、6個のスイッチング素子Q1~Q6の各ドレインまたは各ソースは、スター結線された固定子巻線U、V、Wに接続される。これによって、6個のスイッチング素子Q1~Q6は、制御信号出力回路73から入力されたスイッチング素子駆動信号H4、H5、H6等の駆動信号によってスイッチング動作を行い、インバータ回路72に印加されるバッテリパック2の直流電圧を3相U相、V相及びW相電圧Vu、Vv、Vwとして固定子巻線U、V、Wに電力を供給する。6個のスイッチング素子Q1~Q6の各ゲートを駆動するスイッチング素子駆動信号3相信号のうち、3個の負電源側スイッチング素子Q4、Q5、Q6をパルス幅変調信号PWM信号H4、H5、H6として供給し、制御回路基板9上に搭載された演算部71によって、トリガスイッチ8のトリガ操作部8aの操作量ストロークの検出信号に基づいてPWM信号のパルス幅デューティ比を変化させることによってモータ3への電力供給量を調整し、モータ3の起動/停止と回転速度を制御する。ここで、PWM信号は、インバータ回路72の正電源側スイッチング素子Q1~Q3または負電源側スイッチング素子Q4~Q6の何れか一方に供給され、スイッチング素子Q1~Q3またはスイッチング素子Q4~Q6を高速スイッチングさせることによってバッテリパック2の直流電圧から各固定子巻線U、V、Wに供給する電力を制御する。尚、本実施例では、負電源側スイッチング素子Q4~Q6にPWM信号が供給されるため、PWM信号のパルス幅を制御することによって各固定子巻線U、V、Wに供給する電力を調整してモータ3の回転速度を制御することができる。電動工具1には、モータ3の回転方向を切り替えるための正逆切替レバー14が設けられ、回転方向設定回路82は正逆切替レバー14の変化を検出するごとに、モータの回転方向を切り替えて、その制御信号を演算部71に送信する。演算部71は、図示していないが、処理プログラムとデータに基づいて駆動信号を出力するための中央処理装置CPU、処理プログラムや制御データを記憶するためのROM、データを一時記憶するためのRAM、タイマ等を含んで構成される。制御信号出力回路73は、回転方向設定回路82と回転子位置検出回路74の出力信号に基づいて所定のスイッチング素子Q1~Q6を交互にスイッチングするための駆動信号を形成し、その駆動信号を制御信号出力回路73に出力する。これによって固定子巻線U、V、Wの所定の巻線に交互に通電し、回転子3aを設定された回転方向に回転させる。この場合、負電源側スイッチング素子Q4~Q6に印加する駆動信号は、印加電圧設定回路81の出力制御信号に基づいてPWM変調信号として出力される。モータ3に供給される電流値は、電流検出回路79によって測定され、その値が演算部71にフィードバックされることにより、設定された駆動電力となるように調整される。尚、PWM信号は正電源側スイッチング素子Q1~Q3に印加しても良い。演算部71には、データを一時記憶するためのRAMが含まれるが、不揮発性の外部記憶装置としてEEPROMElectricallyErasableProgrammableRead-OnlyMemory76が接続される。EEPROM76には、演算部71で実行される複数のプログラムや各種パラメータ等が記憶され、本実施例における学習制御によって、実行すべき最適なプログラムが選択され、又は、各種パラメータ等が変更される。演算部71には、モード表示LED32の表示を制御する表示制御回路84が設けられ、作業者によって選択された制御モードを4つあるモード表示LED32のいずれかの点灯によって表示する。また、複数のモード表示LED32を点滅させることによって、サンプリングモードの実行中であることを示す。モード表示LED32の点灯の制御は、演算部71の指示により表示制御回路84が行う。次に、図6を用いて本実施例に係る電動工具1の駆動方法について説明する。図6はモータ3の駆動制御を行う際の、モータ回転数、PWM制御デューティ、打撃トルク、ハンマ回転角、モータ電流の状態を示す図である。図61および2のグラフの横軸は経過時間t秒であって、両方のグラフの横軸スケールを合わせて図示している。本実施例の電動工具1では、アンビル61とハンマ52、53が相対的に180度未満の回転角で回転可能なように形成される。従って、ハンマ52、53はアンビル61に対して半回転以上の相対回転ができないため、その回転制御も特有のものとなり、遊星キャリヤ組立体51をアンビル61と同速度で回転させる連続駆動モードと、同速度で回転させずに、離合と打撃を繰り返す断続駆動モードが設けられる。電動工具1の動作モードとしてインパクトモードが選択された際の締め付け作業では、図61の時間t0からt2の区間で連続駆動モードで高速に締め付けを行い、必要な締め付けトルク値が大きくなったら時間t2~t13の区間において断続駆動モードに切り替えて締め付けを行う。連続駆動モードでは、演算部71はモータ3を目標回転数に基づく制御を行う。このためモータ3は目標回転数Ntに達するまで加速し、アンビル61は、ハンマ52、53に押されながら一体に回転する。その後時間t1においてアンビル61に取り付けられた先端工具からの締め付け反力が大きくなると、アンビル61からハンマ52、53に伝わる反力が大きくなるため、モータ3の回転速度が徐々に落ちてくる。演算部71はモータ3の回転速度の落ち込みを検出して、時間t2においてモータ3を逆転させる断続駆動モードによる駆動を開始する。断続駆動モードは、モータ3を連続的に駆動するのではなく断続的に駆動するモードであり、逆回転駆動と正回転駆動を複数回繰り返すようにモータ3をパルス状に駆動する。ここで、本明細書におけるパルス状に駆動するとは、インバータ回路72に加えるゲート信号を脈動させることにより、モータ3に供給される駆動電流を脈動させ、それによってモータ3の回転数又は出力トルクを脈動させるように駆動制御することである。脈動の周期は、例えば数十Hz~百数十Hz程度である。正回転駆動と逆回転駆動の切り替えの間には、休止時間を介するようにしても良いし、休止時間無しで切り替えるようにしても良い。尚、駆動電流ON状態の時にはモータ3の回転数制御のためにPWM制御が行われるが、そのデューティ比制御の周期通常数キロHzに比べると、脈動させる周期は十分小さい。図61は、モータ3の回転数100を示すグラフであり、が正方向の回転方向意図する回転方向と同じ方向、-が逆方向の回転方向意図する回転方向とは反対方向である。縦軸はモータ3の回転数単位rpmである。時間t0においトリガ操作部8aが引かれてモータ3が起動されると、目標回転数Ntに達するまで加速され、矢印101で示すように目標回転数Ntで定速回転するように制御される。その後、締め付け対象たるボルト等が着座し、ハンマ52、53の回転角の変化率が大きく減少し、時間t1からモータ3の回転が徐々に低下する。演算部71は、時間t1~t2において回転角変化率が所定の閾値よりも小さくなったことを検出したら、モータ3に供給する正転駆動電圧を停止し、モータ3は断続駆動モードによる回転制御に切り替えられる。時間t2においてモータ3には逆転駆動電圧の供給が開始される。逆転駆動電圧は、演算部71図5参照が負の方向の駆動信号を制御信号出力回路73図5参照に送ることにより行われる。モータ3の正転、逆転を行う際には、制御信号出力回路73から各スイッチング素子Q1~Q6に出力する各駆動信号オンオフ信号の信号パターンを切り替えることにより実現される。尚、インバータ回路72を用いたモータ3の回転駆動においては、印加電圧をプラスからマイナスに切り替えるものではなく、駆動電圧を供給するコイルへの供給順序を変えるだけである。逆転駆動電圧の供給によって、モータ3は逆回転を開始し、それによってハンマ52、53も逆回転を開始する矢印102。この逆回転時には、ハンマ52、53はアンビル61の打撃爪64、65から離れる方向への移動なので無負荷状態での回転となり、ハンマ52、53が大きく逆転する。その後は正回転及び逆回転を繰り返しながら打撃動作を行う。ここで、矢印102で示す時間t2~t4、矢印104で示すt7~t9がモータ3の逆回転駆動であり、矢印103で示す時間t4~t7、矢印105で示す時間t9~t17までが正回転駆動である。図62は、ハンマ52、53の回転角、つまり遊星キャリヤ組立体51の回転角110を示すグラフである。縦軸はハンマ52、53の回転角単位radである。演算部71は連続駆動モードで回転中のハンマ52、53の回転角の変化率=Δθ/Δtを周期的に求めて、その変化率を監視する。ハンマ52、53の回転角は、回転位置検出素子78の出力信号から回転子位置検出回路74が所定間隔毎の検出パルスを演算部71に出力するので、演算部71はこの検出パルス数を監視することにより回転角の変化率を算出できる。本実施例においては、ホールIC等の回転位置検出素子78が回転角で60度ずつ隔てて3つ設けられているので、回転子位置検出回路74から出力される検出パルスは、回転子3aの回転角にして60度毎に出力される。また回転子3aの回転は遊星歯車減速機構20にて所定の減速比本実施例では1:8で減速されるので、ハンマ52、53の回転角にして7.5度毎に回転位置検出素子78の検出パルスが出力される。従って、回転子位置検出回路74の検出パルスをカウントすることによって、演算部71はハンマ52、53のアンビル61に対する相対的な回転角を検出することができる。時間t0からt1までの連続駆動モードにおいては、モータ3の回転数がほぼ一定であるため、回転角変化率Δθ/Δtはほぼ一定となる。時間t2~t4においては矢印112のように逆回転される。時間t4においてハンマ52、53の回転角の減少量が所定の反転角度に到達したら、モータ3に正転駆動電圧の供給を開始する。正転駆動電圧の供給によって、モータ3は再び正回転を開始し、それによって矢印113のようにハンマ52、53も正回転を開始する。この正回転時には、ハンマ52、53はアンビル61の打撃爪64、65に再び接近方向への移動なので、無負荷状態となりハンマ52、53の回転角が大きく増加する。次に、時間t6においてハンマ52、53の回転角の増加量が所定の反転角度に到達したら、モータ3への正転駆動電圧の供給を停止させる。この停止させる際が、モータ3の回転速度が最大速度に達する付近であり、ハンマ52、53は勢いよく打撃爪64、65に衝突し、この衝突により大きい打撃トルクが発生する。このようにモータ3の逆転駆動電圧の供給矢印114、正転駆動電圧の供給矢印115、モータ3への駆動電圧の停止時間t12~t13を繰り返すことによってインパクト動作を行い、ボルト等の締め付け部材の締め付けを完了させる。締め付け作業の終了は、時間t13にて作業者がトリガ操作部8aを離すことによって行う。尚、作業の終了は作業者がトリガ操作部8aを離すだけでなく、アンビル61による締め付けトルク値を検出する公知のセンサ図示せずを付加し、締め付けトルク値が所定の値になったときに演算部71がモータ3への駆動電圧を強制的に停止させるように構成しても良い。以上説明したように、電動工具1では、演算部71による制御によって連続駆動モードでの回転駆動や、断続駆動モードインパクト動作での断続駆動などを実現することにより、ネジやボルト等の締め付けを行うことができる。この際の制御は、モータの回転速度の設定、連続駆動モードから断続駆動モードへの切り替えタイミングの設定、反転角度の設定、各状況におけるモータへの電流供給量など、多種の設定条件により様々な制御状態、制御モードを実現することができる。本実施例においては、演算部71による制御方法を、作業者の使用状況に合わせて変更できるように構成した。この変更の前提となる学習内容は、例えばインパクト工具においては最適な回転数、管理トルク値、打撃数などがある。また、クラッチ機能付きのドリルドライバでは、クラッチ機構が動作する際の締め付けトルク値である。このように作業者ごとに異なる作業における適正な制御を、学習機能によって実現することができる。本実施例では特定の部位に対して基準となる締め付け作業を数回行い、そのときの締め付け時間、モータ電流、回転数の変動、打撃回数などのデータを取得して、取得されたデータを用いて制御情報を作成し、それをEEPROM76図5参照に記憶させる。学習動作が終了した後には、EEPROM76に記憶された制御情報を用いてその後の電動工具の制御を行う。図7は本発明の実施例に係る学習動作時の各部の状態を示す図である。1から4の各グラフの横軸時間tは同じスケールにあわせている。図7においては、電動工具1を学習動作サンプリングモードに設定し、その学習動作モードにおいてサンプルとなる電動工具の操作を複数回行い、これらサンプル操作時の電動工具の稼働状況を取得して、学習終了後の通常の作業に反映させるものである。まず図71のようにサンプリングモードに設定するために所定のスイッチを操作する。この所定のスイッチは専用で設けても良いが、例えばモード切替スイッチ31図2参照のボタンのうち、複数のボタンを同時に長押しする等で実現すると良い。複数のボタンを使うのは、サンプリングモードの実行は頻繁に行うものではないことから、通常時の操作と異なるようにして操作ミスを極力防ぐためである。また、長押しさせるようにするのは、通常の操作時に安易にサンプリングモードに切り替わらないようにするためである。モード切替スイッチ31のボタンの複数を同時に長押しすると、サンプリングモードのON信号121がスイッチ操作検出回路83図5参照から演算部71に伝達される。この信号を受けて演算部71は後述するサンプリングモードの制御を行う。1回のサンプリングモードは、モード切替スイッチ31の複数ボタンの再度の長押しにより、ON信号122がスイッチ操作検出回路83から演算部71に伝達されるまで続く。このサンプリングモード期間中には、モード表示LED32のいずれか、例えば全部が点滅して、通常の動作でなくサンプリングモードにおける学習動作中であることを示す図72の矢印131。電動工具の作業者は、このサンプリングモード中に学習させたい操作を実際に行う。図73は、図1に示すインパクトドライバで実際に4回締め付け作業141~144を行った状態を示している。この締め付けでは、断続駆動モードに移行する際の移行タイミングを決定するための学習動作を連続駆動モードの実際の作業で行い、特に被削材にねじやボルト等の締め付け部材を締め付ける作業を行う。締め付け作業141では、時間t15に作業者がトリガ操作部8aを引いてモータ3を起動させ、時間t16までにトリガ操作部8aの引き量を100にし、断続駆動モードに移行させたい任意の締め付け深さでトリガ操作部8aをオフにする。ここでは時間t18においてトリガ操作部8aを離した状態を示す。この時の電流検出回路79図5参照で検出されるモータ電流を示したのが図74の電流値151である。電流値151は、時間t15で立ち上がり、モータ3の始動電流のため矢印151aの部分で最大になる。その後、始動電流の影響が減少して電流値151が矢印151bのように低下し、時間t17から定常回転時の電流値となる。連続駆動モードではハンマがアンビルを打撃しないので、所定の高トルク値に達するには作業者は手でしっかりと電動工具1を保持しなければならない。締め付け部材から受ける反力に耐えながら作業者は締め付け作業を行い、目標のトルクに到達したと思われた頃、又は、手で支えることができない状態になった頃矢印151c、時間t18に、作業者はトリガ操作部8aを離すことによりモータ3の回転が停止する。ここで、作業142、143、144は同様の作業の繰り返しであるが、作業者がより強い反力に耐えながら最適なトルク値と思われる状態にまで回転させた状態を示している。図7の例では、4の152c、153c、154cのように各締め付け終了時のモータ電流Iが増加し、作業144の際の電流値154は最終的にIfix1にまで増加する。作業者は学習させたいと思える状態でのサンプリング作業が終了したと判断したら、再びモード切替スイッチ31のボタンの複数を同時に長押しして、1回目のサンプリング動作を終了する。このようにサンプリングモード中の学習動作により、様々なモータ電流Iを得ることができたが、本実施例では例えば、モータの最大電流Ifix1を用いる。この最大電流Ifix1を用いてその後の電動工具の動作を行うが、1回1セットだけの学習動作では最大電流Ifix1が正しく得られない恐れがある。そこで、図7に示す一連の操作を複数回、例えば3回行い、最大電流Ifix1、最大電流Ifix2、最大電流Ifix3を得て、これらの平均をとることによりIfixを得るように構成した。そのため、本実施例では、サンプリングモードのON信号122に続いて2回目のサンプリング期間が開始する。同様にして3回目のサンプリング期間が終了後に、モード切替スイッチ31のボタンの複数を同時に長押しすると、サンプリングモードが終了して電動工具1の通常の動作モードに戻る。尚、本実施例ではサンプリング期間を3回連続させるようにしたが、3回だけに限られずに任意の回数に設定しても良いし、作業者が任意に指定できるようにしても良い。尚、図7の作業者が連続駆動モードで締め付け作業を行い、締め付け完了と思われる箇所でトリガ操作部8aを離すようにするが、サンプリング部材の締め付けを実際に行いながらやるだけでなく、トルク測定装置を取り付けて実際にトルク値を測定しながら行う様にしても良い。次に図8のフローチャートを用いて演算部71による学習手順を説明する。このフローチャートに示す学習手順は演算部71に含まれる図示しないマイクロコンピュータによってプログラムを実行することによりソフトウェア的に実現できる。まず、電動工具1へのバッテリパック2の装着により、電動工具1内の揮発性メモリに格納される各種データが初期化され、演算部71はサンプル操作のカウント値S_CNTをゼロクリアするステップ201。サンプリングモードへの移行は、サンプリングSWスイッチの押下により行われ、演算部71はサンプリングSWが押下されたか否かを判断するステップ202。ここでは、例えば、複数のモード切替スイッチ31を同時に長押しすることをサンプリングSWとして定義付けでき、このようにモード切替スイッチ31を用いることにより、サンプリングSWを別途設ける必要がない。サンプリングSWが押下されるとモード表示LED32が点滅し始めるステップ203。モード表示LED32を点滅させることによって、作業者は通常の作業状態とは異なったサンプリングモードにあることを容易に知ることができる。次に、演算部71はサンプル操作のカウント値S_CNTがゼロであるかを判断しステップ204、ゼロの場合は、過去のサンプリングデータをリセットするステップ205。ゼロでない場合は、ステップ206に移行する。次に、後述するステップ207~212までの手順を何回行われたかをカウントするカウンタNをゼロクリアするステップ206。次に、演算部71は、作業者がトリガ操作部8aを引いてONにしたか否かを検出し、OFFの場合はONになるまで待機するステップ207。トリガ操作部8aが引かれてトリガスイッチ8がオンになったら、カウンタNを1だけカウントアップしステップ207、208、演算部71は電流検出回路79の出力値からモータ3に流れる電流値を検出するステップ209。次に、演算部71は得られた電流のデータを記憶エリアの所定の領域にDATANとして一時的に格納する。この電流値の検出と、電流のデータを記憶エリアの所定の領域にDATANとして格納する作業は、トリガ操作部8aがオフになるまで繰り返されるのでステップ209~211、トリガ操作部8aがオフにされたときにはDATANには図7の矢印151c、152c、153c、154cで示す位置の電流値通常、この電流値が最大電流となるがそれぞれ取得されたデータとして格納されることになる。次に、演算部71はサンプリングSWスイッチの再度の押下により1回目のサンプリング動作が終了したかどうかを検出するステップ212。ステップ212において、終了していなければステップ207に戻り、ステップ207~211を繰り返す。ステップ212において、サンプリング動作が終了している場合は、得られたDATANから、最大値を選択してDATAmaxS_CNTとする。次に、演算部71は、S_CNTをインクリメントして1増加しステップ214、S_CNTが3になったか否かを判断するステップ215。ステップ215で3に達していない場合は、ステップ202に戻り、ステップ202~214までの処理を繰り返す。次に、演算部71は得られた3回分のDATAmax0、DATAmax1、DATAmax2を用いて、電動工具1の制御に用いる閾値を更新するステップ216。この更新されるデータをどのように算出するかは種々考えられるが、本実施例ではこれらの平均値を用いて、算出された平均電流値を、インパクト工具の連続駆動モードから断続駆動モードへの移行する際のモータ3の電流閾値ITHとして更新するようにした。次に演算部71は、閾値を再設定値としてEEPROM76図5参照に格納することにより反映させて処理を終了するステップ217。このように、本実施例では、電動工具においてサンプリングモードを設けて、サンプリングモードにおいてユーザが操作した操作状態を学習し、学習されたデータに基づいて各種閾値や制御のためのパラメータを変更できるように構成した。しかもそれら閾値やパラメータはEEPROM76に格納され、その後の制御に用いられるので、特定の締め付け作業を行うような場合に、作業者は自ら希望する動作状態を学習させることができ、最適な動作状況を設定することができる。図9は、本実施例で学習されたモータ3の電流閾値ITHを用いて連続駆動モードから断続駆動モードへの移行制御を示す図である。電動工具1でインパクトモードを選択した場合は、時間t20において連続駆動モードでモータ3を起動する。モータ3に流れる電流値160は、矢印160aに示すような始動電流の後に一旦下がり、その後は矢印160bのように増大して矢印160cのように時間t21でサンプリングモードによって得られた電流閾値ITHに到達する。電流検出回路79の出力を監視する演算部71は、電流値160が電流閾値ITHに到達するのを検出すると、それまでの連続駆動モードから断続駆動モードへの制御に切り替え、図4で説明したようなモータを逆転および正転させる駆動を繰り返す。演算部71は、時間t21でモータ3への電流供給を一旦遮断させた後に時間t22からt23まで逆転電流161を供給させることにより、所定の逆転角度だけハンマ52、53図3参照を反転させる。ハンマ52、53が所定角度だけ逆転したら、次に演算部71は、時間t23でモータ3への電流供給を一旦遮断させた後に時間t24からt25まで逆転電流161を供給させる。この時間t25付近においてハンマ52、53は打撃爪64、65に衝突することにより強い打撃力をアンビル61に伝達する。同様の動作を繰り返して、さらに逆転電流163、正転電流164、逆転電流165をモータ3に供給することにより演算部71はモータ3の断続駆動を行う。尚、図9の例では時間t21~t22、t23~t24、t25~t26、t27~t28、t29~t30はモータ3への電流供給を行わない給電停止区間としている。これは急激にモータ3への電流を逆転させるとモータ3の動作が不安定になる恐れがあるためであるが、この給電停止区間をどの程度に設定するかについても、学習された電流閾値ITHを元に算出するようにしても良い。また、その他の制御パラメータ、例えばt22~t23、t24~t25、t26~t27、t28~t29、t30~t31などの時間間隔の設定などもサンプリングモード時に得られたデータを元に算出して設定するようにしても良い。尚、上記実施例ではステップ210で取得されるデータをモータ3に流れる電流値としたが、学習のために取得されるデータは、モータ3の電流値だけに限られずに、モータ3の回転数の上限値、打撃時のスイッチング素子11へのPWMのデューティ比の制限値強弱制御、ハンマ52、53を用いたアンビル61への打撃回数又は打撃時間など、各種多様なデータを取得して反映させるように構成しても良い。本実施例では、工場出荷時の設定だけに限定されずに、作業者ユーザが任意に基準となる操作を行って、その状態を学習させることによって、適正な作業状態を実現するようにしたので、作業者の使用状況に最適な駆動制御を行うことができる電動工具を実現できる。電動工具1の制御をサンプリングモードにおける学習によって設定できるようにする一方、リセット機能を設けて、学習した状態をリセットできるように構成することも重要である。例えば、作業者が学習された内容を破棄して工場出荷時の初期状態に戻したい場合は、特定のスイッチに割り当てられたリセット操作によって初期状態に戻せるようにしても良い。このリセット操作時においても、完全に初期状態に戻さないで、電動工具本体の経年変化等の校正分を考慮して、見かけ上の状態が工場出荷時と同じ状態となるようにすることも可能である。尚、サンプリングモードにて学習できる対象、および、リセット操作により初期状態に戻すことができる対象は種々考えられるが、例えば、電動工具1の本体を保護するための各種設定値、例えば、過電流保護値、過温度保護値、過放電電圧値、打撃周期などの最適値などは、学習動作によって変更できないようにすることが重要である。以上、本発明について実施例に基づき説明したが、本発明は上述の実施例に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の変更が可能である。例えば、上述の実施例ではインパクトドライバの例で説明したが、インパクトドライバだけに限られずにマイコンを用いて制御する電動工具であれば任意の電動工具において適用できる。また、上述の実施例では、インパクトドライバにおける連続駆動モードから断続駆動モードへの移行時の制御閾値の学習について説明したが、学習される閾値はこれだけに限られずに電子クラッチ付きドライバのクラッチ動作閾値の学習や、その他ユーザが電動工具を操作することによって学習できる任意のデータ、パラメータ等であっても良い。さらに、EEPROMの内部にあらかじめ複数の制御プログラムや制御パラメータを格納しておき、サンプリングモードにおいて取得されたデータを用いて、これらの中から最適な制御プログラムやパラメータを選択するように構成しても良い。この場合も、作業者の自発的な意志によって学習機能を稼働させることができるので、使い勝手の良い電動工具を実現することができる。