DJIPhantom2 修理メモ 外装ボディ交換 FPV用12V電圧の確保 +iOSD mini導入
世はDJIが発表した新型高性能ドローンで話題が持ち切りですが、前回Phantom2が墜落してからFPV用にトランスミッターに電源が供給出来なくなったのでそのメモとか実録とか。
あれこれ原因を特定しようとボディを開けたり閉じたりしてるうちに付属のドライバーの先端がネジ頭に埋まってしまった。
oh...
バカジャネーノ オレ…
というわけでネジ周りをルーターで削ってネジを外す事に。
うん、本体丸ごとスクラップになるよりよかった安上がり安上がり…
メモ:Phantom2買ったとに付いてくるドライバーは使うべからず。
やわっこいよあれ
そんなわけで外装ボディをまるごと交換するハメに。
DJI PHANTOM 2 Vision NO.8 プラスチックボディ 最新型H3-3Dジンバル対応モデル 【VISION+対応】
- 出版社/メーカー: DJI
- メディア: エレクトロニクス
- この商品を含むブログを見る
自分が買った時は12,000円くらいしたのに今見ると6,500円になってる…
さておき裏側のネジを外しボディ上部を開ける。
その際にGPSの端子を傷つけないように気をつける。
次にプロペラ基盤とモーターを外す。
ネジを二つ外すと下部のLEDランプカバーが外れて、基盤も外れる。
本体基盤の取り外し
メイン基盤→USB基盤→受信基盤→バッテリー端子の順に外していくとやりやすい。
USB基盤を外すとメイン基盤が動かせるようになり、他の基盤を外しやすくなる。
そんなこんなでカバーから基盤一式を外し終わる。
受信部の下にあるプロモ設定用のボタンも移植するのを忘れずに。
あとは組み込むだけなのだが、今回のそもそもの目的であるFPVトランスミッタ用の12V電源を確保しなければならない。
基盤を眺めてもコンデンサその他がショートしたり半田が破損してるのを確認出来なかった。
しかし基盤から伸びてる電源コードは5Vしか出ておらず、電流は無いに等しい。
どうするか…他に12V取れる端子が……
あった!
バッテリーそのものは11.1V。
それを5Vに降圧すれば良し。
というわけでコードを半田する。
あまりキレイじゃないけど、トランスミッタは無事動作した。
これで本来の目的をクリア!
あとは新しいボディに組み込んで
ついでにiOSD miniを組み込んでおしまい。
ちなみに:
iOSD miniをファームウェアアップデートするにはWindows XP以降が必要。
Phantom 2 - Downloads - Manuals, Software, Drivers download | DJI から
DJI WIN Driver Installer と iOSD Assistant Software v4.0 をインストールする必要がある。
特にDJI WIN Driver Installerを実行しないとAssistantを起動して「no device is connected 」と表示されてアップデートできない。
RailsとSafariのsessionの不具合?
safariのsessionが勝手に切れてしまうバグがある?
Rails3にてユーザー認証を実装した。
アクションsigninでは、ユーザー認証後にはmypageにリダイレクトするように実装する。
しかしURLに/signinを入力するとsessionが失効されて再度ユーザー認証を求めるようになってしまう。
これを入力するのではなくコピペやブラウザの戻るボタンだとsessionは失効されずにmypageが表示される。
なぜかwebインスペクタを起動してると現象は発生しない。
Safari内の履歴やキャッシュの扱いの問題のような気がするけど、原因が特定できずにイマイチすっきりしないのでメモ。
def signin
if session[:user_id] == nil
if request.post?
if User.authenticate(params[:username], params[:password])
session[:user_id] = User.authenticate(params[:username], params[:password]).id
redirect_to :action => session[:intended_action], :controller => session[:intended_controller]
else
render :text => "error"
end
end
else
redirect_to "/mypage"
end
end
でもまあなんやかんやでユーザー認証みたいなものは作れた
https://shrouded-falls-3859.herokuapp.com/foods
これでやっとウェブサービスに必要な最低限の道具を手にしたような気持ち。
DEVICEとかCANCANやtwitter authを使えばもっとしっかりと作れるかな?
次は画像のアップロードとかグラフィカルな実装をがんばう 眠 (¦3[ スヤァ.. ]
メモ Rails日本語化
I18n、i18n_generatorsでrailsアプリを日本語化する - mochizblog
activerecord:
models:
user: ユーザー
attributes:
user:
name: ユーザー名
age: 年齢label:
titles:
dragon_knight: 龍騎
dcd: ディケイド
w: ダブル
このようにモデル名とカラム名に対応した単語をインデントを交えて記載して、下記の/config/locals/ja.ymlの末尾に書き足せばOK
Rails全体でエラーメッセージ日本語化
rails 3 エラーメッセージ日本語化のメモ
rails-i18n/ja.yml at master · svenfuchs/rails-i18n · GitHub
メモ データベース操作と確認
rails dbconsoleでデータベース確認
Sqliteクライアントを起動する
>rails dbconsole
>.tables
でテーブル一覧
>.schema books
でbooksテーブル内の構造を確認
NOT NULLなどの制約の設定 - Ruby on Rails入門
create_table :titles do |t|
t.string :name, :null => false
t.integer :old, :default => 10
t.string :address, :null => false, :default => 'Tokyo'
end
modelに日本語書くとエラーになるときの対策
環境
Rails 3.2.9
ruby 1.9.3p194
たとえばバリデーションのメッセージに日本語で書くとする。
class Machine < ActiveRecord::Base
validates_presence_of :rental_no, :message =>"ダメだよ"
attr_accessible :detail, :hikitori, :kaishu, :location_id, :machine_name_id, :motikomi, :rental_no, :shukko, :used
end
するともれなく「We're sorry, but something went wrong.」と表示されてしまう。
そんなときはmodelの冒頭に「# encoding: UTF-8」を書き加えてあげると解決する。
# encoding: UTF-8
class Machine < ActiveRecord::Base
validates_presence_of :rental_no, :message =>"ダメだよ"
attr_accessible :detail, :hikitori, :kaishu, :location_id, :machine_name_id, :motikomi, :rental_no, :shukko, :used
end
なんでmodelだけこんなんなんだろ?
参考:
Rails の models クラスに日本語を記述するとエラーになる: ある SE のつぶやき
あとRails全体でエラーメッセージ日本語化
オールAjaxなTodoアプリ作ってみた
デプロイ先はHeroku
http://warm-temple-6617.herokuapp.com/apps/
これでWebアプリっぽいものができた。
試行錯誤すると曖昧なまま理解してないことが浮き彫りになる。
今後の課題:
・Railsとjavascriptの連携、棲み分けの方針を意識する
viewのなかでどこまでRailsで処理して、どこまでjsで処理すべきか。
link_toで生成した方が良いのか<a href="">に書くのは良い事なのか。
Unobtrusive JavaScriptとは。保守性の高い、見通しの良いコードとは。
・DRYを忘れない。
共通するコードは積極的に使い回せるように書く。
次にやる事:
・1対多、多対多のデータベース処理。
ゆくゆくやる事
・ユーザー登録、認証。
・Railsとjsの連携の強化。グラフィカルな処理。
・twitterやfacebookの認証。dropboxとかもできるかな?
参考にしたサイト
Railsで簡単なアプリをscaffoldで作ってHerokuにデプロイするまで - Qiita
Rails x Herokuでアプリを作成 [完全初心者向けチュートリアル] - 酒と泪とRubyとRailsと
下記メモ
環境はRails 3.2.9
Gemfile書き換え
gem 'sqlite3'
↓
gem 'sqlite3', :group => [:development, :test]
group :production do
gem 'pg'
end
あとはターミナル
git init
git add .
git commit -m "first commit"
heroku create
git push heroku master
heroku run bundle exec rake RAILS_ENV=production db:migrate
メモ
Ruby Learning Notes: Replacement for remote_form_for in Rails 3
_form_seat.html.erb
<%= form_for(seat, :remote=>true) do |f| %>
<% if seat.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(seat.errors.count, "error") %> prohibited this seat from being saved:</h2><ul>
<% seat.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %><div class="field">
<%= f.hidden_field :flight_id %>
</div>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :baggage %><br />
<%= f.text_field :baggage %>
</div>
<div class="actions">
<%= f.submit %>
</div><script type="text/javascript">
$(document).ready(function(){
$("form#new_seat").bind("ajax:success",function(event,data,status,xhr){
$("#seatscontainer").html(data);
$("#notice").html("Seat was succesfully booked やったね!");
});
})
</script>
<% end %>