趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • インテルベースのシングルボードコンピュータ

    投稿日 2016年 11月 24日 コメントはありません

    たまたま見かけたのですが、「Raspberry Pi 3に対抗する(?)」インテルベースのシングルボードコンピュータがいくつか出てきているようです。

    最初にみかけたのが LattePanda です。最初にみつけたYouTubeの動画などによると、

    • IntelのQuad CoreのCPU(Cherry Trail 1.8GHz)
    • ストレージは32GBのeMMC
    • RAMは2GBと4GBの2種類
    • RAMが2GBのモデルにはWindows10付きのものもある
    • USB3.0×1、USB2.0×2、WiFi + Bluetooth4.0、HDMI、100Mbps Ethernet、MicroSDスロット
    • Arduino対応のGPIO、Cheery TrailのGPIO
    • 電源は5V 2A

    と仕様のようです。で、メモリ2GBのOSなしが$79、メモリ2GBのWindows10モデルが$109、メモリ4GBのOSなし?が$139のようです。ディストリビュータはDFRobotのようなのですが、LattePandaのWebサイトからAmazon Japanのページに飛んでくると、4GB版が19,999円になっています。で、この4GB版の商品説明が微妙で、

    2016-11-24

    で、なんのこっちゃ?なのですが、要はWindows10はインストールされているのだけど、ライセンスキーは付属しない、ということのようです。騙されて(?)買っちゃった人のレビューが載ってます。$109でOS有りだと、まあ面白いかも、なのですが、いくら4GBといえども、2万円でOS無しだとあまり買う意味無いですね・・・。また、Raspberry Pi 3との比較ビデオもあって、これを見ると、Intelプロセッサだけどあまり速くない。というか、Raspberry Pi 3が思ったよりも速いというか、やっぱWindows10重いというか、そんな感じでしょうか。

    次に見かけたのがUDOO X86です。こちらはKICK STARTERでキャンペーンやってた(?)みたいです(やってるけど日本からは注文不可?)。公式Webの内容とKICK STARTERの内容で差があるのですが、公式Webの記載によると、

    • Intel の Quad Core CPU(Braswell で最大2.56GHzまでのモデルがある?)
    • メモリはDDR3L で 2GB/4GB/8GB
    • HDMIとDP×2(4K画像が3画面出せるような記述あり)
    • eMMC最大32GB(Webサイトでは安価なモデルはeMMCなし、KICKSTARTERでは8GB)
    • SATAコネクタ、M.2 SSDスロット、MicroSDスロット(KICKSTARTERではMicroSDからブートできるような記載もあります)
    • USB3.0×3ポート
    • Gigabit Ether
    • ArduinoコンパチのI/Oポート
    • その他

    ということみたいです。KICKSTARTERでは

    • 2GHzのCPU、RAM2GB、eMMC8GBのものが$89(売り切れ)
    • 2.24GHzのCPU、RAM4GB、eMMC8GBのものが$109
    • その他

    のようで、Webサイトで受け付けているPREORDERでは、

    • Atom X5-E8000 2GHz、RAM2GB、eMMCなし、ACアダプタ付きで$125
    • Celeron N3160 2.24GHz、RAM4GB Dual Channel、eMMCなし、ACアダプタ付きで$149
    • Celeron N3160 2.24GHz、RAM4GB Dual Channel、eMMC 32GB、ACアダプタ付きで$165
    • Pentium N3710 2.56GHz、RAM8GB Dual Channel、eMMC 32GB、ACアダプタ付きで$259

    となっています。まあ、小さいPCとしてみると魅力的に見えないこともないのですが、送料とか関税(かかるのかな?)とか考えるとイマイチ感もありますね。


  • ESP8266でSmartConfigを試してみた

    投稿日 2016年 11月 5日 3個のコメント

    長らく放置していたESP8266基板ですが、やっと動かしました。前回の記事から数えて約1年(ぉぃ)。回路図の定数に不適切な部分があってブートローダから先に進んでなかったのと、秋月のFT234X搭載の超小型UART変換基板だとなぜかLinux側が固まってしまうという事象に悩まされたためです(汗)。

    で、まだ最低限の機能しか試してないのですが、回路図はこんな感じです。回路図の電源周りにいろいろわけのわからないFETが入っていますが、これはソフトウェア制御で電源OFFできるようにするのと、電池使用時に電源電圧を自身で測定できるようにするためです。電池を使えば Amazon Dash Button 相当のことができる予定です。

    回路図

    UART変換基板は結局秋月のAE-TTL-232Rを使いました。

    開発環境はArduino IDE 1.6.12を使っています。昔調べた方法でボードマネージャでESP-8266を使えるようにして、ボードはGeneric ESP8266 Module、FlashメモリサイズはESP-WROOM-02に合わせて1M(64K SPIFFS)を選択しました。

    2016-11-05-02-29-33

    さらに1年間の進化は素晴らしいもので、smartconfigというWiFi周りの設定をAndroidスマートフォンでやる仕組みが登場していました。ArduinoのコードはGitHubのここから持ってきました。少しこの基板にあわせて修正したのが以下のファイルです。

    #include <ESP8266WiFi.h>
    #include <WiFiUdp.h>
    
    void setup() {
      int cnt = 0;  
    
      // set for STA mode
      WiFi.mode(WIFI_STA);
      
      // put your setup code here, to run once:
      Serial.begin(9600);
      
      // led status at pin16
      pinMode(12,OUTPUT);
      digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
      
      //configure pin0 
      pinMode(0, INPUT_PULLUP);
    
      // deplay for 2 sec for smartConfig
      Serial.println("2 sec before clear SmartConfig");
      delay(2000);
      
      // read pullup
      int isSmartConfig = digitalRead(0);
      if (isSmartConfig==0) {
        // bink for clear config
        blinkClearConfig();
        Serial.println("clear config");
        // reset default config
        WiFi.disconnect();
    
      }
    
      // if wifi cannot connect start smartconfig
      while(WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
        if(cnt++ >= 15){
           WiFi.beginSmartConfig();
           while(1){
               delay(500);
               if(WiFi.smartConfigDone()){
                 Serial.println("SmartConfig Success");
                 blinkSmartConfig();
                 break;
               }
           }
        }
      }
    
      Serial.println("");
      Serial.println("");
      
      WiFi.printDiag(Serial);
    
      // Print the IP address
      Serial.println(WiFi.localIP());
    
    }
    
    
    void blinkSmartConfig() {
        digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
        delay(50);              // wait for a second 
        digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
        delay(50);
    }
    
    void blinkClearConfig() {
      int i=0;
      while(i<=3) {
        digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
        delay(100);              // wait for a second 
        digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
        delay(100);
        i++;
      }
    }
    
    void blinkStartConfig() {
      pinMode(13,OUTPUT);
      int i=0;
        digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
    }
    
    
    void loop() {
      int isSW1 = digitalRead(0);
      if(isSW1==0){
        for(int i=5;i>0;i--){
          delay(1000);
          Serial.println(i);    
        }
        Serial.println("Power off");    
        delay(500);
        pinMode(15,OUTPUT);
        digitalWrite(15, HIGH);   // Power-off the board (HIGH is the voltage level)
        delay(5000);
      }
      delay(100);
      digitalWrite(12, 1-digitalRead(12));   // Blink the LED
    }
    
    

    修正したのは起動時のGPIO12のLEDの点灯と、ステータスのGPIOをGPIO16からGPIO13に変更、初期化が完了したら電源OFFする制御を追加したことです。これをコンパイルしてボードに書き込んでやります。

    シリアルモニタで動作を確認しながら、スマートフォンで「ESP8266 SmartConfig」というアプリを動作させてESP8266モジュールに接続させる先のSSID(スマートフォンがつながってるSSIDが勝手に表示されます)と、パスワードを入力してCONFIRMを押してしばらく待つとESP8266側の接続設定がされるという便利なものです。

    設定したSSIDとパスワードはフラッシュメモリ内に保存されて、次回は勝手にロードしてくれます。(上記のソースでは、起動後2秒たった瞬間にGPIO0がLレベルだと設定をクリアして再度設定待ちになります)

    <���������$�������ɕ����Ɂ�����
    �����5R�................SmartConfig Success
    .SmartConfig Success
    .SmartConfig Success
    
    
    Mode: STA
    PHY mode: N
    Channel: 4
    AP id: 0
    Status: 5
    Auto connect: 1
    SSID (17): xxxxxxx-yyyyyy-z
    Passphrase (10): xxxxxxxxxx
    BSSID set: 1
    ??.??.???.??
    5
    4
    3
    2
    1
    Power off

    上記は電源投入〜SmartConfigによる設定〜APへの接続〜シャットダウンまでのシリアルコンソールのログです。楽でいいですね!


  • FreeCADを使ってみた

    投稿日 2016年 8月 13日 コメントはありません

    Wings 3Dに引き続き3Dデータの作成に挑戦するため、やはりSynapticでLinuxMint 18 x64の環境にインストールできるFreeCADを試してみました。

    試行錯誤しながら動かしていたのですが、自分のように他の人が3DCADを使っているところを見たことがあれば、こちらの紹介記事をみながら何とか使えそうな感じです。操作で最もわからなかったのが、視点の変更。平行移動がマウスの中ボタン(スクロールホイール)を押しながらマウス移動、回転させるのが中ボタン+左ボダンを押しながらマウス移動ということです。

    で、あれこれしながら作ってみたデータはこんな感じ。

    sample1

    何かの基板を入れるようなケースを意図して作ってみたのがこんな感じ。

    sample2

    データ作成にあたっては、各オブジェクトの位置(穴や凹みは引き算で作ってますので、引くためのオブジェクトも含む)の座標や大きさなどを数値で打ち込んで行くイメージになりそうな感じです。なので、ラフスケッチのイメージを作っておいてから作業着手するのが良さそうです。3Dプリンタで簡単なものを作ったり、KiCAD用の3Dモデルを作る程度であれば、自分でも何とか使えそうです。(KiCADに持っていく方法やピンを作る方法は別途考えないといけないですが・・・)

    他に少し古いバージョンを対象に書かれているようですが、こちらのサイトも参考になりそうです。


  • Raspberry Pi3でネットワークブートなどが可能に?

    投稿日 2016年 8月 5日 コメントはありません

    まだ正式版ではないようですが、Raspberry Pi3でUSBメモリやネットワークからのブートが可能になるようです。

    リンク先によると、USBマスストレージとして起動するデバイスブート、USBホストとして起動するホストブート、マスストレージデバイスから起動するマスストレージブート、イーサネットから起動するネットワークブートが選べるようです。

    ブートシーケンスの資料によると、GPIOで起動モードを設定すると、CPUに内蔵のワンタイム(OTP=One Time Programmable)ROMから起動して、更にどのデバイスから起動するかの設定をGPIOから読み込むようです。

    ネットワークブートは設定がちょっと面倒な感じだけど、一度設定してしまえばクライアント側の劣化部分(要はSDカード)がほとんどなくなるのでちょっと便利かもしれない。設定方法はたぶんここ(最初のリンクの中にある)でしょうか?
    でも、Raspberry PiのEthernetはUSB越しなので、USB抜き差しで不安定になることがあるような感じなので、用途はかなり限られる気がしますが、大量のRaspberryPiのルートファイルシステムをあれこれしながら動かす用途であれば便利かも・・・ですね。クラスタとかなにかの観測ネットワークとかかな?

    自分は・・・たぶんやらないだろうなぁ・・・。


  • 秋月の新商品がおかしい・・・

    投稿日 2016年 7月 12日 コメントはありません

    今日発見した秋月電子の新商品・・・

    Screenshot-2

    どういう経緯で彼岸花の球根を電子パーツショップが扱うようになったのだろう・・・・?

    Screenshot-3

    「植物ですので大きさや色味はバラツキがあります」・・・・って、そりゃそうだけど、何故秋月に球根??よりによって彼岸花!?

    しかも在庫が「AAA」ってどんだけ在庫してるんだろう??


  • ESP8285が登場!?

    投稿日 2016年 6月 22日 コメントはありません

    例によってHack a Dayの記事から。

    EspressifからESP8266の後継チップが登場しているようです。その名もESP8285。データシートによると、一言で言えば、ESP8266では外付けだったSPI Flash(8Mbit)が内蔵になっていて、より小さなモジュールが作れる、というところでしょう。

    公式かどうかわかりませんが、開発用のボードもすでにあるようです。

    Hack a Dayの記事には小さな小さなモジュールの写真が載っています。小さいことだけはわかるのですが、1元硬貨との比較ではサイズがよくわかりません。やっぱり比較は25セント硬貨とじゃないと・・・。
    で、1元硬貨のサイズは直径25mmで、500円硬貨は直径26.5mmなので、ほぼ500円硬貨くらいのようです。となると、モジュールのサイズは9mm角くらいでしょうか。アンテナがないので、アンテナ付きだともう少し大きくなるでしょうが。


  • Raspberry Pi 3をセットアップ

    投稿日 2016年 5月 4日 コメントはありません

    しばらく前に買ったけど動かしてなかったRaspberry Pi 3をセットアップしてみました。

    1.ハマったポイント

    Raspbianを使ってみたのだけど、32GBのMicroSDだと起動途中にパニックを起こす。2枚のMicroSDで同じ結果。結局、8GBのMicroSDだと問題なさそう。

     

    2.設定した箇所

     

    1)初期設定

    起動すると自動的にグラフィカルログインした状態になるので、コンソールを開いて

    $ sudo raspi-config

    でコンフィギュレーション設定する。Expand FilesystemでファイルシステムをMicroSDカードいっぱいまで拡大、Change User Passwordでパスワード設定、Internationalization Optionsでロケールの設定、タイムゾーンの設定、WiFiの国設定を実施して終了する。再起動すると、ファイルシステム拡大が実行される。

    デスクトップ環境のMenu→Preference→Raspberry Pi ConfigurationのLocalizetionで日本語キーボードを設定。

    パスワードの設定が終われば、リモートログインできる。ネットワークにつないであれば、mDNSとsshデーモンが動いているので、リモートから

    $ ssh pi@raspberrypi.local

    とやると、sshでログインできる。(パスワード変更していない場合、初期パスワードはraspberry)

    2)画面サイズ

    画面サイズがVGAくらいのサイズをFullHDに拡大表示しかされなかったので、HDMIを強制的に表示させることにする。/boot/config.txtを修正。

    hdmi_group=1
    hdmi_mode=16

    さらに、オーバースキャン表示を想定しているため、画面周囲が黒枠になって実質的なデスクトップが狭い。液晶モニタでは関係ないので、オーバースキャン対応を禁止する。同じファイルのdisable_overscanのコメントを外す。

    disable_overscan=1

    これでFullHDにピクセルバイピクセルで等倍表示されるようになった。

    3)日本語化

    $ sudo apt-get install fonts-vlgothic ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname

    で日本語フォントをインストール。インストール後、デスクトップ環境のMenu→Preference→Raspberry Pi ConfigurationのLocalizetionでLocaleをLanguageをja、CountryをJP、Character SetをUTF-8に設定。OKを押していくと再起動を要求されるので再起動すると日本語になっている。

    次の項のアップデート後、

    $ sudo apt-get install ibus-anthy

    として日本語入力をインストールする。再起動後、右上の「US」を左クリックして「日本語 – Anthy」にすると日本語入力ができる。

    4)その他

    $ sudo apt-get update
    $ sudo apt-get upgrade

    でアップデートをかけておくと基本的には完了。

    $ sudo install synaptic

    でsynapticパッケージマネージャをインストールして、Synapticから好きなソフトをインストールすればOK。
    WebブラウザはFirefoxベースのiceweaselとその日本語言語パックのiceweasel-l10n-jaをインストールしました。

    ブラウザとしては十分に動きます。Youtubeも720pのビデオも一応再生できるようになりました。さすがにコマ落ちが激しいのと、16bitカラーになっているのか、グラデーション部分にマッハバンドが出ますが。


  • Raspberry Pi 3が秋月・千石に登場

    投稿日 2016年 3月 27日 コメントはありません

    すでに皆さんご存知のRaspberry Pi 3。無線(WiFi、BT)が載った関係で日本での発売が遅れていたようですが、秋月と千石に登場しました。

    Screenshot from 2016-03-27 11:44:50

    価格はどちらも税込み6200円。$35だと今のレートだと¥4,000くらい。秋月のRaspberry Pi 2の販売価格は¥5,600。Raspberry Pi 2より高いのは初物だからなのか、TELECの認証費用が割掛けされてるからなんでしょうかね。秋月の方はすでに在庫切れですが、千石の方は在庫切れではないようなのでポチッと注文してみました。いつ来るかな〜?

    Raspberry Pi 2よりも倍速いって書いてあったような気がするので、ブラウザが中心ならPC代替として結構使えるようになるかもしれませんね。


  • 秋月の新しいGPSモジュールを試してみました

    投稿日 2016年 2月 22日 1つのコメント

    秋月の新しいGPSモジュール(単品ではなくキットの方)を試してみました。

    このキットはこのUSBシリアル変換基板と接続して使うことを初めから想定しているのか端子配置が合わせられています。・・・が、Androidでも使ってみたいと思っているので、今回はあえてPL-2303を使用したUSBシリアル変換モジュールと接続するケーブルを作成しました。

    まずは、aitendoのモジュールと同じ構成で中華Androidに接続、「You Are Here GPS」を起動するとしばらくして測位ができて座標が表示されました。GPSモジュール側でもLEDが1秒周期で明るく点滅するようになりました。さらに、中華AndroidのGoogle Mapsでも現在位置としては取得できたのですが、継続的にトラッキングしてはくれません(理由不明)。

    そこで、今度はLinuxMint13環境で動かしてみました。

    まずはwineとwine-geckoをインストールして、秋月のWebサイトに上がっているMiniGPS(GPSチップの製造元、MediaTekのソフトのようです)を動かしてみました。

    $ cd ~/.wine/dosdevices
    $ ln -s /dev/ttyUSB0 com1

    としてからMiniGPSをwineで実行します。実行したらCOM1を選択して9600bpsに設定。測位が完了すると無事にGPS衛星の掴み具合を表示してくれました。(なお、後述のgpsdをインストール後はCOMポートに接続できなくなりますので要注意)

    次にgpsdをsynapticでインストールしました。・・・が、これだけでは動いているんだかよくわかりません。せっかくGPSなのですから、マップ上に自分の場所を表示させてみたいものです。ググってみると、Vikingというのが定番みたいなので、Synapticでインストールしてみました。

    使い方がちょっとわからなかったのですが、ウインドウの左側がレイヤーになっているようなので、

    1. 左側の下の方の「+」ボタンを押して、「New Map Layer」でOpenStreetMap(MapQuest)を追加します。以下のダイアログが開くので、
      Screenshot-Layer-Properties-1「Autodownload maps」にチェックを入れてOKを押します。
    2. 次に、「New GPS Layer」でGPSを追加します。ダイアログで「GPSRealtime Tracking mode」を選択して、以下のように設定します。
      Screenshot-Layer Properties

    この状態だと現在位置はニューヨークのマンハッタンになっているのですが、追加したGPSを右クリックして「Start Realtime Tracking」を選択してしばらくすると、地図上に軌跡が描かれるようになりました。

    Screenshot-Untitled-Viking-1

    キャプチャ画面でもわかる通り、道路に沿って綺麗に軌跡を描いてくれます。

    ちなみにこのVikingですが、aitendoで購入したモジュールでも同じように動作しました。
    Linuxで動かすぶんにはPL-2303系のモジュールである必要はないと思うので、FT234Xのモジュールに変更して動かしてみようかと思います。


  • 64bit環境にMPLAB-Xをインストールする

    投稿日 2016年 2月 13日 コメントはありません

    故あって、Ubuntu17.1 MATE 64bit環境に16bitPICをターゲットとしてMPLAB-Xをインストールしました。

    ダウンロードしたMPLAB-Xのtarファイルを展開すると、シェルアーカイブがでてくるので、これをスーパーユーザー権限で実行しても、

    ~$ sudo ./MPLABX-v3.20-linux-installer.sh
    64 Bit, check libraries
    Check for 32 Bit libraries
    These 32 bit libraries were not found and are needed for MPLAB X to run:
    libexpat.so
    libX11.so
    libXext.so

    となって、32bitライブラリをインストールするよう要求されます。・・・が、ここで表示されているものを素直にapt-getでインストールしようとしてもダメなのです。

    じゃあ、どうしたらいいのかについては、こちらに記載があります。

    ~$ sudo apt-get install libc6:i386 libx11-6:i386 libxext6:i386 libstdc++6:i386 libexpat1:i386
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています                
    状態情報を読み取っています... 完了
    以下の特別パッケージがインストールされます:
      gcc-4.8-base:i386 gcc-4.9-base:i386 libgcc1:i386 libxau6:i386 libxcb1:i386
      libxdmcp6:i386
    提案パッケージ:
      glibc-doc:i386 locales:i386
    以下のパッケージが新たにインストールされます:
      gcc-4.8-base:i386 gcc-4.9-base:i386 libc6:i386 libexpat1:i386 libgcc1:i386
      libstdc++6:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386
      libxext6:i386
    アップグレード: 0 個、新規インストール: 11 個、削除: 0 個、保留: 12 個。
    5,061 kB のアーカイブを取得する必要があります。
    この操作後に追加で 13.7 MB のディスク容量が消費されます。
    続行しますか? [Y/n] 
    (以下略)

    ということで、パッケージ名の後ろに「:i386」をつける必要があったようです。わかってしまえばなんと言うことはないのですが、わからないと困りますよねぇ・・・。

    ここをパスできれば、あとは再びシェルアーカイブを実行するとインストール完了です。併せて、XC16もダウンロードしたシェルアーカイブを実行してやると途中でライセンスファイル生成のためにNICのMACアドレスの確認ダイアログが出ますが、そのまま次へ進めてしまえばインストール完了です。