PowerBuilder ってのはクセのあるソフトで、気をつけないと半日を潰してしまう「仕様」があります。バグだと思うんですが
なぜか要素をリネームできないんですよ。右クリックしてもリネームなるメニューがない。
リネームなんて「別名でコピーして元のを消せばいい」、と思うかもしれませんが、PowerBuilder だとこれしかない。別名でコピーするしか方法がないんですね。
Save といっても右クリック→Copy ... とするとその要素はもうあるよ、とエラーを出してきます。
ここは File メニューから Save as とするのが正解です。
これがですね、そのままじゃ出てこない。Window を開かないとダメなわけなんです。
この思いがけない癖ってのが PowerBuilder の特徴です。ってことで
ここで一言: PowerBuilder は不安定ですぐクラッシュします。どうにかしてほしいです
こんなときは Regenerate です。
水曜日, 12月 30, 2015
自作ブレッドボード版 Arduino
作ってみました。自作ブレッドボード版 Arduino です。
Arduino UNO を使ってブートローダーを焼いたので、プログラムのアップロードは完了していたわけなんですが、内部クロック(8MHz)だとそのままで動かないので16MHzのクリスタルが届くまでお預けとなっておりました。
で、昨日届いたわけなのでさっそく動かしてみました。
まず5V電源をつくります。ここではLM317を使いました。こいつは可変型のレギュレーターで、抵抗値で電圧を変えることができます。
Atmega328P チップと電源をつなぎ、クリスタルをつないで、と
動きました。感動です。13ピンのLEDが点灯しています。電源とクリスタル、これだけで動くんですね。
電源モジュールです。
これで作ったプログラムを保存することができます。
Arduino UNO を使ってブートローダーを焼いたので、プログラムのアップロードは完了していたわけなんですが、内部クロック(8MHz)だとそのままで動かないので16MHzのクリスタルが届くまでお預けとなっておりました。
で、昨日届いたわけなのでさっそく動かしてみました。
まず5V電源をつくります。ここではLM317を使いました。こいつは可変型のレギュレーターで、抵抗値で電圧を変えることができます。
![]() |
基本これで動きますが |
![]() |
発振防止、逆流防止ダイオードなどつけるとこうなります |
Atmega328P チップと電源をつなぎ、クリスタルをつないで、と
動きました。感動です。13ピンのLEDが点灯しています。電源とクリスタル、これだけで動くんですね。
電源モジュールです。
これで作ったプログラムを保存することができます。
木曜日, 12月 24, 2015
Arduino: リレーを使って明かりを消す
Arduino ってのはよくできたシステムです。
Arduino がどれだけすばらしいかって「発想から実現へ」の直截さが違うわけです。
例えばですね、明かりを消したいとします。つけた明かりが消えてほしい。一定時間たったら消えてほしいと思ったとします。
どうするかっていうとまず100V電源をいじらないといけないので、リレーを使います。5V回路で100Vを操作すると壊れるのでリレーで隔離するわけです。
このリレーですが、一定以上の電流が必要となります。Arduino 出力端子そのままだと心もとないので、こういうときはたいていトランジスタなどを使って電流を操作します。信号を増幅するわけですね。
まあ面倒なわけです。トランジスタ回路を組むというだけでなんか「仕事から帰ってきてこれって」とかいう気分が襲ってくる。
でそこは Arduino の世界なわけです。これがホントよくできててリレー・モジュールなるものが売っている。しかもいい値段で売っている。
(これです→http://www.ebay.com)
早い話がこれをつなぐとそれだけで明かりが消せます。そのままつなげばいい。タイマーをプログラムし、信号線をつなぐだけです。
え、これだけ?これだけで動くんだ、という感動があったわけなんですが、これちょっと考えてみてください。このモジュールの利点です。部品が少ないってことは、つまりそれだけ安全だってことです。100V使うんですから安全第一です。
まあしっかり懐中電灯など用意して動かしてみたわけなんですが、大丈夫でした。リセットボタンなど押すと明かりがついて、一時間たつと消えてくれます。
*)整数型では上限を超えてしまうので時間は long 型である必要があります。
Arduino がどれだけすばらしいかって「発想から実現へ」の直截さが違うわけです。
例えばですね、明かりを消したいとします。つけた明かりが消えてほしい。一定時間たったら消えてほしいと思ったとします。
どうするかっていうとまず100V電源をいじらないといけないので、リレーを使います。5V回路で100Vを操作すると壊れるのでリレーで隔離するわけです。
このリレーですが、一定以上の電流が必要となります。Arduino 出力端子そのままだと心もとないので、こういうときはたいていトランジスタなどを使って電流を操作します。信号を増幅するわけですね。
まあ面倒なわけです。トランジスタ回路を組むというだけでなんか「仕事から帰ってきてこれって」とかいう気分が襲ってくる。
でそこは Arduino の世界なわけです。これがホントよくできててリレー・モジュールなるものが売っている。しかもいい値段で売っている。
(これです→http://www.ebay.com)
早い話がこれをつなぐとそれだけで明かりが消せます。そのままつなげばいい。タイマーをプログラムし、信号線をつなぐだけです。
まあしっかり懐中電灯など用意して動かしてみたわけなんですが、大丈夫でした。リセットボタンなど押すと明かりがついて、一時間たつと消えてくれます。
*)整数型では上限を超えてしまうので時間は long 型である必要があります。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int relayPin = 7; | |
int buttonPin = 3; | |
int ledPin = 13; | |
unsigned long start = 0; | |
void setup() { | |
pinMode(ledPin, OUTPUT); | |
pinMode(relayPin, OUTPUT); | |
pinMode(buttonPin, INPUT_PULLUP); | |
turnOn(); | |
delay(60*60*1000L); | |
turnOff(); | |
} | |
void turnOn() | |
{ | |
digitalWrite(relayPin, LOW); | |
digitalWrite(ledPin, HIGH); | |
} | |
void turnOff() | |
{ | |
digitalWrite(relayPin, HIGH); | |
digitalWrite(ledPin, LOW); | |
} | |
void loop() { | |
} |
土曜日, 12月 12, 2015
Arduino Uno を使ってブートローダーを焼く
Arduino を使うと書いたプログラムで外部装置を動かすことができます。いくらJava/C++/Android でプログラムを書いても所詮ソフトウエアってだけです。家電、LED やセンサーを動かすことはできないですよね。Arduinoなら可能です。USBでつないで外部装置をつなぎ、アップロードすると動きます。このスムーズな流れが「よく考えられたシステム」であるArduinoの特徴です。
このArduino、つないで動くというだけではありません。使える装置を作る方向へ発展させることができます。プログラムの書き込まれたCPUを取り出して使えばいい。
本家Arduino のボードのCPUは取り換えがききます。取り出せばそのまま同じ回路を独立して使うことができます。素晴らしいと思います。
このCPUですが、Atmega328のチップを使っています。ebayなど覗くとこのチップがまとめていい値段で販売されています。ありがたいです。
http://www.ebay.com
これらのチップはブートローダーが書き込まれていない場合があります。自分で書き込む必要があるわけですね。書き込みができると安いチップが使えます。挑戦する価値ありますよね。
どうやって書き込むのか、ですが、ネットではブレッドボードで回路を組む、専用のシールドを作る、専用ライターを使うなどいう手間のかかる方法が語られています。
でもですね、Arduino Unoを使うと手間いらずです。手間いらずということはつまり成功率が高いということです。是非お勧めしたい方法です。
どうするかというと、プログラムしたいチップを載せたArduino UnoとArduino本体をつなぎます。
では焼き込みの手順です。まず ArduinoISPをアップロード。
![]() |
ArduinoISPをアップロード |
そしてArduino Uno をつなぎます。電源5VとGNDをそれぞれ接続し、ピン11, 12, 13をArduino本体と接続します。あとはピン10とリセットとつなぎます。
新しいAtmega328Pチップを載せて、Board, Port, Programmerを設定します。それぞれArduino UnoとUSBポート(ポート番号は環境で異なります)、Arduino as ISPを選択します。
![]() |
ボード Board の設定 |
![]() |
ポート Port の設定 |
![]() |
プログラマ Programmer の設定 |
そして Burn Bootloader を選択してブートローダーを焼きます。
![]() |
いよいよ書き込み |
この方法でなんの問題もなくブートローダーを焼き込むことができました。チップをとりかえてLチカとかアップロードすると動くわけですね。これでArduinoマシンを量産できます。なんだろうこの安心感は(笑
#Arduino 基板を使わない場合はクリスタルで外部からクロックを供給してやる必要があります。
写真は自作のAVR-ISP・シールドです。
土曜日, 12月 05, 2015
Arduinoの流行るわけ・電子サイコロ
電子サイコロというものを見たことがあるでしょうか。LED回路などでサイコロの目をつくり、電子回路で操作・表示するものです。
乱数を生成し、各LEDを点灯させるというのはもし回路を自分で組むとしたら面倒な話です。
こんな作業も Arduino があるときちんと組めます。乱数はライブラリを利用し、各LEDへの出力をプログラムで操作します。
Arduinoが外部インターフェースとして便利な件
フォトレジスタというセンサーがあります。明るさを探知します。でもこれをどうやって利用したらいいでしょうか。電源を与え、抵抗値を読み取る装置をどうやって作ったらよいでしょうか。

あとは読み取った値を利用して装置を動かすなどという作業をリレーなど通じてArduinoで行えばいい。
この一連の作業がUSB接続できるArduinoならスムーズかつ危険なく行うことができます。考えてもみてください。旧態然とした開発過程だと、マイコンチップを用意し特殊な装置でプログラムを焼き、電源装置を用意して動かすなどという手間が必要です。このハードルをArduinoがあると楽々と超えられるわけです。
登録:
投稿 (Atom)
Qt: 外部プログラムを起動する
Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...
-
コンデンサマイク 極性があります コンデンサマイクがようやく届きました。モジュールではないのでそのままでは信号が弱いので使えません。信号を増幅する必要があります。 ちょっとした手間ですが、首尾よく動いてくれました。この回路の応用で、使えるマイクが出来ます。 ...
-
Flask/SQLAlchemy 使ってる方、jinja で困ってませんか? 本体で Python の関数を書いてもいいんですが、テンプレートでも関数が呼べます。 日付を出したい場合、フォーマットなら strftime() が使えます。 わざわざ文字列を作って渡す必...
-
PowerBuilder では Time, Date, DateTime などという型があります。 デフォルトの表示形式から変更する場合は String() 関数を使います。 String(Date('1/12/2016'),'yyyy-mm-dd...