aka) Author: Christian Davén Version: 2.0 Author URI: http://www.daven.se/usefulstuff/ */ # adds an options page to the options menu function SUP_add_options_page() { if(function_exists("add_options_page")) add_options_page("Smart Update Pinger", "Smart Update Pinger", 5, basename(__FILE__), "SUP_show_options_page"); } # shows the options page function SUP_show_options_page() { $ping = get_option("SUP_ping"); $uris = get_option("ping_sites"); $pingservicesnow = "今すぐ ping を送信!"; if(isset($_POST["ping"]) && $_POST["ping"] == $pingservicesnow) { SUP_log("手動で ping を送信中 ..."); SUP_ping_services(); } elseif(isset($_POST["submit"])) { $uris = $_POST["uris"]; $ping = 0; if($_POST["ping"] == 1) $ping = 1; update_option("SUP_ping", $ping); update_option("ping_sites", $uris); echo '

設定を保存しました.

'; } $checked = ''; if($ping == 1) $checked = 'checked="checked"'; echo '

ping 送信先のサーバ

以下に登録されている ping サーバへは記事を投稿する際,自動的に ping 送信や更新通知がなされます。WordPress が通常行うような,以前書いた記事の編集時ではありません

注意: このリストは オリジナルのアップデートサービスリストと同期します。.

複数サーバを登録する際は改行で URI を分けて下さい

Ping 送信ログ

このプラグインのログです(下に行くほど新しいログです)

'.SUP_get_last_log_entries(20).'

'; } # telling WordPress to ping if the post is new, but not if it's just been edited function SUP_ping_if_new($id) { global $wpdb, $post_title; if(get_option('SUP_ping') == 1 and get_option('ping_sites') != "") { # fetches data directly from database; the function "get_post" is cached, # and using it here will get the post as is was before the last save $row = mysql_fetch_array(mysql_query( "SELECT post_date,post_modified FROM $wpdb->posts WHERE id=$id")); # if time when created equals time when modified it is a new post, # otherwise the author has edited/modified it if($row["post_date"] == $row["post_modified"]) { if($post_title) SUP_log("Pinging services (new post: “".$post_title."”) ..."); else SUP_log("Pinging services (新規の記事の投稿) ..."); SUP_ping_services(); # Try commenting the line above, and uncommenting this line below # if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); } else { if($post_title) SUP_log("NOT pinging services (“".$post_title."” の設定が変更されました)"); else SUP_log("NOT pinging services (記事が編集されました)"); } } else SUP_log("NOT pinging services (管理者が ping 送信を無効にしています)"); } # More or less a copy of WP's "generic_ping" from functions.php, # but uses another function to send the actual XML-RPC messages. function SUP_ping_services() { $services = get_settings('ping_sites'); $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines $services = trim($services); if ( '' != $services ) { $services = explode("\n", $services); foreach ($services as $service) SUP_send_xmlrpc($service); } } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($server = '', $path = '') { global $wp_version; include_once (ABSPATH . WPINC . '/class-IXR.php'); // using a timeout of 3 seconds should be enough to cover slow servers $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); $client->timeout = 3; $client->useragent .= ' -- WordPress/'.$wp_version; // when set to true, this outputs debug messages by itself $client->debug = false; $home = trailingslashit( get_option('home') ); # the extendedPing format should be "blog name", "blog url", "check url" (whatever that is), and "feed url", # but it would seem as if the standard has been mixed up. it's therefore best to repeat the feed url. if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) { SUP_log("- ".$server." への ping 送信が成功しました (拡張フォーマット)"); } else { # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_settings('blogname'), $home)) { SUP_log("- ".$server." への ping 送信が成功しました"); } else { SUP_log("- ".$server." への ping 送信が失敗しました。 以下のエラーメッセージが返されました: “".$client->error->message."”"); } } } $post_title = ""; # Receives the title of the post from a filter below function SUP_post_title($title) { global $post_title; $post_title = $title; return $title; } # ----- # Log stuff $logfile = ABSPATH."wp-content/smart-update-pinger.log"; # for debugging function SUP_log($line) { global $logfile; $fh = @fopen($logfile, "a"); @fwrite($fh, strftime("%D %T")."\t$line\n"); @fclose($fh); } function SUP_get_last_log_entries($num) { global $logfile; $lines = @file($logfile); if($lines === false) return "Error reading log file (".$logfile."). This could mean that the wp-content directory is write-protected and no log data can be saved, that you have manually removed the log file, or that you have recently upgraded the plugin."; else { $lines = array_slice($lines, count($lines) - $num); $msg = ""; foreach($lines as $line) $msg .= trim($line)."
"; return $msg; } } # ----- # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # adds some hooks # shows the options in the administration panel add_action("admin_menu", "SUP_add_options_page"); # calls SUP_ping whenever a post is published add_action("publish_post", "SUP_ping_if_new"); # calls SUP_ping_draft when changing the status from private/draft to published # add_action("private_to_published', 'SUP_ping_draft'); # removes the "WordPress official" pinging hook remove_action("publish_post", "generic_ping"); # activates pinging if setting doesn't exist in database yet # (before the user has changed the settings the first time) if(get_option("SUP_ping") === false) { update_option("SUP_ping", 1); } ?> xXx-Wing Starfighter | 空IKE飛行機! Blog

アーカイブ

‘xXx-Wing Starfighter’ カテゴリーのアーカイブ

arduino+LEDでX-wingの電飾- xXx-Wing Starfighter

2012 年 3 月 11 日 コメント 3 件

はざっす〜
今日はとび物学会の開催日〜なのでちょっと行って来るです。
面白そうとはおもってましたがまだ行った事無いんです・・・
今年からJMCばりに産業貿易センター浜の2Fフロア丸ごとですってョ奥様

えっとぉ〜、タイトルはXウィングなんだけどぉ〜 PAK FAちゃんの続き1枚だけw
地上姿勢の調整で前脚詰めたんですが、再度借り組みしてみたら思った程詰まってなくって・・・
切り飛ばして詰めたのに、ディテール作るうちに伸びた感じ(笑)
良く描けてる図面と比べたらキットのパーツはタイヤのサイズが違う様です。
前輪は0.5mm程デカめ、主輪は1mm弱小さめで、ココを合わせればちゃんとした姿勢になるんでしょうが、ノギス片手にストックを漁っても後輪の良いサイズが見つからないッス。
結局前脚はスクラッチになっちゃいっました。青空モデルのキットがほぼピッタリ・・・F-23Sは前脚単輪だけどバーズの飛行姿勢で2機分の脚パーツが余ってるし(笑)
FrontGear
マットガードはロシア機の特徴・・・空気抵抗軽減にスリット入っててカコイイ。
ちゃんと抜けてるでそ? 欲しい人はドラゴンの1/144 J-10のキット見てみれ・・・
なんてウソさ・・・普通に0.14プラ板積層ですよw
スリット部分も同じ厚みを挟んで接着後に抜き取る方式
ちさ〜いから思いのほかムズかったです。
でもココって機体の影になるし展示しても見える人居ないと思うなきっと・・・(笑)

・・・さて、ここから本題
Fトイズの1/144 X-wingっすね。このシリーズ、相変らず異常に出来が良いですナ。
なんで突然?とか聞かない
arduinoでいろいろ遊んでたら4連裝機銃を光らせてみたくなって
機銃じゃなくてレーザーだけどまいっか・・・そんな感じ(笑)
最近ビークルコレの5が出まして、ラインナップに入ってるんですがXwingはもちろん1と同じ金型(ですよね?)・・・と早速バラします。
パーツバラし
機首の分解は接着が強固でこじ開ける時に少し変形しますた(j_j)
ただの差し込みと接着が使い分けられてて、分解は中々ムズいです。

IPA洗浄
IPA風呂に入れて2時間程経ったら歯ブラシ+中性洗剤で洗浄。すっかり丸裸(^^)
今回はKWATさんのblogに塗膜剥離のサイトが載ってたので、ソコを参考に湯煎してみたら効果抜群でしたヨ。
厚い塗膜が綺麗に落ちてシャープに・・・けど成型が半透明のABS(だよねコレ)なんで見難い(笑)
翼内エンジン?は一体成形かと思ったら片面側は別パーツなのでした。

エンヂン
エンジンは一体成形、サリゲにスライド型使ってますなぁ・・・最近のオモチャは凄いある
1.6×0.8mmサイズのチップLEDを入れるべくドリルで開口します。
3mmプラパイプが入る様に3.2mmまで広げたら・・・一個ノズルがもげた(笑)
タミヤの透明プラパイプすげ〜、安いし肉薄で透明度最高・・・でもこれと言って使い道が無いトコもサイコー

Laser発光
光ファイバはなるべく曲げたく無いので銃本体にチップLEDを内蔵して配線を胴体まで引き込む事にしました。
配線はかなり細く出来るし、どんなに曲げても電流落ちないので可能ならばなるべく配線を取り回した方が良いと思います。
なのでレーザー砲をぶった切って根元にドリルで開口。
こちらはφ2mmです
後半は配線用に1mmで貫通してハンダ付けしたチップLEDを入れてみたの図。当然透けまくりなんで遮光考えないとね。
手前に暗く写ってるのは置き換え用のパーツ組み合わせ
0.5mmの光ファイバ、真鍮パイプ、プラパイプx2種・・・
こう言うの前からやりたかったw

主翼
バラす前は翼内エンジンが邪魔してぴったり閉じなかった主翼、この通りピタ〜と閉じます気持ちィ〜です
でも今回は基板もバッテリもすべて内蔵にしたいので主翼は開状態の固定になるでそう。
脚付き駐機状態も作って見たいっすけどね〜

エンジン発光
エンヂン発光のテスト・・・同じく透けまくり〜
バーナーリングはまたしてもトレペに印刷して瞬椄で貼ってます
LEDは3mmプラパイプ内に納めて透明エポキシで固める予定
ジェットエンジンみたいな外形だけど結構小さいな〜・・・4発エンジンの戦闘機って他にあったけか?
それにしても燃料何処に積んどんねん?・・・とか考えながら(^^)

で、arduino用のケースを作りますた
arduinoケース
いままでハダカのarduino使ってましたが、デスク廻りは工具やらあって絶縁に気を使うし、しまっておく時も便利・・・てコトで、100均で買ったプラケースにビス止めしてます。
ちゃんと回路をケースに入れたの初めてw ジオラマベース作る感覚?
慣れてる人は真っ先にこう言う事やるんでしょうけど〜
スケッチの方は今回端折りますけど後日載っけますね。誰も要らんと思うけど・・・
YouTube Preview Image
またしても点滅の動画・・・静止画だと同じブレッドボードだから変化無くてつまんないね〜
左の4つがエンジン用(まだ赤2、白2になってますが)、右の四角形がレーザー用ですね。
これの元ネタはFLAK37だか?4連裝対空機銃なんでしょね。
実機通り?対角線で交互に発射すると決めつけて交互点滅をスケッチしました。
X印を描く順番で点灯します・・・って結線変えるだけでタダのナイトライダー式点滅なんスけどね(笑)
今回はエンジンも4発別々のチラつきにしてますが、下手すると(上手くすると?)調子悪いオンボロ機風になります。
レーザー砲交互点滅の速度はこの状態でフィックスしてませんが、遅過ぎると強そうじゃ無いしw、余り早いと交互か同時か見えなくなっちゃうし・・・で調整中です。

構成パーツ一覧
一応納まり検討用に内蔵パーツをすべて揃えてみました。
手前の左から
16Mhzクリスタル発振子(表面実装タイプ 4個入りパック)
16Mhzクリスタル発振子 普通のDIP用 (銀色の奴)
22pfコンデンサx2 (青い奴)
470Ω抵抗x4 (茶帯の奴)
右の中程が
4.5mAのCRD
胴体に乗ってるのが一番大事なarduinoチップ(ATMega328P-AU QFPタイプ)小さいでそ?
上記プラスバッテリ(4.5V)で一応動作します。
クリスタルはチップで作動させた事が無いのでどちらを使うか検討中。週末にコンデンサ内蔵のセラミック発振子を買って来るつもりなので、これが使えればクリスタルと青いコンデンサは不要になり、随分コンパクトに出来そうです。
CRDはレーザー用、交互点滅で常に1灯しか光らせないので4灯まとめて1個のCRDで対応します。
エンジン用の抵抗値は計算してないテキトー仕様・・・後で変えるかもです。抵抗はエンジンポッド内にぶち込むかな〜

バッテリBOX
バッテリはボタン電池、SR626
酸化銀タイプなので高そうだけど100均で2個100円w
1個1.55Vだって・・・x3個直列で4.65V
元々arduinoは5Vが定格電圧ですが単4×3の4.5Vでも動作します。
ボタン電池だと容量が足りないか不安でしたが、試したら一応無事に動きました。
電池ボックスはプラパイプくり抜き製、早くココにイレて!って位ピッタリサイズなんで胴体後半に埋め込むですよ(笑)
自作だと中々上手く行かない接点ですが、不要のUDB端子をバラして使いました。こう言う接点用のバネって微妙な曲げ角度やハンダ付け可能な素材って事を考えると自作はかなり難しいと思います。
ボタン電池でどれくらい駆動出来るかはやってみないと・・・な世界ですが、LEDx8灯でも点滅してるから思った程は電気喰わない予定です。半日くらい持ってくれれば良いがなぁ・・・

ちなみにパーティング処理などでディテールが見難いのでラッカー黒薄めてスミ入れしてみたら・・・スゴイですよコレわ(^^)
スジ掘り細いし、エンジンとかウキャ〜ってなる位細かいディテール入ってます。
思った通り塗膜でかなり損してますね〜、食玩って手塗りなんでしょうけど、シルバー系の製品は比較的薄塗りでシャープに見えるのに、白系は得に厚塗りになりがちな気がします。ま〜塗ってる人はそんな意識無いだろうけど・・・技ミックスみたいに超絶に塗られちゃうと勿体無くて脱がせないから、IPAで落ちる厚塗りは歓迎すべきですかねぃ?

ところで、ナンでタイトルにXXX入ってるか?
とかそのへんはいつものアレで・・・ソコは察してくれたまへ
コメント頂ける際は単語によってSPAM認定されてしまう仕様で、こっちで確認して救済しますからカキコが反映されなくてもちょっと待ってみて下さい・・・すいません<(_ _)>

で、PAK FAの今後?・・・知らんがなそんなこと(笑)

Get Adobe Flash player Plugin by wpburn.com wordpress themes