2023年5月3日水曜日

R2-D2を作ってみよう(2) ドーム機構

前回紹介した ドームの青くなるところは穴をあけています。
ここにフタをつけてサーボモーターで開閉させてみます。

ドーム機構

サーボモータでフタを開ける

前回同様にDesign Spark Mechanicalでデザインし
造形しました。


サーボモータをつけて動かしてみました。
大丈夫そうです。

ちなみに サーボモータを動かすとき一気に角度を変えるのは、プログラムを書くには簡単なのですが電流が急増しサーボモータのギアに過大な負荷がかかり寿命を縮めます。手間はかかりますが、ゆっくりと動かすことを推奨します。

ドームを廻すギア

ドームの内側に大きなギアを仕込んでギアモータで回転させます。
モジュール3で大きなギアが144歯、小さいほうは16歯です。
仕様予定のギアモーターの速度が300RPMでギア比を1/9にしたので
1秒間に0.55回転できます。
つまり2秒間に1回転くらいになります。
今使っているCADではギアが作れないので、Fusion360の無償版でギアを作ってSTLで保存したデータをインポートして、手作業でトレースしました。トレースは1歯作ってあとはコピペを繰り返しています。
大きなギアは6分割してはめ込みでつながるようにデザインしました。
材料はカーボン入りPLAです。

印刷してみました。クリアランスを0.1㎜とりました。


1/6のギアを2個連結した図

話す

2023年5月14日 追記
R2-D2君といえば あのピポピポと電子音での発話は外せませんね。
Webからダウンロードしたりもできるようですが、内部で合成させたいものです。
組み込み用のR2-D2ボーカライザーを調達して使ってみようかと思います。

(1)にもどる

2023年4月26日水曜日

R2-D2を作ってみよう(1) 情報収集 ドーム製作開始

 出遅れ感はあるのですが、すでに完結したスターウォーズに出てきた人気キャラクタのR2-D2を作ってみたくなりました。大きいとは思うのですが実寸大で作ります。

2023年4月26日

R2-D2検討

情報収集

検索したところ、同好会があったので登録しました。会の名前はR2-D2ビルダーズクラブです。日本支部もあるようです。ここには、会のメンバーが拾い出した寸法の図面もあります。この図面をダウンロードして利用しました。


ほかには、動画サイトでR2-D2を作った的なものを見て参考にしています。
3Dプリンターで外装をすべて作るという動画もありました。そこではギアやタイヤも3Dプリントしていましたので、自分も作れそうだと思ったのでした。

仕様の検討

外装:3Dプリンタで印刷。データは自分で作る。元データは上記のサイトです。
   素材は、丈夫そうなカーボン強化PLAを使ってみます。
走行系:モーターは電動バイク用の24V・100Wモーターを左右で二個使いましょう。
    タイヤはTPUとPLAで自作します。
電源:リン酸鉄系バッテリーを使ったポータブル電源を使ってみます。
   容量は300WHです。
電装系、センサー、コントローラ:未定

ドームの製作

特徴的なドームの外装から作ります。
すべて3Dプリントする予定なので、寸法の制約は「プリントできる」になります。
一発印刷は無理なので、分割して貼り合わせます。
接着剤は、アクリル用のジメチルエタンを主成分にしたものです。


小分け用に中栓付きのガラス瓶と針付きの注射器を100均で調達しましたが、注射器は長持ちしません。

こんなのを作ります。Design Spark Mechanicalを使っています。
ドームの形をつくります
平面で6分割の線を引いてドームを分割し、天頂の穴をあけます。
下のほうにある窓は、細かく分割していきます。
数がおおいのでひたすら頑張って分割します。
縦割り、横割りで分割して窓を開けていきます。
窓開けが一通り終わりました。

天頂部分はさらに分割しておきます。

下のほうを6分割して貼り合わせ部分に糊代をつけておきます。

次はプリントです。
プリンタはKingroonのKSP3S PROで20㎝x20㎝x20㎝のプリントができます。

ひとつづつプリントしますが、時間が13時間越えです。
これが6個いるので気長に行きましょう。

天頂部はこれを3個作って貼り合わせます。


だんだんとできてきましたので、順次貼り合わせます。
形状は完成しました!!!
積層痕と張り合わせ部の段差をパテと削りで滑らかにします。
内側はこんなかんじ。


外側をサンドペーパーがけして概ねなめらかにして
黒色のサーフェイサーで下地塗装をしました。
5月連休の青空のしたで塗装しています。
積層痕のへこみが消えないのでこれで4回目です。
かなりきれいになってきました。
塗パテを使ったほうがよかったかもしれないですが、アマゾンで買ったサーフェイサーが最低数量しばりがあって3缶買ったのでたっぷり吹いておきます。

ドーム黒サフ塗装屋外で乾燥中の図

正直言って塗装は経験不足なので 次の銀色塗装がどうなるか楽しみです。
塗ったよー。
塗料は「アサヒペン メッキ調スプレー 300ML シルバー」です。
塗った直後は鏡面っぽいですが、乾くとこんな感じになります。
乾燥しても金属粉がとれるらしい。対策は後程。
よく見ますと下地処理が甘いなあ。凸凹がよくわかります。

削らなかったところは しっかりと積層痕が残っています。(^^;;;




(2)に続く





2022年9月18日日曜日

ホームオートメーションを作ってみる(2)Home Assistant

Home Assistantの作成

構成

ボード:RaspberryPi 3B+

Micro SD: Toshiba 32GB HC-1

使うラズパイにあった電源 

設定用のWindows PC 

準備

ホームページのここで情報収集です。要約しておきます。
  • 注意:しっかりした電源を用意しないとラズパイはまともに動きません。USB充電器では不十分なものが多い。PCのUSBポートでは電力不足で使うべきではありません。
  • 推奨ハードウエア 
    • RaspberryPi 4を推奨しますが、既に持っているなら3でも大丈夫です。
    • 使うラズパイに適した電源。
    • MicroSDはClass2がいいです。容量は32GB以上を推奨します。
    • SDカードリーダ たいていのPCにはついてます。なければ安い一般的なものを買えば間に合います。
    • LANケーブル インストールが終わればWi-Fiで動きます。しかし有線接続は信頼性が高く強くお勧めします。

    手順

    MicroDSのフォーマット

    SD Associationのサイトからフォーマットツールをダウンロードして初期化します。

    上書きフォーマットにしたので時間がかかっています。

    起動メディアにイメージを書く

    SDカードをPCに差す。
    ボードにあったイメージを選ぶ。64bitが推奨だそうです。
    https://github.com/home-assistant/operating-system/releases/download/9.0/haos_rpi4-64-9.0.img.xz
    https://github.com/home-assistant/operating-system/releases/download/9.0/haos_rpi4-9.0.img.xz
    https://github.com/home-assistant/operating-system/releases/download/9.0/haos_rpi3-64-9.0.img.xz
    https://github.com/home-assistant/operating-system/releases/download/9.0/haos_rpi3-9.0.img.xz

    BalenaEtcherを起動する。

    Flash from URLをクリックする。
    先に選んだURLをコピペする。

      • OKをクリックするとダウンロードが始まるらしくしばらく待たされます。

    Flashをクリックします。

    書き込みが始まりました。終わるまで待ちます。
    書き込みが終わると、Windowsが認識できなくなりますのでこんなダイアログがでます。しかし、フォーマットしてはいけません。

    用意ができましたので、MicroSDを抜いて、ラズパイにさして電源をいれればよいはずです。

    RaspberryPi ボード

    24時間運転することになるので、放熱をしておこうと思います。自然空冷でよいでしょう。



    足りないようならこれにファンを追加しましょう。

    初回起動

    MicroSDをラズパイに差します。
    ラズパイとLANを有線でつないでおきます。
    あれば、HDMIモニタをつなぎます。
    ラズパイに電源をいれます。
    ラズパイの赤LEDがつきます。
    ラズパイの緑LEDが点いたり消えたりします。
    HDMIモニタがつながっていればこのような画面になります。

    PCのブラウザから homeassistant.local:8123.を開いてみます。

    こうなりました。なんと日本語です。

    続きは、ONBOARDINGでできると、書いてあります。

    Onboarding Home Assistant

    ここまでこれれば、難しいところは終わったと書いてありますね。
    名前とユーザー名をいれて、パスワードを設定し、次のページでも色々設定したら、初期設定は終わりです。
    画面をみると、今の天気は雨降りです。あってますね。



    ちなみに、Chromeで開いていましたが 同じPCのEdgeで開いてみました。
    URLは http://homeassistant.local:8123/lovelace/0 になりますが、Loginが要求されて開くことができました。



    (1) に戻る (3)に進む

    2022年9月17日土曜日

    ホームオートメーションを作ってみる(1)プロローグ

     我が家の太陽光発電と消費電力のモニタが 先日の落雷(近所の木に落ちた模様)で壊れてしまったので 代わりがほしくなりました。

    電力モニターを探す。

    長い前書き

    すぐ見つかるのはHEMSですが、お高いんですよね。そこで 色々探してEmporia Vue 2というのを見つけました。大手通販会社で扱ってます。

    WiFiを使うので電波法の適用を受けるのですが、本家のサイトで内部写真をみたらWi-FiモジュールはよくあるESP32のシリーズで技適付きでした。

    懸念事項は、専用のクラウドサービスを使って読み出すので、メーカーがクラウドを何時まで維持するかわからないことです。売り切り装置の無償アフターサービスを無制限に続けるのは不可能ですよね。おまけに、既にクラウドサーバが過負荷になってないか?という疑念もあるらしい。これは、通販会社のレビューでも指摘している人がいました。せっかく作ったのに数年でゴミになるのは悲しすぎる。ハードはコンパクトにまとまっていて使えないのはもったいない。

    同じことを考えた人が世界には居て、ローカル接続用に改造する方法が公開されているのを見つけました。Wi-FiモジュールがESP32ですが、ESPHomeというグループがあってそこの有志が解析してHome Assistantに接続できるようになっているようです。Home Assistantは、オープンソースのHEMSのようなシステムです。RaspberryPiでも動くようですが 海外のWebを検索すると活発に活動していて とにかく何でもつながるようになりつつあるようです。アレクサに音声で指示して家電を操作したり、監視カメラも映像をモニタに出したりとか 色々できるようにできるらしい。

    話がそれましたが、Emporia Vue 2を改造して、Home Assistantから電力を読み取って スマホやタブレットにグラフをだすというのを、やってみようと思ったわけです。

    スマートメータのBルートの消費電力もHome Assistantにつないでみたいですが、これは日本にしかない規格を使っているので自分でつくる必要がありそうです。米国だとZigBeeを使っているようですね。日本だったらTWELITEとか使えばよかったのにと思ってしまいます。

    それはともかく、Home Assistantは 発展性もありそうで色々試したいと思います。

    サーバの選択

    RaspberryPi ですが、最新の 4の8Gメモリを使いたいところですが、ちょっと高すぎですねえ。3+は持っていますので 32Gのメモリカードとの組み合わせでパフォーマンスがどうか気になります。MicroSDは キオクシア製を使いたいと思います。Webで使えると書いてあった某社のSDを使ったことがあるのですが 使うほどにどんどん壊れて大変なめにあいました。東芝さんは大丈夫だったのでキオクシア製を使ってみることにします。→(追記)手元にTOSHIBAのMicroSDが残っていたので、それで始めることにしました。


    リンク

    忘備録を兼ねて必要そうなLINKを置いておきます。

    Home Assistant関係

    Home Assistantホーム https://www.home-assistant.io/getting-started/

    インストールページ https://www.home-assistant.io/installation/

    Raspberry Pi インストール https://www.home-assistant.io/installation/raspberrypi

    ESPHome関係

    ホームページhttps://esphome.io/

    Emporia Vue Gen2のESPHome化https://gist.github.com/flaviut/93a1212c7b165c7674693a45ad52c512

    日本語の先達のページ

    facebookで教えて頂きました。

    スマートメーター bルート http://blog.andromeda.jp/archives/2194


     つづき(2)

    2022年3月6日日曜日

    LEDで数字を表示する件(MAX7219)

     簡単な数値表示をしたくなったので、7セグメントのLED表示モジュールを動かしてみました。MAX7219を使った8桁モジュールを2個つないで16桁出してみます。

    MAX7219を使った8桁2行の数値表示

    MAX7219は、8桁の数字を表示できるコントローラで、複数つないで桁数を増やすことができます。
    コントローラはArduinoを使いました。汎用ポートで制御しました。

    早速ですが試作品の動画です。
    表示内容と明るさが変わっています。

    接続は、簡単です。Arduino側の端子は後述のソースコードをご覧ください。


     // MAX7219 LED表示器 x2
    //   7セグメント16桁
    //
    // MAX7219 接続端子宣言
    #define LED_DIN   4
    #define LED_CLK   5
    #define LED_LOAD  6
    #include "MAX7219.h"
    void setup() {
      // put your setup code here, to run once:
      
      LED_init();
    }
    void loop() {
      // put your main code here, to run repeatedly:
      char pp[16] = "1234567812345678";
      char *p;
      p = pp;
      LED_Intensity(1);
      LED_Print(p);
      delay(1000);
      
      //p = "2468024680246802";
      p = "1357913579135791";
      p[0] = '9';
      p[1] = '9';
      p[2] = '9';
      p[3] = '9';
      p[4] = '9';
      p[5] = '9';
      p[6] = '9';
      p[7] = 10;
      p[8] = 12;
      p[9] = 11;
      p[10] = 13;
      p[11] = 14;
      p[12] = 15;
      LED_Intensity(4);
      LED_Print(p);
      delay(1000);
      
    }

    以下を"MAX7219.h"というファイル名でスケッチフォルダに保存します。

    // LED Commad
    #define LED_DecodeMode 0x09
    #define LED_intensity  0x0a
    #define LED_ScanLimit  0x0b
    #define LED_Shutdown   0x0c
    #define LED_DisplayTest 0x0f
    #define LED_ShutdownMode     0x00
    #define LED_NormalOperation  0x01
    #define LED_NoDecode      0x00
    #define LED_DecodeFor7Seg 0xff
    #define LED_DecodeMode2   0x01
    #define LED_DecodeMode3   0x0f
    // 関数プロトタイプ
    void LED_send(byte address, byte data);
    void LED_Byte(byte data);
    void LED_init()
    {
      pinMode(LED_DIN,OUTPUT);
      pinMode(LED_CLK,OUTPUT);
      pinMode(LED_LOAD,OUTPUT);
      digitalWrite(LED_CLK, HIGH);
      digitalWrite(LED_LOAD, LOW);
      LED_send( LED_DecodeMode,LED_DecodeFor7Seg);
      LED_send( LED_intensity,0x01);
      LED_send( LED_ScanLimit,0x07);
      LED_send( LED_Shutdown,LED_NormalOperation); 
      LED_send( LED_DisplayTest,0);
    }
    void LED_send(byte address, byte data)
    {
      LED_Byte(address);
      LED_Byte(data);
      LED_Byte(address);
      LED_Byte(data);
      digitalWrite(LED_LOAD, HIGH);
      digitalWrite(LED_LOAD, LOW);
    }
    void LED_Byte(byte data)
    {
      int i;
      for(i=0; i<8; i++)
      {
        if((data & 0x80) == 0)
        { digitalWrite(LED_DIN, LOW); }
        else {digitalWrite(LED_DIN, HIGH);}
        digitalWrite(LED_CLK, LOW);
        digitalWrite(LED_CLK, HIGH);
        data = data << 1;
      }
    }
    void LED_Intensity(byte intensity)
    {
        LED_send( LED_intensity,intensity);
    }
    void LED_Print(char* pp)
    {
      for(int i = 0; i < 8; i++)
      {
        LED_Byte(8 - i);
        LED_Byte(pp[i]);
        LED_Byte(8 - i);
        LED_Byte(pp[i + 8]);
        digitalWrite(LED_LOAD, HIGH);
        digitalWrite(LED_LOAD, LOW);
      }
    }


    スケッチをここに置いておきます。

     

    2021年12月19日日曜日

    超音波カッターってなに?

     超音波カッターというものが売られていると聞きました。
    刃が超振動して敵を切り裂くという、昭和の巨大ロボが持っていそうな、スーパーアイテムっぽい味わいですが、実用品なのですね。調べると、歯の歯垢とりも似た原理のものがあるらしい。それで、入手してみました。

    超音波カッターを入手しました


    業務用のものは高価とのことですが、実用になる廉価版を売ってるらしい。

    しかも、動画で使っているところを見ることができて、通販で買える。値段は安くはないけれど、値段以上の価値があるとの評判も上々でした。

    加えて、いまプラ切りに使っているホットナイフはちょっと不満を感じ始めているところでした。今使っているのはこちら、です。十分使えています。

    ホットナイフ

    半田こてにペンナイフの刃を装着したもの


    ぽちった。

    12月17日にぽちっりました。本体はYAHOOで買ったのですが、年末セール中で本店よりも安く買うことができてハッピーです。
    いくつかオプション(替え刃とか、トルクレンチとか、ソウジキットとか)は本店に注文しました。オプションも結構高い。トルクレンチはどうするか悩むところですが、、。

    届いた

    予想より早く12月19日の朝には本体が届きました。サイトの情報ではもう少し遅くなるってことでしたが、速くなるのは嬉しい。精密機器って書いてあります。


    開封の儀

    きれいなカタログは、車のランプのカタログでした。

    内箱の中です。



    取り出すと、これだけ。軽いです。
    可愛いシールが貼られています。



    6角レンチと保守用金具、イモネジが同梱されていました。
    保守パーツは、あとでホルダを3Dプリンタで作ろうと思います。

    早速切った

    不要になったCD/DVDを切ってみました。
    スパっとではないですが、ぬるっと切れる感じです。


    ホットナイフと比べて、待ち時間がないのがいいです。
    切っている様子をご覧ください。
    [動画サイトに飛びます。]




     DVDを切って切り口をみると層構造がよくわかります。
    バリが少しありますが、ホットナイフよりきれいな気がします。

    厚くなるとどうなるか?
    3枚重ねで切ってみましたが、同じようにきれますね。
    [動画サイトに飛びます。]


    3Dプリント(PLA)パーツの切れ味

    融け易いので切れやすいかと思いきや、
    CD/DVDのポリカと大差ない切れ味でした。
    [動画サイトに飛びます]


    感想

    ホットナイフと比べて、待ち時間なしで使えるのがいいですね。使い終わった後も熱くないので置き場所に困らない。臭いもほぼ感じないし、十分よく切れます。定格40Wというのは、低価格帯にしてはハイパワーのように感じました。これから活躍してくれそうです。

    LINKs

    本家の通販サイトはこちら
    私が最近見た範囲では、Y通販の割引クーポン付きが本体は一番安かった。
    本店は税抜き価格なので、通販サイトが税込み表示だと高く見えるけど実は同じというのもありました。
    LINKではありませんが、NH7603で検索すると動画から通販サイトまで色々見つかると思います。

    2021年12月18日土曜日

    二足歩行ロボ

    一度はつくってみたい二足歩行ロボですが、難しそうですよね。お高価そうだし、なかなか手が出せないでいましたが、自由度(≒サーボモータの数)が少なくてもなんとかなるらしいので作ってみました。

    二足歩行ロボをつくってみる

    目標

    • 手足のある人型にして 腕も動かしたい。
    • 低価格でつくる。
    • IchigoJamでコントロールしたい。
    • 電源搭載で自律動作できる。
    • 重心を移動して静的安定歩行で我慢するけど、"コ"の字型の足裏タイプでは満足できません。
    現在の姿を紹介します。
    二足歩行ロボ

    プロトタイプ

    最初に脚だけであるくモデルを試作しました。


    これには、小さく作ったIchigoJamを使っています。オーバーアクションですが、体を傾けて重心を移動した歩行動作ができることがわかりました。オリジナルのIchigoJamのためサーボモータは4個までで、腕は動かせません。I2C接続で回路を足して動かすこともできるのですが、プログラムが複雑になるので別の方向で考えます。

    IchigoJamアップグレード

    IchigoJamの次期バージョンの開発が進んでいてそれならサーボが6個まで駆動できます。それなら腕の上げ下げも可能になるので、制御にはIchigoJam-Rを採用に決定しました。ところが、これを作ろうとしてもCPUチップが手に入らなくなってしまっていました。そこで考えたのは、同じCPUを使ったLongan NanoというワンボードマイコンにBasic FirmwareをいれてIchigoJam-R化することです。別の記事にまとめましたので、こちらをご覧ください。

    3Dパーツ

    サーボモータとコントローラは目途が立ちましたので、残りのパーツを3Dプリンタで作ります。

    使ったCADはデザインスパークメカニカルという無償のものです。形状が複雑になると動作が不安定になりますが、私には使いやすいです。サポートなしでプリントできるように形状を考えて作っています。

    出来たパーツをプリントするために、並び替えておきます。さらにプラモデルのようにライナーでつなぎました。キットをつくるときパーツをそろえるのが楽になります。
    プリントしたのがこちらです。

    プラモのように切って組み立てますが、ホットグルーとネジで組み立てます。サーボの配線をつないで、プログラムすれば、、、。

    歩行動画



    脚の動きはこうなっています。


    股関節の動きを変えれば左右旋回もできます。もちろんバックも可能です。

    プログラム

    動画の動きとプログラムを見比べてみてください。改造して旋回とかバックもできます。
    50 @ARUN
    101 A=50
    102 B=80
    103 C=90
    104 D=240
    105 E=150
    106 F=105
    110 PWM 1,A
    120 PWM 2,B
    130 PWM 3,C
    140 PWM 4,D
    150 PWM 5,E
    160 PWM 6,F
    190 J = 0
    191 S = 2
    200 FOR P=0 to 5
    210 FOR I=0to-10 step -1
    215  PWM 6,F+I
    220  PWM 3,C+I: WAIT S
    230 NEXT
    250 FOR J=J TO -30 STEP -1
    251  PWM 2,B+J
    252  PWM 5,E+J
    253  WAIT S
    254 NEXT
    310 FOR I=-10 to 0
    315  PWM 6,F+I
    320  PWM 3,C+I: WAIT S
    330 NEXT
    410 FOR I=0to-10 step -1
    415  PWM 6,F-I
    420  PWM 3,C-I: WAIT S
    430 NEXT
    445 K=30: IF P = 5 THEN K = 0
    450 FOR J = J TO K
    451   PWM 2,B+J
    452   PWM 5,E+J
    453   WAIT S
    454 NEXT
    510 FOR I=-10 to 0
    515  PWM 6,F-I
    520  PWM 3,C-I: WAIT S
    530 NEXT
    550 NEXT

    サーボモータ接続
    OUT:サーボ位置
    1:右肩
    2:右腰
    3:右踵
    4:左肩
    5:左腰
    6:左踵

    これからの予定

    モーションセンサを使ってリモコンとか、センサを搭載して自立動作とか、いろいろやってみたいと思います。
    頭も作ってあげないとね。