Pages

マルチスレッドプログラミング

2014年2月14日金曜日

病み上がりなのに、プログラム書いてたら楽しくて、やめられなくなってしまった!
しかし、ずっと書かなきゃ書かなきゃと思っていたマルチスレッドなプログラムを書いたぜ!いえい!
まだ、システムには組み込んでいないけど、一応仕組みをメモ

まず、下のようなプログラムを書くと各スレッドが1回ずつ実行される。

実行結果は、
cat
dog
rabbit
になります。

ちなみに、thread1 = threading.Timer(1, cat)の'1'は、1秒後に実行するということ。
threading.Thread()を用いれば、時間指定はしません。多分。
今回は、繰り返し処理がしたかったので、threading.Timer()を用いました。

で、繰り返し処理をできるようにしたのが、こちら。
スレッドのターゲットの中でもう1回スレッドを作るだけ。
簡単!
私はすごい苦労したけど!
作った後に、startするの忘れてたりして、???となってました。


ちなみに、実行結果は、以下のようになります。
cat
cat
dog
cat
cat
rabbit
cat
dog
cat
cat
cat
dog
cat
rabbit
cat
cat
dog
cat



python-twitterでDM操作

2014年2月13日木曜日

一昨日まで夜になると39度(!)の熱が出て大変だったのですが、
回復してきたので、プログラムのお勉強をしていました。

python-twitterを使って、DMを操作してみたので、メモ。
参考にしたのは、
さくらVPS上でpython-twitter (その3)
です。

まずは、いつも通り、
>>> api = twitter.Api(consumer_key='hogehoge', consumer_secret='hogehoge', access_token_key='hogehoge', access_token_secret='hogehoge')

その後、
>>> dm = api.GetDirectMessages()
これで最新の20件分の受信メッセージオブジェクトがリストに入る。

あとは、
>>> print dm[0].text
とやると、最新のメッセージの内容が出力されたり、
>>> print dm[0].sender_screen_name
とやると、メッセージを送信したユーザのIDが出力される。

とっても簡単〜〜
あとで、送信のもやってみる。

dm[0].以降に続く命令(?)は、
$ pydoc twitter.DirectMessage
で見られます(∩^ω^∩)

…ただ、一々見に行くのが面倒なので、ここにメモしておく。
 |  created_at
 |      The time this direct message was posted.
 |
 |  created_at_in_seconds
 |      The time this direct message was posted, in seconds since the epoch
 |
 |  id
 |      The unique id of this direct message.
 |
 |  recipient_id
 |      The unique recipient id of this direct message.
 |
 |  recipient_screen_name
 |      The unique recipient screen name of this direct message.
 |
 |  sender_id
 |      The unique sender id of this direct message.
 |
 |  sender_screen_name
 |      The unique sender screen name of this direct message.
 |
 |  text
 |      The text of this direct message


Bluetooth Mate Gold

2014年2月5日水曜日

Bluetooth Mate Goldがすごい。
前のBTモジュールの時の苦労はなんだったのと思うくらいすぐ繋がる。
忘れないようにメモ。
マニュアルは公式ページで取得。

配線はArduinoとBluetoothの接続を参考にしました。
こんな感じ



Arduino Duemilanoveと繋いでます。
Bluetooth Mateが赤く点滅すればおk
最初、Arduino Microと繋いだのですが、何故か点滅しなかった。
5Vだったからかな…
マニュアルには3.3V-6Vまでおkと書いてあったけど…
あとでまた試してみる。

次に、Bluetooth MateとPC(Mac OS 10.9.1)のペアリング。



マニュアルによると、“FireFly-○○○○”という名前で表示されるらしいのだけど、私のは“RNBT-28D7”と表示されていました。
ペアリングに必要なPINコードは“1234”

ペアリングできたらBluetooth Mateの設定。
私は、CoolTermからやりました。

シリアルポートの設定(Options->Serial Port)はこんな感じ。


ポートはこれ。


Local Echoのチェックを忘れると、返答が見えない気がする


この設定で、Connectして、$$$と入力すると(エンターなし)コマンドモードに入れてCMDと返ってくる。
エンターした後Eと入力するとなんか出てくる。



コマンドはマニュアル参照。

SN,で名前が変えられるので、kktnBTにしてみた。



Bluetoothモジュール

最近は、研究のためにBluetoothモジュールを使ってます。
先輩から頂いたこれ



を使っていたのです。
が、情報が少ない?
使い方がよくわからない。

http://www.george-smart.co.uk/wiki/Bluetooth_RS232_Module
http://www.seeedstudio.com/wiki/Serial_port_bluetooth_module_(Master/Slave)
↑ここらへんのページを参考に進めていたのですが、なんだかうまくいかない。
まず、シリアル通信ができない。
むむむ


ということで、SparkFunのWRL-12580 Bluetooth Mate Gold



を購入!
値段6倍くらい!w

ということで、今からこの子と格闘します〜〜〜



SRM606

2014年2月3日月曜日

SRM606に参加したので、書いたプログラムを残しておく。
250-point(通った)


500-point(落ちた)
同じ部屋の人のコードを見てて、私のはわけわからなすぎて駄目だなぁと思った。
後でちゃんとやり直す。



レートは1096に下がってしまいました(´・ω・`)
まぁまたがんばろ(´・ω・`)

今日はSRM607に参加するぞ〜
今月は丁度良い時間が沢山あって嬉しい(∩^ω^∩)