前回の「ラジコン風」ではモーターの駆動に、TA7219Pを使った。
ネットをうろつくと、モータの駆動にはパワーMOSFETというのを使うそうで、この辺を参考にうなってみた。
回すモータは、マブチモーターのRE260。

タミヤのハイスピードギヤボックス。
これ、ユニバーサルプレートの穴と、ギヤボックスのネジ穴位置がびみょーに合わない。
カットするしかないのか、とも思ったが今はモータを固定できればいいので、テストベッド的な感じで。

MP4212は、NchとPchのMOSFETが2つずつパッケージされていて、なんとなく扱いやすそうだと思ってこれにした。4Vで駆動できるしRE260なら定格に収ま りそうだし。
FETは燃えるぞ壊れるぞ、という話があちこちで見られる。
チキンなので、正転方向だけマイコン制御ありに、逆転方向のMOSFETはプルアップ・プルダウンで常にOFFになるようにして、PWMで回転数を制御するところだけ試した。
TA7291Pのときと違ってドライバでの電圧降下が少ないため、エネループ2本で十分よくまわる。
冒頭の参考ページにあるLow-side-PWMをなんちゃってでまねっこしてみる。
右側の7セグメントLEDは、analogWrite()の値を示している。
写真では、MOSFETをトランジスタ1個でスイッチしているけど、のちにプッシュ・プル構成にして高速スイッチングをめざした。けど、arduinoのPWM周波数が約490Hzということで(日本語リファレンスより)、今のところMOSFETのスイッチング速度を活かせる構成ではない。
写真では付いていないけど、10kΩの半固定抵抗で分圧した電圧をanalogRead()で読ませて回転数が変化するようにした。半固定抵抗を動かすとスムーズに回転数が変化してちょっと楽しかった。調子にのってぐりぐり動かしていたら、ねじ切ってしまった。あぁ。今度はちゃんとボリュームにしよう・・。
最終的には、モータ制御はATtinyなど小さめのマイコンを使い、arduinoから独立させようと考えている。

ちょっと検索するとライタを自分で作っちゃう人ばかりで、道は遠いなーと思わざるを得ない。
が、4000円投資してAVR ISP mkIIを購入。いいんだこれで。
AVR Studio本体とSPをダウンロードしてインストール。
ハナっからCで書くつもりなのでWinAVRもDLしてインストール。
ここの環境はWindows 7 x64だけどドライバも問題なく認識。
ATtiny 2313Vを2つ購入した。低電圧版を選んだのは、モータ制御とは別にリモコン的なものを考えていて、単三×2で動くようにしてみたかったから(モータ制御用のは5Vで使う予定)。
とりあえずLチカするところまで進めたいなー、と、電源とGND(とISPに必要なピン)とLED+抵抗だけ結線して、ISPに繋ぐ。
ISPのコネクタにジャンプワイヤを突っ込んでブレッドボードに挿す、大雑把さ。ISP側のピン配置はこのページを参考にした。後はデータシートを見てAVR側のピンに接続。
Lチカ用のLEDは、PB0に繋いだ。
電源はスイッチングなACアダプタ5Vから給電。クリスタルもパスコンもなんにもない状態。内部発振8MHzの1/8で、システムクロックは1MHz。
AVR Studioを起動して、こんな感じのだらっとしたhello worldをビルドしてAVRに書きこむ。
ブレッドボード上を見てると、ほぼワンチップマイコンだけが載ってる状態でプログラムが動いちゃうんだからおもしろいなー、と感動してしまう。
次は、arduinoからSPIなりなんなりで、このATtinyに指令を送って何かさせる、ってことをやろう。
環境:
Windows 7 x64 Ultimate
arduino 0018
AVR Studio 4.18 + SP2
WinAVR 20100110
Arduino Duemilanove
AVR ATtiny 2313V
ネットをうろつくと、モータの駆動にはパワーMOSFETというのを使うそうで、この辺を参考にうなってみた。
回すモータは、マブチモーターのRE260。
タミヤのハイスピードギヤボックス。
これ、ユニバーサルプレートの穴と、ギヤボックスのネジ穴位置がびみょーに合わない。
カットするしかないのか、とも思ったが今はモータを固定できればいいので、テストベッド的な感じで。
MP4212は、NchとPchのMOSFETが2つずつパッケージされていて、なんとなく扱いやすそうだと思ってこれにした。4Vで駆動できるしRE260なら定格に収ま りそうだし。
FETは燃えるぞ壊れるぞ、という話があちこちで見られる。
チキンなので、正転方向だけマイコン制御ありに、逆転方向のMOSFETはプルアップ・プルダウンで常にOFFになるようにして、PWMで回転数を制御するところだけ試した。
TA7291Pのときと違ってドライバでの電圧降下が少ないため、エネループ2本で十分よくまわる。
冒頭の参考ページにあるLow-side-PWMをなんちゃってでまねっこしてみる。
右側の7セグメントLEDは、analogWrite()の値を示している。
写真では、MOSFETをトランジスタ1個でスイッチしているけど、のちにプッシュ・プル構成にして高速スイッチングをめざした。けど、arduinoのPWM周波数が約490Hzということで(日本語リファレンスより)、今のところMOSFETのスイッチング速度を活かせる構成ではない。
写真では付いていないけど、10kΩの半固定抵抗で分圧した電圧をanalogRead()で読ませて回転数が変化するようにした。半固定抵抗を動かすとスムーズに回転数が変化してちょっと楽しかった。調子にのってぐりぐり動かしていたら、ねじ切ってしまった。あぁ。今度はちゃんとボリュームにしよう・・。
最終的には、モータ制御はATtinyなど小さめのマイコンを使い、arduinoから独立させようと考えている。
ちょっと検索するとライタを自分で作っちゃう人ばかりで、道は遠いなーと思わざるを得ない。
が、4000円投資してAVR ISP mkIIを購入。いいんだこれで。
AVR Studio本体とSPをダウンロードしてインストール。
ハナっからCで書くつもりなのでWinAVRもDLしてインストール。
ここの環境はWindows 7 x64だけどドライバも問題なく認識。
ATtiny 2313Vを2つ購入した。低電圧版を選んだのは、モータ制御とは別にリモコン的なものを考えていて、単三×2で動くようにしてみたかったから(モータ制御用のは5Vで使う予定)。
とりあえずLチカするところまで進めたいなー、と、電源とGND(とISPに必要なピン)とLED+抵抗だけ結線して、ISPに繋ぐ。
ISPのコネクタにジャンプワイヤを突っ込んでブレッドボードに挿す、大雑把さ。ISP側のピン配置はこのページを参考にした。後はデータシートを見てAVR側のピンに接続。
Lチカ用のLEDは、PB0に繋いだ。
電源はスイッチングなACアダプタ5Vから給電。クリスタルもパスコンもなんにもない状態。内部発振8MHzの1/8で、システムクロックは1MHz。
AVR Studioを起動して、こんな感じのだらっとしたhello worldをビルドしてAVRに書きこむ。
#include <avr/io.h>なんか、ちゃんと点滅してる。
#include <util/delay.h>
int main(void) {
DDRB = 0xFF;
const int pin = 0;
while(1) {
PORTB |= 1<<pin;
_delay_ms(100);
_delay_ms(100);
_delay_ms(100);
PORTB &= ~(1<<pin);
_delay_ms(100);
_delay_ms(100);
_delay_ms(100);
}
}
ブレッドボード上を見てると、ほぼワンチップマイコンだけが載ってる状態でプログラムが動いちゃうんだからおもしろいなー、と感動してしまう。
次は、arduinoからSPIなりなんなりで、このATtinyに指令を送って何かさせる、ってことをやろう。
環境:
Windows 7 x64 Ultimate
arduino 0018
AVR Studio 4.18 + SP2
WinAVR 20100110
Arduino Duemilanove
AVR ATtiny 2313V
先月観に行ったMTM05会場で、スイッチサイエンスの出店で、xbee×2とxbeeシールドを買ってきた。
ZigBee対応版は在庫がないそうで、シリーズ2を2つ購入。後からファーム更新してZB対応版相当品に。
xbeeでラジコン的な作例はたくさんあるので、今さら感あふれる感じなんだけど、とにかく自分で実際にやってみたかったのだった。
機構・構造部品は、少年時代を思い出すTAMIYAの「楽しい工作シリーズ」を使った。
昔懐かし、ツインモーターギアボックスとトラック&ホイールセットでクローラ風にしてみる。
このギアボックス、子供の時は金属フレームかつ完成品だったような気がしたんだけど(はっきり覚えてない)、今はプラスチック製で組み立て式なんだな。
最初、ユニバーサルプレートという工作界のユニバーサル基板みたいなヤツを一枚しか買ってなくて、ギアボックスとキャタピラを乗せたら、電池も回路も置く場所がなくなってしまった・・・。
ユニバーサルプレートをもう一枚と、ユニバーサル金具というL字に使える構造材を買い足した。
で、出来たのがコレ。なんか配線がピンピン飛び出てて危なっかしい・・。

テーマは、
モーターは2つで、左右の動輪をそれぞれ駆動している。細かい回転の制御は何もやってなくて、全開かオフかの二択だ。TA7291Pを2つ使っていて正転と逆転のコントロールはかろうじて可能に。
手持ちの電池ケースが単三×4のしかなくて、勢いが良すぎた。TA7291PのVrefをもっと下げておけばよかった。ギア音うるさいし。
arduino用の電源は、二階建ての裏面に取り付けた006Pから供給。xbeeシールドを乗せちゃうと、Vinが隠れてしまうが、シールドと本体の隙間から無理やり差し込んだ。
ユニバーサルプレートはネジ止めだけで構造を乗せていけるので便利なんだけど、穴のピッチが5mm間隔のため、基板と合わなくて難儀する。結局、arduinoの方は2穴だけ使って斜めに配置、モータードライバを載せた基板は、アングルを使って90度立てることに。若干斜めになっているのは、こっちもネジ穴の位置が合わなかったため。
arduino~xbee(シールド)間の通信は、普通にシリアル通信出来てしまう。便利だ。0ピンと1ピンを使うので、単にSerial.begin(ボーレート)しておいて、読み書きするだけ。
コード上は、aruduino IDE上のシリアルモニタを使って、コマンドとモータの動作を実装・確認。で、動かす時はXbeeシールドを乗っけるだけ(もちろんxbee間の設定は先に済ませておく必要がある)。
xbeeの設定は、XbeeエクスプローラUSBとDigi社公式のX-CTUで。
ここの環境では、2つのXbeeをどっちもFunctionSetを「Zigbee Router/End device AT」にして、お互い相手のシリアルナンバーをDH/DLに指定している。
1対1の通信では、Xbeeの良さをスポイルしてしまうが、ラジコン風用途で用いる分にはいいだろう、てことで。
PC側のXbeeは、XbeeエクスプローラUSBによって仮想COMポートとして見えているので、何らかのTerminalからぽちぽちと入力すれば、arduino側のXbee+シールドを通じてシリアル通信で読みだされる。
シャープ測距モジュール GP2Y0A21YK。秋月電子で購入した。対象、というか壁のようなものとの距離を電圧で得られる。
距離と電圧の関係はリニアではないけど、近似式を求めた人がいたので、丸パクリしちゃう。ごっちゃんです。arduinoの場合、アナログ入力の分解能が10bitなので、analogRead()で得られた値を、(5/1024)倍して近似式に放り込む。
室内の蛍光灯下で、「手のひら」を対象に測った感じでは、9cmから50cmぐらいまではそれっぽい値が出ている感じがした。(これ以上遠くは物差しがなかったのでよくわからん)
本ラジコン風クローラでは、前進中で正面12cm未満に障害物が出てきたときは停止、というコードにしてみた。
十分加速したところから、検知・制動すると、壁際2~3cmというところで、危なっかしい(^^; が、制御して遊ぶのが目的なのでヨシとする。
キーボードからの入力で、工作がきーきー動くのはなんとも不思議な感じ。
やっぱり、モータの制御がON/OFFで大雑把過ぎるな。今度は各種センサからの情報を取り入れて細かく制御することをテーマにしてみたい。
ひとしきり遊んだ後で、いくらかかったかなーとふと思う。
・arduino=3,200円
・xbeeシールド=2,200円
・XbeeエクスプローラUSB=2,500円
・xbeeシリーズ2×2=5,960円
・ユニバーサルプレート×2=700円
・ツインモーターギアボックス=800円
・トラック&ホイールセット=600円
・ユニバーサル金具セット×2=800円
・測距センサ=400円
・TA7291P×2=360円
あとLEDとかコンデンサとかソケットがあるけど無視して・・・17,520円。
わぁ。
環境:
Windows 7 Ultimate x64
arduino 0018
Arduino Duemilanove
ZigBee対応版は在庫がないそうで、シリーズ2を2つ購入。後からファーム更新してZB対応版相当品に。
xbeeでラジコン的な作例はたくさんあるので、今さら感あふれる感じなんだけど、とにかく自分で実際にやってみたかったのだった。
機構・構造部品は、少年時代を思い出すTAMIYAの「楽しい工作シリーズ」を使った。
昔懐かし、ツインモーターギアボックスとトラック&ホイールセットでクローラ風にしてみる。
このギアボックス、子供の時は金属フレームかつ完成品だったような気がしたんだけど(はっきり覚えてない)、今はプラスチック製で組み立て式なんだな。
最初、ユニバーサルプレートという工作界のユニバーサル基板みたいなヤツを一枚しか買ってなくて、ギアボックスとキャタピラを乗せたら、電池も回路も置く場所がなくなってしまった・・・。
ユニバーサルプレートをもう一枚と、ユニバーサル金具というL字に使える構造材を買い足した。
で、出来たのがコレ。なんか配線がピンピン飛び出てて危なっかしい・・。
テーマは、
- ラジコン的なものなので、当然、電池電源でもって行動できること。
- Xbeeを使って、PCからリモート操作する。
- おまけで、測距センサを使って、障害物に近づいたら勝手に停止する。
モーターは2つで、左右の動輪をそれぞれ駆動している。細かい回転の制御は何もやってなくて、全開かオフかの二択だ。TA7291Pを2つ使っていて正転と逆転のコントロールはかろうじて可能に。
手持ちの電池ケースが単三×4のしかなくて、勢いが良すぎた。TA7291PのVrefをもっと下げておけばよかった。ギア音うるさいし。
arduino用の電源は、二階建ての裏面に取り付けた006Pから供給。xbeeシールドを乗せちゃうと、Vinが隠れてしまうが、シールドと本体の隙間から無理やり差し込んだ。
ユニバーサルプレートはネジ止めだけで構造を乗せていけるので便利なんだけど、穴のピッチが5mm間隔のため、基板と合わなくて難儀する。結局、arduinoの方は2穴だけ使って斜めに配置、モータードライバを載せた基板は、アングルを使って90度立てることに。若干斜めになっているのは、こっちもネジ穴の位置が合わなかったため。
コード上は、aruduino IDE上のシリアルモニタを使って、コマンドとモータの動作を実装・確認。で、動かす時はXbeeシールドを乗っけるだけ(もちろんxbee間の設定は先に済ませておく必要がある)。
xbeeの設定は、XbeeエクスプローラUSBとDigi社公式のX-CTUで。
ここの環境では、2つのXbeeをどっちもFunctionSetを「Zigbee Router/End device AT」にして、お互い相手のシリアルナンバーをDH/DLに指定している。
1対1の通信では、Xbeeの良さをスポイルしてしまうが、ラジコン風用途で用いる分にはいいだろう、てことで。
PC側のXbeeは、XbeeエクスプローラUSBによって仮想COMポートとして見えているので、何らかのTerminalからぽちぽちと入力すれば、arduino側のXbee+シールドを通じてシリアル通信で読みだされる。
距離と電圧の関係はリニアではないけど、近似式を求めた人がいたので、丸パクリしちゃう。ごっちゃんです。arduinoの場合、アナログ入力の分解能が10bitなので、analogRead()で得られた値を、(5/1024)倍して近似式に放り込む。
室内の蛍光灯下で、「手のひら」を対象に測った感じでは、9cmから50cmぐらいまではそれっぽい値が出ている感じがした。(これ以上遠くは物差しがなかったのでよくわからん)
本ラジコン風クローラでは、前進中で正面12cm未満に障害物が出てきたときは停止、というコードにしてみた。
十分加速したところから、検知・制動すると、壁際2~3cmというところで、危なっかしい(^^; が、制御して遊ぶのが目的なのでヨシとする。
キーボードからの入力で、工作がきーきー動くのはなんとも不思議な感じ。
やっぱり、モータの制御がON/OFFで大雑把過ぎるな。今度は各種センサからの情報を取り入れて細かく制御することをテーマにしてみたい。
ひとしきり遊んだ後で、いくらかかったかなーとふと思う。
・arduino=3,200円
・xbeeシールド=2,200円
・XbeeエクスプローラUSB=2,500円
・xbeeシリーズ2×2=5,960円
・ユニバーサルプレート×2=700円
・ツインモーターギアボックス=800円
・トラック&ホイールセット=600円
・ユニバーサル金具セット×2=800円
・測距センサ=400円
・TA7291P×2=360円
あとLEDとかコンデンサとかソケットがあるけど無視して・・・17,520円。
わぁ。
環境:
Windows 7 Ultimate x64
arduino 0018
Arduino Duemilanove
UMLその他モデルの作図にJudeを愛用している。
・・・というかastah*か。
astah*で書いた図を、emfで(拡大縮小しても綺麗だから)ワードに張り付けるなどしているが、redmineのwikiに埋め込めるといいのにな~と思っていた。
もちろん画像で出力してからアップロードすることはできるが面倒。
せっかくリポジトリにastahのファイルを保管しているのだから、最新の図をwikiに自動反映できたら便利そう。
最近知ったのだけど、PlantUMLというのがあって、一定の記法で書いたUMLを画像にしてくれるOSSがあるそうだ。じゃあ、astah APIでモデルの情報を抜き出してPlantUML記法で吐きだしたらどうか?と一瞬考えたものの、レンダリング結果がastah上の図とはかなり変わってしまうし、APIで取得できない情報が多数あるのでそもそも再現度が低い。
やはり図の出力はastah*に任せたい。
jude時代から、コマンドラインで図出力を実行することができるので、これを呼び出したらいいだろう。
※細かいことは、インストール先のCommandRunner.htmlに書いてある。
自分ところで使っているredmineはどれもlinux上で動いているので、できればlinuxサーバで完結させたい。ということでまずは「linux上でコマンドラインで図出力」する手順を検討した。
ポイントは以下のとおり。
- コマンドライン図出力を実行するには、DISPLAY(Xサーバ)が必要。
- APIの場合はXサーバなしでも動くけど、図出力はdisplayが初期化できないと先に進まない。
- 図出力用のディスプレイという位置づけで、vncserverを使うことにした。
- astahライセンスをセットアップする必要がある
1. ディスプレイを用意
- 図出力を実行するユーザ向けにvncserverのディスプレイを作る。
- CentOSの場合、yumリポジトリにvnc-serverがあるのでこれをインストール。
- 実行ユーザで一回vncserverを起動しておく。
- 各種ファイルのひな型が作成されるのと、vncserverのパスワード設定を一度に出来るから。
% vncserver
You will require a password to access your desktops.
Password:
Verify:
New 'somehost:1 (someuser)' desktop is host:1
Creating default startup script /home/someuser/.vnc/xstartup
Starting applications specified in /home/someuser/.vnc/xstartup
Log file is /home/someuser/.vnc/somehost:1.log - 上で起動したvncserverはkillしちゃう。
で、ひな型をちょこっと編集。CentOSの場合、xstartupは以下の内容になっていた。
twmが動いていると、Xクライアントがウィンドウを作成するときに出現位置をユーザ操作で指定する流れになるので、図出力の自動化においては邪魔になってしまう。ので、twmの行を削除した。xtermも特に必要ないので削除。#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
- システム起動時の自動起動を考慮して/etc/sysconfig/vncserverに設定
図出力を実行するユーザに合わせて編集。とりあえずディスプレイ番号は2のままにした。ジオメトリはもっと小さくてもいいはず。VNCSERVERS="2:someuser"
VNCSERVERARGS[2]="-geometry 800x600 -nohttpd -localhost"
- rootでrcスクリプトから起動
# /etc/init.d/vncserver start
- astah*のダウンロードサイトからzipを入手。「JREなし、インストーラなしのアーカイブ」と書かれているもの。
- 適当な場所にunzipする。
- 同梱されているastah-command.shは後半がちょいおかしい(pro 6.1.1)ので、ちびっと修正して、とりあえず同じディレクトリに「run.sh」という名前で保存した。実行権限を忘れない。
#!/bin/sh
ASTAH_HOME=`cd \`dirname $0\` && pwd`
INITIAL_HEAP_SIZE=64m
MAXIMUM_HEAP_SIZE=1024m
STACK_SIZE=3m
JAVA_OPTS="-Xms$INITIAL_HEAP_SIZE -Xmx$MAXIMUM_HEAP_SIZE -Xss$STACK_SIZE"
java $JAVA_OPTS -cp "$ASTAH_HOME/astah-pro.jar" com.change_vision.jude.cmdline.JudeCommandRunner $* - ライセンスを配置。
自分ところはJUDEのユーザライセンスがサポート時効前なのでJUDEのライセンスで。
$HOME/.astah/professional/JUDE_License_User_Professional.xml
- path上にjavaコマンドがあることを確認。なければ適宜pathを通す。
- 環境変数DISPLAYにvncserverを指定。
自分はtcshスキーなので以下の通りだが、他のシェルの場合は適宜% setenv DISPLAY 127.0.0.1:2
- 実行
% /path/to/astah/run.sh -image all -f /path/to/some.asta -o /path/to/dir
おわり
- で、出力されたのが冒頭のpng画像。
- Windowsで出力したときとフォントが異なるので、見た目の違いはあるけど、元の図がキープされていることに意義はありそう。
- 元の図が大きくなりがちなので、wikiに張り付けるのに向かないケースも多そう。
- 図出力にはかなり時間がかかる&出力したい図を指定できない(種類は指定出来る)ので、運用上はcronで出力しておいてどーこーみたいな仕組みも必要っぽい。
- wikiマクロ的には、.astaファイルと図のpath(名前空間+名前)を指定する感じか。
環境:
Windows 7 Ultimate x64
JRE6 x86
astah* professional 6.1.1
CentOS 5.4 x64
vnc-server-4.1.2-14.el5_3.1
JRE6 x64
astah* professional 6.1.1
当時、PICで制御してみたいなーともくろんでいてたんだけど、あっさり投げ出していたのだった。
arduinoの場合、(リファレンスいわくHitachi HD44780とその互換チップセットをベースにした)LCDを制御するライブラリが標準装備なので、print感覚で文字表示できる、はず。。。
とりあえず、同梱の説明書にある、「バックライトの電源を液晶側を共有」するようにちまちまとハンダづけする。J2にハンダを盛ってショートさせ、R8に添付されてた抵抗100Ω×3を並列に接続。
同梱されてたピンヘッダを何も考えずにモジュール背面にとりつけたのだけど、ネットで見かけた作例だとピンソケットを全面にとりつけている人もいた。そしたらジャンプワイヤで簡単に接続出来てお試ししやすいのか。そういう考え方もあるんだなー。
すでに取りつけてしまったものはCTRL+Zでとりはずすこともできず。さりとて電子工作初学者の自分は、ハンダを吸い取るのもおっくうで、このまま進むことにするのだった。
ユニバーサル基板にソケットとコントラスト調整用の半固定抵抗をのっけた。
説明書によれば、pin3 コントラスト調整用電源は、「=Vssで最も濃くなる」とあったので、何も考えずにGNDに繋いだら、何も表示していない部分や表示した文字の上下に不必要なドットが現れてしまった。
手元に500Ωの半固定抵抗があったので、えいやっと繋いだけど、180度中、コントラスト調整として意味があるのは30度ぐらいだけになってしまった。残りの150度ぐらいは何も映らない。。。
スケッチはただのコピペ。
使ってる液晶が20桁4行なので、初期化パラメータだけちょびっと変更。
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
void setup()
{
lcd.begin(20, 4);
lcd.clear();
lcd.cursor();
lcd.blink();
lcd.setCursor(0, 0);
lcd.print("ohayo");
lcd.setCursor(2, 1);
lcd.print("oyasumi");
lcd.setCursor(4, 2);
lcd.print("ore dayo ore ore");
lcd.setCursor(6, 3);
lcd.print("moshi moshi");
}
void loop()
{
}
もはや制御らしい制御がコードに現れてこないのがすごい。
リファレンスによれば、blink()の結果はディスプレイ次第だそう。この液晶モジュールではカーソル位置に、下線→黒塗りつぶし四角のアニメーションが表示された。
環境:
Windows 7 Ultimate x64
Arduino 0018 (IDE)
Arduino Duemilanove 328
一か月ぐらい前にamazonで入門キットを購入したのだけど、忙しくてなんとなく放置してた。
キットに入ってたのは「Arduino Duemilanove 328」。
準備:
実装
実装、というほどのことはしていないけど、なにかしら入力と出力があるものしたいなと考え、
スイッチをONにするとLEDが光る (^^;;
を目指してがんばる。。
12番ピンを出力としてLEDの点灯制御に。
11番ピンを入力としてスイッチの入力に。
タクトスイッチのどの足がどのように繋がるかも知らなかったので、テスタ片手にポチポチと試したり。
ネットで調べると、デジタルの入力にはプルアップ/プルダウン抵抗というのを付けるのだとか。
スイッチON→真でコードが書けないと気持ち悪いという理由でプルダウン抵抗にしてみる。
※Arduino(というかAVRマイコン?)は内部プルアップを持ってるので、回路的にはプルアップの方がシンプルに。
Arduino IDEを起動して、ボードの種類とCOMポートを設定。
コードはこんな感じに。
コンパイルしてUpload。
タクトスイッチを押したらLEDが点灯した。わぁ。
入力にプルアップ/プルダウン抵抗を付けないと、スイッチOFF時の入力値が定まらないというか不安定になる、ということが、ソフトウェア屋からするとなんとも不思議な感じ。
digitalRead()の後で入力値を、
Serial.println(sw);
でシリアルに出力してみると、確かに1だったり0だったりする。
ソフトウェアってのは多くの抽象化レイヤの上に成り立ってるのだな~と実感する。
環境:
Windows 7 Ultimate x64
Arduino 0018 (IDE)
Arduino Duemilanove 328
これではじめました
USBはB端子です
ここから大ジャンプは無理だけど
キットに入ってたのは「Arduino Duemilanove 328」。
準備:
- Arduinoの公式サイトからIDEをダウンロード。バージョンは0018。
- JRE6が同梱されてる。
- B端子のあるUSBケーブルを用意してPCとボードを接続
- Windows 7の場合、ドライバは自動インストールをじっと待てばOK。そのまま使えるようになる。
→公式サイトのGetting Startedで「Really, it works!」って書いてあるのがウケる。 - ここの環境は64ビットだけど普通に使えた。
- ここの環境では、USB Serial PortにCOM3が割り当てられた。
実装
実装、というほどのことはしていないけど、なにかしら入力と出力があるものしたいなと考え、
スイッチをONにするとLEDが光る (^^;;
を目指してがんばる。。
12番ピンを出力としてLEDの点灯制御に。
11番ピンを入力としてスイッチの入力に。
タクトスイッチのどの足がどのように繋がるかも知らなかったので、テスタ片手にポチポチと試したり。
ネットで調べると、デジタルの入力にはプルアップ/プルダウン抵抗というのを付けるのだとか。
スイッチON→真でコードが書けないと気持ち悪いという理由でプルダウン抵抗にしてみる。
※Arduino(というかAVRマイコン?)は内部プルアップを持ってるので、回路的にはプルアップの方がシンプルに。
Arduino IDEを起動して、ボードの種類とCOMポートを設定。
コードはこんな感じに。
void setup() {
pinMode(12, OUTPUT);
pinMode(11, INPUT);
}
void loop() {
int sw = digitalRead(11);
if (sw) {
digitalWrite(12, HIGH);
}
else {
digitalWrite(12, LOW);
}
delay(100);
}
コンパイルしてUpload。
タクトスイッチを押したらLEDが点灯した。わぁ。
入力にプルアップ/プルダウン抵抗を付けないと、スイッチOFF時の入力値が定まらないというか不安定になる、ということが、ソフトウェア屋からするとなんとも不思議な感じ。
digitalRead()の後で入力値を、
Serial.println(sw);
でシリアルに出力してみると、確かに1だったり0だったりする。
ソフトウェアってのは多くの抽象化レイヤの上に成り立ってるのだな~と実感する。
環境:
Windows 7 Ultimate x64
Arduino 0018 (IDE)
Arduino Duemilanove 328
Arduinoをはじめようキット
posted with amazlet at 10.04.25
スイッチサイエンス
売り上げランキング: 1553
売り上げランキング: 1553
おすすめ度の平均: 

これではじめました
USBはB端子です
ここから大ジャンプは無理だけど
VMware Infrastructure UpdateからESXi 3.5をアップデート。
コアの部分はESXiを再起動しないと有効にならない、ということで素直に再起動。
再起動完了後、VICで接続したらデータストアが認識されないという、目を疑う事態が発生。
vmfsが消えたのか??
どうやってサルベージしようか??
と考えをめぐらせながらも検索したらまたもや2chに救われた。
以下の操作後もインベントリ内の仮想マシンは「Unknown(inaccessible)」のままだったので、データストアのブラウザから、vmxファイルを右クリック→インベントリに追加(Add to inventory)、でなんとか。
環境:
VMware ESXi 3.5
コアの部分はESXiを再起動しないと有効にならない、ということで素直に再起動。
再起動完了後、VICで接続したらデータストアが認識されないという、目を疑う事態が発生。
vmfsが消えたのか??
どうやってサルベージしようか??
と考えをめぐらせながらも検索したらまたもや2chに救われた。
以下の操作後もインベントリ内の仮想マシンは「Unknown(inaccessible)」のままだったので、データストアのブラウザから、vmxファイルを右クリック→インベントリに追加(Add to inventory)、でなんとか。
203 :名無しさん@お腹いっぱい。:2009/01 /16(金) 15:56:04 ID:gFIIee1g0
>>202
おぉ。VMFSのマウントがデキター
Thx
スレをちゃんと読めばよかったんですね吊ってきます
リンク先の手順は、英語だったので、日本語に翻訳
1.VI Clientを起動してESXiへログイン
2.Configurationタブ、Softwareの中のAdvanced Settingを開く
3.LVMの項目のLVM.EnableResignatureの値を「1」へ
4.Configurationタブ、Hardwareの中のStorage Adapterを開き「Rescan...」を実行
5.Configurationタブ、Hardwareの中のStorageを開くとVMFSがマウントされてることが分かる
環境:
VMware ESXi 3.5
Wiki Graphviz macro プラグイン
例によって無保証です。
自分ところのredmineはまだ0.8.7なんだけど、早食いな人はもう0.9を使っているらしく、0.9で動かないよ、というメッセージが来た。
せっせと自分のところでも環境を作って試してみると「Filter chain halted as [:authorize] rendered_or_redirected.」が出ている。
リンクの作り方がまずいと言えばまずいんだけど、0.8.x時代のWikiのURLと0.9からのURLが異なることが原因みたい。
どうもプラグインROOT/config/routes.rbに置かないと読んでくれないっぽい。
0.8系でも0.9系でも動くように二か所にroutes.rbを置くことにした。
プラグインROOT/
routes.rb ←(1):こっちは(2)をrequireするだけ
config/
routes.rb ←(2):redmineが0.9以降かどうかでURLマップを設定しわける
(1)
(2)
0.9もfeature freezeしたことだしリリースが待ち遠しい。
「バージョンに状態(進行中、ロック中、終了)を設定出来て、チケットの編集画面に終了済みバージョンがドロップダウンに表示されない」機能が地味にうれしい。
環境:
CentOS 5.4
ruby-1.8.7-p248(from source)
mysql-server-5.0.77-3.el5
graphviz-2.26.0(from source)
redmine-0.9-stable branch at 2010/01/07(JST)
例によって無保証です。
redmineの wikiマクロで graphviz その1上のwikiマクロをgihubに置いている。
redmineの wikiマクロで graphviz その2
redmineの wikiマクロで graphviz その3
tckz's redmine-wiki_graphviz_plugin at master - GitHub
自分ところのredmineはまだ0.8.7なんだけど、早食いな人はもう0.9を使っているらしく、0.9で動かないよ、というメッセージが来た。
せっせと自分のところでも環境を作って試してみると「Filter chain halted as [:authorize] rendered_or_redirected.」が出ている。
リンクの作り方がまずいと言えばまずいんだけど、0.8.x時代のWikiのURLと0.9からのURLが異なることが原因みたい。
0.8.7: http://example.com/wiki/project_id/WikiPageそれでは、とroutes.rbを書き換えてみるも反応なし。
0.9-stableブランチ: http://example.com/projects/project_id/wiki/WikiPage
どうもプラグインROOT/config/routes.rbに置かないと読んでくれないっぽい。
0.8系でも0.9系でも動くように二か所にroutes.rbを置くことにした。
プラグインROOT/
routes.rb ←(1):こっちは(2)をrequireするだけ
config/
routes.rb ←(2):redmineが0.9以降かどうかでURLマップを設定しわける
(1)
require File.join(File.dirname(__FILE__), "config", "routes.rb")
(2)
ActionController::Routing::Routes.draw do |map|
if (Redmine::VERSION.to_a <=> [0, 9, 0]) >= 0
# 0.9.0 or higher
map.connect 'projects/:id/wiki/:page/graphviz', :controller => 'wiki_graphviz', :action => 'graphviz'
else
map.connect 'wiki/:id/:page/graphviz', :controller => 'wiki_graphviz', :action => 'graphviz'
end
end
0.9もfeature freezeしたことだしリリースが待ち遠しい。
「バージョンに状態(進行中、ロック中、終了)を設定出来て、チケットの編集画面に終了済みバージョンがドロップダウンに表示されない」機能が地味にうれしい。
環境:
CentOS 5.4
ruby-1.8.7-p248(from source)
mysql-server-5.0.77-3.el5
graphviz-2.26.0(from source)
redmine-0.9-stable branch at 2010/01/07(JST)

