東京工業大学 ロボット技術研究会

東京工業大学の公認サークル「ロボット技術研究会」のブログです。 当サークルの日々の活動の様子を皆さんにお伝えしていきます。たくさんの人に気軽に読んでもらえると嬉しいです。
新歓特設ページ        ロボット技術研究会 HP        ロボット技術研究会 twitter公式アカウント

井土

「ロボット技術研究会」通称「ロ技研」は、その名前の通りロボットの制作や研究はもとより、電子工作や機械工作、プログラミングなどの幅広い分野にわたるものつくり活動を行っています。

カテゴリ一覧: loading

ミュージックサーバーにツイート機能を付ける

井土です。

約一年前に部室で稼働を始めたRapberry Piで作ったミュージックサーバー ですが、
構成を変えたりケースを作ったりして進化をしてます。
部室BGMサーバーということでロ技研部室にBGMを流す役割を担っています。

45

Raspberry Pi 2が発表されましたが、B+でもないRaspberry Pi Bです。

その部室BGMサーバーに新たに再生している曲名をつぶやく機能を追加しました。
こんな感じで曲が変わると新しい曲の曲名とアーティストをどんどんつぶやきます。
 
 46

案の定おたくソングbotになってしまいました。


◯なぜ作ったのか
部室で何か曲が流れている時、「これなんて曲だっけ」とか「誰の曲?」みたいな会話をよく聞きます。
そこで曲名をどっかに表示しようと考えました。
そんなとき、偶然友人が携帯で再生している曲を
「曲名/アーティスト #nowplaying」
の形式でツイートするアプリを使っているのを目にしました。

これはいいなと思い、部室BGMサーバーにも曲名をツイートする機能をつけようと思ったわけです。


◯ツイート機能の実装
基本的にPythonで

曲名を取得する
ミュージックサーバーとしての機能はMPDを使っていて、
外部からの再生制御は全てTCPでコマンドなどを文字列として送ってやればいろいろできます。
詳しくはここに書いてあります。 http://www.musicpd.org/doc/protocol/index.html
デフォルトではポート6600を使用しているので、ポート6600にtelnetなどで接続をすると
「play」や「stop」など、わかりやすい文字列のコマンドを打つだけで再生制御ができます。
実は一般的なMPDクライアントはこの機能を利用してみたいです。
なのでソケット通信ができたらオリジナルなMPDクライアントは案外簡単に作れそうです。

話を戻しますが、コマンドの中には再生中の曲を取得するようなコマンドもあるのでそれを使いました。
ソケットを使ってそのあたりの通信をしてくれるライブラリ(python-mpd2)が
偶然見つかったので今回はそれを使いました。
数秒に一回再生中の曲名を取得し、変化があったらつぶやく
やるべきことはそれだけです。


ツイートする
pythonで簡単にtwitterを扱うライブラリはいくらかあります。
その中でも今回はtweepyを使いました。
リプライを受けたりTLの文字列を拾ったりは一切せず、つぶやくだけなのでとても簡単です。


デーモン化する
勝手に裏で起動して、ずっと走っててくれて欲しいのでデーモン化します。
本来はforkして片方をexitしてforkして...などとしないといけないのですが、pythonにはそのあたりをよく知らなくてもデーモン化してくれる便利ライブラリがあります。
python-daemon です。
ちょっと書き加えるだけで簡単にdaemonとして動くものが作れます。

また、raspberry piを起動した時にこのデーモンも自動で起動して欲しいのでinit.dにスクリプトを追加します。
pythonのデーモンとinitの設定についてはここがとても参考になりました。
http://divide-et-impera.org/archives/1454


◯次は
現状だと再生などの制御がスマホやPCのクライアントからしかできないので、
ハードウェア的なスイッチなどをつける予定です。


トランジスタで作った時計

井土です。

先週ロボット技術研究会の役員が交代し、1年間の部長としての役割が終わりました。
今年度になって部員数は200人を突破し、色々ありましたが無事に終わりました。
これも支援してくださった皆様のおかげです。どうもありがとうございました。


さて、今回の本題は

トランジスタで作った時計
      (トランジスタ時計)


についてです。

id研の井土・齋藤・大貫・中村の4人で製作しました。

まず、完成品なのですがこんな感じです。
make


Maker Faire Tokyo2014(MFT2014)のロボット技術研究会ブースで展示をしました。
トランジスタとして2N7000(Nch MOS-FET)を640個使用しています。 
マイコンや74系のICは使わずに、クロックの分周器・カウンタ・7segデコーダは
すべてディスクリートのトランジスタで作りました。


◯なぜ作ったのか
話は 1 年前にさかのぼります。
昨年は論理演算であるNANDのみを用いて時計 (NAND 時)を製作し、
MFT2013で展示しました。(以前、少し紹介しました) 

すると
「トランジスタでやってみてよ (笑)」
「あっちにリレーだけの時計があるよ」
という意見・煽りを多く頂きました。

「あの人たちをを見返してやりたい」
「そうだ次はトランジスタだけで作った時計を展示しよう」


そこから、トランジスタだけで時計を作るプロジェクトは始まりました。



さて、ここからは設計・製作の過程を紹介していきます。
◯おおまかな構成
各機能を図にするとこんな感じです。
block

基板は全部で17枚(切削によるプリント基板)で、
各基板一枚で10進カウンタなどの機能を一つが完結しています。
 
図にはありませんがカウンタの桁上りのところにスイッチが入れてあり、
強制的にクロックを送ることで時刻合わせの機能を実装しています。
このスイッチのチャタリング防止にシュミットトリガー回路をつけているのですが、
これももちろんトランジスタ(2SC1815)でできています。
 

◯トランジスタによる論理演算
カウンタやデコーダはすべてAND,OR,NOTなどの基本的な論理回路の組み合わせでできます。
ということでまずは基本的な論理回路をトランジスタで作りました。

簡単に作れるNOT・NAND・NORはこんな感じです。
負荷の抵抗は10kΩで、50kHzくらいまでなら問題なく動きます。
59


バイポーラトランジスタだとベース電流がまあまあ必要で、
この回路が数百個もあると消費電流が大きくなってしまうので、FETを選択しました。
 
また、プッシュプルにしないのかと思われる人もいるとは思いますが、
PchのFETが安く手に入らなかったのでNchFETと抵抗で作ることにしました。
チップのFETを許せばPchの低価格なものもあるのですが、
どうしてもDIPで作りたかったのでこのような回路になりました。
(DIP部品で基板がでごちゃごちゃしてるほうが好きなので) 


◯デコーダの設計
論理回路はNANDもしくはNORだけで全部作れます。
去年はそれに基づき、NANDだけで時計を作ったわけです。

今年はトランジスタでせっかくなのでNANDではなくNORを作り、
そのNORを基本として組み合わせて上位のカウンタやデコーダを作っていきました。

デコーダはどうやって作るのでしょうか。
小さいものなら以下の手順が簡単です。
1.真理値表を書く
2.論理式(加法標準形)にする
3.カルノー図を使って論理式を簡単化する

簡単化についてはここがわかりやすいです。
http://akita-nct.jp/yamamoto/lecture/2003/2E/karnaugh_diagram/node1.html

論理式を式変形して項の数を減らせると、回路が小さくなるので簡単化をします。
もちろん論理式上での簡単=トランジスタ数が少ないではありませんが、
論理式の簡単化くらいしかわからなうのでとりあえず簡単化を行います。

去年のNAND計はカルノー図を使って、すべて手作業で行いました。
今回はクワインマクラスキー法というアルゴリズムを使ってコンピュータでこの作業を行いました。
クワインマクラスキー法で論理回路を簡単化するツールをC++で自作し、
それによってデコーダ・カウンタの設計を自動化したのが今回の設計における特徴です。

この簡単化ツールは真理値表に当たるデータの書かれた入力ファイル(画像では 37dec.txt)を用意すれば
自動でその真理値表をみたす論理式を出し、論理式の簡単化を行ってくれます。
真理値表を読み取って論理式にしたものが画像のinputに表示され、
それを簡単化したものがoutputのところに表示されます。

1,2,3...は変数のA,B,C、-は否定を意味しています。
input1の例だと、真理値表は
1
で、それを簡単化すると
2

になるという意味です。
05

真理値表のdon't careにもちゃんと対応をしていて、don't careを考慮した上で簡単化をしてくれます。
また、簡単化した結果が複数個あるときはそれらを全部出してくれます。

このツールによってデコーダの設計がとても楽になりました。
この時点でデコーダはNOT,AND,ORで構成されているので、
それらをNORにしてNOR特有の簡単化などを行ってデコーダの完成です。


◯カウンタの設計
カウンタはD-FFを元に設計をしていきます。
フリップフロップならなんでもいいんですが、D-FFだと考えるのが楽なのでD-FFを選択しました。
そのD-FFはトランジスタでNORを作り、それらを以下のように組み合わせることで実現します。
dff


長くなるので省略しますが、下の図のような感じで
D-FFの出力→組み合わせ回路→D-FFとやってやることで順序回路が作れます。
cnt

ここでも組み合わせ回路(デコーダ)を作る必要があるのですが、
先ほどと同様に、自作の簡単化ツールを使うことで自動で小さい回路を設計することができます。


◯実装
設計ができたら今度は実装です。
本当はユニバーサル基板でやりたかったのですが、
MFTに間に合いそうになかったのでプリント基板を使いました。
学校のものつくり支援センターには基板切削機があるので、それを使って片面のプリント基板を作ります。

そのために設計した論理回路たちをトランジスタレベルでCADに入力し、配線図を作成します。
最終的に6種類くらいの基板を設計しました。

参考までに、これが4bitの2進数を入力して7segLED用のデータを出すデコーダの配線図です。
標準ロジックでいう7447と同じような機能です。
22


基板データができたら基板切削機に基板を作ってもらい、はんだ付けをするのみです。
材料は大量のトランジスタと抵抗、少しの電解コンデンサとコネクタのみです。
31

できた基板の一部を並べるとこんな感じです。

トランジスタの森
44

整列するトランジスタたち
08


最後に組み上げて、コネクタを圧着しまくって配線したら完成です。

54




◯おわりに
MFT2014にトランジスタ時計を展示した結果、まぁまた煽られますね。
次は真空管らしいです。
 

第60回 研究報告会

井土です。

12月6日、第60回研究報告会(2014年度 後期研究報告会)を行いました。
13189_1478559009031437_714029472551478001_n

 研究報告会とはロボット技術研究会で製作・研究したことを中心の部内の発表会です。
分野は機械・電子工作・ロボット・ゲームを始めとし、物理・音楽などなんでもありです。
参加者も学部1年生から博士課程の方、さらにはOBの社会人の方まで参加することがあります。
自分の専門以外のことや興味のあることに関する高度な話も聞けて、自分の知識や興味を広げる場としてとても楽しいです。

今回はこんな発表がありました。
◯電子工作・回路
・1週間で作るLEDcube
・トランジスタだけで時計を作る
・回路シミュレータのためのインターフェースの製作
・新しいモータドライバの開発
 
◯ロボット 
・F^3RC(新入生ロボコン)の報告 
・メカメカ四足歩行ロボットの製作~試作編〜
・デルタ機構のマスタスレーブ 
・かわロボ
 ・マイクロマウス『カブトガニ兄貴』の製作と背景技術
・超小型ライントレーサー「ちびとれ〜さ〜」の開発の要点
 
◯プログラミング・ゲーム 
・Fortranを使おう
・オレオレゲームフレームワーク開発
・音にこだわるゲームエンジンと動的音律システム


怒涛の質問タイム
10639713_1478559245698080_7953189312243142028_n
 
 なぜか「ぺぱにゃん」こと@tokuhisa_f氏のpepperも会場にいました。
10396302_1478559122364759_1706819724955411567_n


周りに発信したり、技術や知識を共有する活動も盛り上げていきたいと思っています。 

MakerFaireTokyo2014に出ます

部長の井土です。
今回は皆様に報告があります。


東京工業大学ロボット技術研究会として、
MakerFaireTokyo2014への出展が決定しました

電子工作・ロボットをいっぱい展示する予定です。 
今年は11/23,11/24に東京ビッグサイトで行われます。
ぜひ見に来て下さい。 公式ページ http://makezine.jp/event/mft2014

あと、見たいものがあれば教えてください。
製作者が展示してくれるかもしれません。 



ちなみに私、井土は
トランジスタ(MOSFET)のみで時計を作って展示 する予定です。

去年のMFTはNANDのみで作った時計(NAND計)を展示しました。
展示してたらなんか煽られたので今年はトランジスタです。

38

NAND計自体に実用性とかは皆無ですが、

ユニバーサル基板に密と並ぶ部品・配線の美しさ
無駄に遠回りして作った達成感

まさに趣味の電子工作

と言った感じで、作っていても見ても楽しいです。(私は)

03


これをトランジスタで作ったらもっと楽しいはずです。

現在は設計・検証段階ですが、進み次第ブログにもなんか書いてく予定です。 

それではまた 
ギャラリー
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
  • NHK学生ロボコンチームMaquinistaの紹介(2017)
  • NHK学生ロボコンチームMaquinistaの紹介(2017)
  • 関東春ロボコン 準優勝!!
  • 関東春ロボコン 準優勝!!
  • 関東春ロボコン 準優勝!!
  • 関東春ロボコン 準優勝!!
記事検索
最新コメント