組み込みソフト屋 不惑の途

自分の経験等を形にしていこうと立ち上げたブログです。不惑にはまだ遠い・・・

ダイソン掃除機を壁掛けにしてみた

珍しく画像付きですw
我が家のダイソンのコードレスクリーナーV8を壁掛け化しました。

このクリーナーに付いている収納ブラケットは壁にネジ止めすることが前提になっており、賃貸の我が家では使えないでいました。
・・・そこで、このブラケットを壁にネジなしで固定しようと思い立ったわけです。
以下に作業記録を残しますが、お試しの際は自己責任でお願いしますね。

用意するもの
・アクリル板(プラ板でもたぶん大丈夫)
・アクリルカッター
・樹脂用強力接着剤
・アルコール
・セメダインBBX(こいつがミソです)
・ヘラ(セメダインBBXに付いてくるものでOK)

では作業開始です。
まずアクリル板をブラケットのサイズに合わせてカットします。
DSC_0001.jpg 
長さはフルにする必要はありません。幅だけ揃えます。
ブラケットは壁に接する面が少ないので、接着面を稼ぐのが狙いです。

DSC_0002.jpg 
アクリルカッターでカット。

アクリル板を貼り付ける前に、配線を済ませます。
DSC_0003.jpg 

カットしたアクリル板を貼り付けます。
DSC_0004.jpg 
私は溶剤を使いました。ここの接着力は大事なので、強力なものを使ってください。

溶剤(接着剤)が硬化したら、アクリル板をアルコールで脱脂し、セメダインBBXを塗ります。
なぜセメダインBBXなのかというと、後から剥がせるからです。
DSC_0005.jpg 
ヘラで薄くのばし、なるべく均一になるように塗ります。
写真はもう塗った後です。
塗ってから7~10分ほど待ちます。触ってみて、指がベタベタするくらいまで待ちます。
指にネチャーっとくっついてくるならまだです。あまり待ちすぎると接着力が弱まります。
ちなみにアクリル板は何色でもかまいません。私は何となくクリアにしましたが。

壁に位置を決めて貼り付けます。
DSC_0008.jpg 
ペタッとな。ネジ穴が使われていないのがおわかりでしょうか?
壁に貼り付けるときは少し力をかけて圧着しましょう。

じゃーん!バッチリです!
DSC_0007.jpg 
わかりにくいですが、クリーナーは床から離れています。

全部で30分もかかりませんでした。
同じように悩んでいる方も多いと思います。
一つの解決方法として参考になれば幸いです!

スポンサーサイト

PageTop

ロードセルとの闘い(その〇)

第何弾か忘れてしまいましたw

ロードセルから信号を取り込んで増幅し、A/Dコンバータでソフトに取り込むという動作をさせるというところで誤差が大きいことにずっと悩んできました。
しかし、ここにきてA/Dコンバータに入る信号がかなり安定しました。

大きかったのは次の点です。
・とにかく信号経路の部品を最小限にする。
 (部品ごとの誤差やノイズを抑える。入力換算誤差の小さい部品を選ぶ)
・温度特性の良い部品を選ぶ。
・ロードセルを含めた、測定系の回路はエアコンの風などが当たらないように覆う。
・ローパスフィルタはオペアンプを使ったアクティブフィルタにする。
 (このオペアンプも高性能のものを選ぶ)
・ロードセルへの印加電圧は各増幅回路やA/Dコンバータの電源と共通にする。
 (この電圧も高精度のレギュレータを使う)

これでソフトで特に平均処理などをしなくても0.02gくらいの精度が出るようになりました。
(3kgのロードセル使用)
特に低周波成分の誤差が問題になるので、温度ドリフトには注意が必要です。

いや~、ソフトからだいぶ離れましたがいい勉強になりました。



PageTop

ブルーレット置くだけを考えてみた

我が家ではブルーレット置くだけ(液体のやつ)を使っています。
こやつは一体どういう仕組みで薬液をタンクに放出しているのだろうか・・・。

自分なりに考えた結果を書いてみます。

まず、流す前の状態。
このとき、先端ノズルに上向きにかかる空気圧と、薬液の重さ、薬液タンク内の
空気による圧力はつりあっているはずです。(そうでないと、ダダ流しになるはず)

水を流すと、ノズル先端を水流が通るため一時的に圧力が下がります。
その圧力によってノズルから薬液が吸い出され、薬液タンク内の圧力が下がります。

水が止まると、薬液タンク内の圧力が低くなっているためノズル先端から、圧力が
つりあう分だけ空気が吸い込まれます。

ブルーレット置くだけは最初、するすると減っていき、半分くらいで一度減りにくい
時が訪れ、あるタイミングで一気に減ります。
これはおそらく、薬液タンクの形状によるものと思われます。
卵を横にしたような形をしているので、最初は薬液タンク内の空気の容積が増えると
断面積が小さいため液面が大きく下がります。「減りにくい時」は同じ量の空気が
入っても液面の位置にあまり影響を及ぼさなくなり、しばらくするとまた断面積が
小さくなるので一気に減る、ということではないかと。

一応、自分なりにケリはついたつもりでいますが、間違っている可能性は高いです(笑)。
まあ何はともあれ、「除菌EX」というタイプを使っているせいか便器内に黒い輪が
できるという現象は見られないので、効果はあるのでしょう。

PageTop

NASとして使っていたHDDが認識されない事件

私、今単身赴任で一人暮らしをしています。
先日、自宅で構築していたNASのHDDのデータを両親が見られるような
クラウドサービスに移行しようと久しぶりにアクセスすると。

「フォーマットが必要です」

・・・?

HDDの情報を見ると、パーティションのフォーマットが「RAW」と表示されていて
中身が一切わからない状態になっていました。
RAIDも組んで安心して使っていたらそもそもアクセスできなくなるとは・・・。

焦っていろいろ試しました。
・TestDisk
・Recuva
など、有名どころは一通り。
でもどれもダメ。RAID組んでるからなのか?

と、ここでいろいろググっていると「復旧天使」なる不審な(失礼)ソフトを発見。
藁にも縋る思いで試行版をダウンロードしてスキャンしてみると・・・。

見えた!全部見えた!!

すごい!でも試行版だと770kB以上のファイルは復旧できない。
RAID対応版は個人用で19000円ほど。
でも業者に頼んだり、12年分くらいの思い出を失うことを考えると高くはない。

もうすぐさま購入。
見事に復旧できました!

ありがとう!復旧天使!不審とか思ってごめんなさい!!

皆さんも外付けHDDが「RAW」になってしまったら試してみてくださいね!
こちらです→復旧天使

PageTop

PDG2の罠(その2)

こんにちは。
前回、PDG2を使っていての注意点を書きました。
もうPDG2自体は開発中止のものなのであまり役に立つかどうかはわかりませんが、今回も注意せねばならないことを書こうと思います。

PDG2が生成するソースコードはリエントラントではありません。
つまり、非同期で動作するモノ(処理中に割り込みが入るとか)では注意が必要になります。
例えばUART通信するAPIを使ってソフトを組んだとします。
送信のAPIは制御がすぐ戻り、送信完了をコールバックで知らせるという仕組みが選べるのですが、このとき、戻った制御のすぐ後でまた送信APIを使ったりすると、送信データが上書きされます。

これは内部で使っているRPDLという共通ハードウェアライブラリの仕様で、静的変数を使って作られているためです。

通信系は通信そのものがボトルネックになるので、処理はずっと早く他のことができてしまい、誤動作がよく起こります。IIC(I2C)のようなものも一緒です。
同様に、コールバック関数内(つまり割り込み処理内)でAPIを使う場合も注意が必要です。
他の処理で使っている領域を、コールバック関数が呼んだAPIが上書きするケースがあるからです。

うまく使えば便利なPDG2ですが、いろいろとある制約を踏まえておかないとしっぺ返しがあります。
処理時間が重視されているケースでは、冗長な部分の多いPDG2は使わない方がいいでしょう。

自動生成ツールで生成されるソースコードはまだまだラクチンというところには至っていないな、というのが今でも感じられます。他のものはどうなんでしょうかね?

PageTop

PDG2の罠

ルネサスの開発環境で、デバイスドライバ部分を自動生成してくれる
「PDG2」というモノがあります。

大変便利なのですが、あまり割り込みや内部動作を理解していない人が
使うと、不具合の解析に苦労する例もあるようです。

今回は、その一例を紹介します。

PDG2を使って非同期シリアル通信を使い、パソコンとCPUボードとの
コマンドのやりとりを行っていました。
パソコンからは確かにコマンドを出しているのですが、
「PDG2の割り込み処理で登録した関数に処理が飛んでこない」
という現象が発生していました。

PDG2の受信処理は、「受信完了時に関数で通知する」という機能を
使っており、指定したバイト数を受信したら指定した関数をコールする
という仕組みになっています。
なので、その関数に飛んでこないことは「受信割り込みが発生していない」
と思い込んでいたようです。

この場合、「指定したバイト数」が受信されていないことが原因です。
調べると案の定、フレーミングエラーが発生して1バイトたりとも受信
できていませんでした。

パソコンからCPUボードにはUSB-232C変換ボードを介して通信していた
のですが、このボードがレベル変換しかしておらず、信号が反転した状態
で通信していて、CPUボード内の232Cコンバーターによってレベル変換
&インバート(信号反転)を行っていたため、論理が逆の信号が入力されて
フレーミングエラーになっていた、というのが原因でした。

PDG2を使う場合であっても、UART(非同期シリアル通信)の基本動作を
理解していないと、思わぬところでつまずく端的な例だと思います。

やはり、CPUの内部動作、規格上の信号の動作を知っておくことは組み込み
技術者には不可欠だなと実感する事件でした。

皆さんも気を付けてくださいね。

PageTop

ロードセルとの闘い(2)

100ミリグラムの壁はまだ超えられていません。
一応、覚書。
・差動信号の+側と-側の間にコンデンサを入れる
・アンプでシングルエンドにした後にローパスフィルタを入れる
 (C=10μF、R=100kΩくらい)
・アナログ部分を全部シールドする
・デルタシグマADコンバータで変換後、ソフトで移動平均をかける

といったところでしょうか。

差動信号をシングルエンドにして増幅後、ADコンバータに入れるのはキツイ気がしています。
あとはアンプをゼロドリフトアンプのような低周波の変動に強い物にするくらいでしょうか。
ソフトで工夫すれば何とかなるのかわかりません。

仕様的には100ミリグラムで計り、後段でそれを利用する部分のアルゴリズムを工夫することで精度面は回避できそうです。

もう少し追い込んでみますかね。

PageTop

ロードセルとの闘い(1)

こんにちは。
今度はロードセルと闘っております。
ロードセルは信号成分が非常に微小なので、ノイズに影響されやすいのです。
そして今回開発しているモノでは数ミリグラムオーダーの精度が求められています。
ところが現在、いろいろ工夫してようやく100ミリグラムオーダーに抑え込んだ段階です。

最初はSAR(逐次変換)方式のADコンバーターを使っており、このときのノイズによる
「振れ」は大変なものでした。数十グラムは平気でグラグラします。
これをソフトでローパスフィルターをかけることで数グラムにはなりました。しかし
ローパスフィルターも減衰量を大きくすると応答時間が遅くなり使い物にならず行き詰りました。

そしてデルタシグマ方式のADコンバーターを使い、ソフトのローパスフィルターを併用することで
ようやく現在に至った次第です。

でもやはりノイズが信号に乗った状態で増幅してしまうのと、せっかく差動で出てくる信号を
シングルエンドに変換して入力しているのとで回路的に問題があることは否めません。
回路屋さんが最近忙しいので私が回路と格闘していますw。
今度差動アンプ内蔵のADコンバーターを使って試そうと思っています。

まだ1/100の精度にする必要があり、長い闘いになりそうです。
良い方策をご存知の方がいらっしゃったら是非、ご教示いただきたいです。

また経過を報告しますね。

PageTop

サボりまくり

こんにちは。
少しサボってしまい申し訳ありません。

さて今回は、近所で見つけたラーメン屋についてご紹介したいと思います。
山梨県甲府市にある「初志貫徹」というラーメン屋です。

私が今まで食べた中では断トツで一位というシロモノです。
週一で必ず行っていますね。

ダイエットが進まなくて困っています(笑)

もし近所に来られた方は是非お試しあれ!

PageTop

うつ病、克服に向かってる!?

 こんにちは。

 長い間苦しめられてきた「うつ病」ですが、最近仕事のこなせる量が増えてきたり、就業中に眠気に襲われたりすることがなくなってきました。
 現在は減薬をしている段階です。薬を減らされてから数日は調子が良くありませんが、すぐ慣れて通常通りの生活を行えています。

 いよいよ克服・・・でしょうか・・?

 うつ病に悩まされていた時期を振り返ると、自分で自信を持てなくなって、自分を責めることがよくありました。仕事をこなしていくうちに段々と自信が出てきて、悩みも小さくなったように思います。
 やはり自己肯定、これが一番うつ病に打ち勝つための武器なのではないかと思います。

 仕事に限らず、何かにおいて自己肯定できることが大事なのかと思います。今悩まれている方は自己否定に苦しみ、動くことに恐怖感があるというのが多いのではないでしょうか。

 何か動いてみて、自己肯定できれば良くなるというのは自分の経験上からの話ですが、動くことが大切なのは確かだと思います。

PageTop