Crew(スカイクルー)の技術ブログ。技術の共有・伝達を目的に、ロボットに関するいろいろな情報やガイドを載せていきます。〜部品を円状に配置する〜kossanです。コメント欄に、次のような質問をいただきました。PCBでラインセンサーの回路を作っているように見えるのですがどのようにして同心円状に照度センサーなどを配置できたのか教えてください質問していただきありがとうございました。これについては記事にしてまとめたほうがわかりやすいと思ったので、ここで回答させていただきます。僕が使っているのはKiCADなので、EAGLEなど他の基板CADのことは回答できません。4.0.7なので、他のバージョンでは記事の内容通りに操作できない可能性があります。4.~~(←詳しいバージョンは忘れました。)では同じ操作ができていたと思います。フットプリントの展開〜極座標表示まずネットリストを読み込み、グローバル移動・配置で部品を展開します。基板外形を他のCADでデザインしている場合はそのdxfファイルを読み込みます。これ以降同心円上に部品を配置していくので、目印となる円とその中心、半径をEco1.Userなどの補助レイヤーで描いておくとわかりやすいです。配置したいパーツを移動ツールで動かし、円の中心に持って行きます。カーソルは移動するフットプリントの原点に置かれるので、もし自作フットプリントを使う場合には原点の置き方にも注意してください。これ以降の作業はフットプリントの原点を利用して進めるので、割と重要です。フットプリントを右クリックし、写真のように選択してください。このようなポップアップが出てくるので、左上の極座標を使用するをクリックしてください。ここに任意の数値を入れることで、フットプリントを同心円上に移動します。配置してみるこれ以降、KiCADのくせ者感が出て来ます。距離50mm、角度0度、アイテムの回転0度の場合です。フットプリントの原点が、画面右方向に50mm動きました。「0度」がこの位置であるのは、三角関数を習った人にとっては普通ですね。「普通じゃない」と思う人は...こんなもんだ、と捉えておいてください。今度は距離50mm、角度90度、アイテムの回転0度にしてみましょう。すると...角度0度のとき円の右側にいたフットプリントが円の下に移動しました。普通の三角関数とは逆で、角度が増えるに従って時計回りに移動します。今度は距離0mm、角度0度、アイテムの回転45度にすると...部品が左に45度傾きました。移動の時には時計回り、回転の時には反時計回りにフットプリントが動くということです。なんで統一しなかったんでしょうかねぇ。このような作業を繰り返すことで、エンジェルラインセンサのプリント基板を設計することができます。14:48モータードライバーが付いている基板についての質問です。配線の太さはどれくらいにしているのでしょうか。20:31>>3プリント基板上の配線は1.5mm幅です。設計に合う範囲でなるべく太くしました。流れる電流と配線幅に関しては、ここのページが参考になると思います。http://www.noise-counterplan.com/article/14951064.htmlまた、モーターへの配線はAWG24の導線を使っています。PCBで基板を発注しようとおもんですが,ガーバーファイルを圧縮して入れないといけないと思うのです。.drlの拡張子でガーバーファイルを出力して、それを全てzipファイルに圧縮したものをALLPCBのページにアップロードしています。01:51ラインセンサにはLED、フォトトランジスタ、抵抗を載せていると思うのですが何を載せているのか、もしよろしければ教えて頂けるとうれしいです。他にも載せているものがあるのならそれも教えていただけると嬉しいです。23:13>>11質問ありがとうございます。世界大会のラインセンサには以下の物を使っています。(http://akizukidenshi.com/catalog/g/gI-06399/)LEDの電流制限抵抗には51Ωの物を使用し、ラインセンサの電源を直接用いています。(http://akizukidenshi.com/catalog/g/gP-12696/)この他にも、ラインセンサの電源をフォトトランジスタ用の電源(3.3V)に降圧するために、3端子レギュレータを使用しています。(http://akizukidenshi.com/catalog/g/gI-08749)ラインセンサの電源は、バッテリーの電源をDCDCコンバータで降圧したものを使っています。10:31こんにちは。今年、ライトウェイトで大会にでようと思っています。そこで、このラインセンサーを参考にしたいのですが、センサーの制御、読み取り等はどのように行っていますか?ArduinoMEGAではピン数が足らないので、値の読み取る方法を教えてただけますか。17:32>>13私たちは16個のセンサー全てをアナログで読んでいます。ArduinoMEGAもアナログポートを16個持っているので同じようにすることもできますが、処理の負担が大きいことが問題となる可能性があります。私たちはTeensy3.5という計算性能の高いマイコンを使うことで解決しています。他には、センサーを読み取る専用のマイコンを使う、アナログマルチプレクサを使うなどの方法があります。これらの方法は使ったことがないので、うまく動くと明言することはできません。