2019年8月16日金曜日

VIVITAシンガポールを訪問

昨日、一時帰国した時、シンガポールにあるVIVISTOP Orchardを訪問しました。
この場所はVIVITAのシンガポール「支店」です。
日本では千葉県柏市の柏の葉にVIVISTOP Kashiwanohaがあります。

子供を自由にものを作る場所で、新しく解説したシンガポール「支店」はまだまだ来場者が少なかったです。
機械や設備も少なかったですが、徐々に増やしていくと聞きました。
今がとりあえず3Dプリンター、レーザーカッター、筆記用具、電子工作の基本パーツ、そして大方CNCマシン(子供自分での使用禁止)などが置いてあります。

子供たちが自分で3DデザインをTinkerCADで作り、それを3Dプリンターで形にする。
熱加工機で自分のデザインをカバンに印刷する。
VIVITA独自の電子工作パーツでRC車をつくり、独自のソフトで制御プログラムを書く。
裁縫の得意な子は自分のぬいぐるみをつくる。
子供にとってはかなり楽しい場所です。
そして、大人スタッフもいますので、機械などの使い方も教えてくれるし、ちょっと危険そうな機械などは大人が操作してくれます。
子供も親も安心に過ごせる場所だと思います。
機会があれば、ぜひシンガポール(ちょっと遠い?)か柏の葉へ訪ねってください!😉

2019年8月15日木曜日

MRR ESPA:ESP32の3Dプリンター制御基板

ESP32の3Dプリンター制御基板MRR ESPAの開発が順調に進んでいます。


今までの過熱問題もトレースを太くしたことによって解決しました。
ファームウェアの開発もMarlinレポで進んいます。
Marlinファームウェアはこのボードの基本的動作を全て対応しています。
TMC2130のSPIモードも確認できました。

最近はテストプリントとして色々プリントアウトしています。
例えば、以下のもの。

ボードの冷却について、8010ファン(80mm x 80mm x 10mm)をお勧めします。
大きさと風量の割に静かです。

これから製造工場を探します。
早くこのボードを世の中に出したいです!
お楽しみに!😉

追記:レポでは英語のみですが、近日、日本語の説明や取説を作るつもりです。

2019年6月1日土曜日

Jetson Nano上でVSCodeをインストール

VSCodeはマイクロソフトが開発しているプログラミング用IDEです。
Jetson Nanoではソースコードからビルドする必要があります。
手順は
Jetson nanoにVSCode+Pythonの開発環境を整える
を従いましたが、エラーが出てきて、
最終的に
Building Visual Studio Code on Jetson Nano
を参考して何とかビルドが成功しました。

一連のコマンドは:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt update
sudo apt install -y libx11-dev libxkbfile-dev libsecret-1-dev fakeroot npm curl nodejs nodejs-dev yarn

git clone https://github.com/Microsoft/vscode.git
pushd vscode
sed -i 's/4095/2048/g' package.json
scripts/npm.sh install
yarn
yarn run gulp vscode-linux-arm64-min
yarn run gulp vscode-linux-arm64-build-deb
sudo dpkg -i ./.build/linux/deb/arm64/deb/code-oss_1.??.?-*_arm64.deb

そして、拡張機能ギャラリーを有効にするため、
sudo nano /usr/share/code-oss/resources/app/product.json
を実行します。

エディタで、一番したの

の上に、
,"extensionsGallery": {
    "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
    "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
    "itemUrl": "https://marketplace.visualstudio.com/items"
}
を追加すると拡張機能ライブラリーが有効になります。

そして、再起動して、IDEを実行。
sudo reboot
(再起動後)
code-oss

以上です!

2019年5月31日金曜日

LINUX上のファイヤーウォール修理

先日、Jetson Nano上でNextCloudをインストールしてみました。
結果、NextCloudは正常に作動しましたが、ファイヤーウォールの設定を色々いじったから、壊れてしまいました。
SSHができなくなり、VNCもアクセスできませんでした。

修理方法はファイヤーウォールをリセットするしかないと思って、以下の方法でリセットしました。

まず、iptablesのリセット:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

次にufwのリセット:
sudo ufw reset
sudo apt remove ufw
sudo apt install ufw
sudo cp -p /usr/share/ufw/before.rules /etc/ufw/
sudo cp -p /usr/share/ufw/before6.rules /etc/ufw/
sudo cp -p /usr/share/ufw/after.rules /etc/ufw/
sudo cp -p /usr/share/ufw/after6.rules /etc/ufw/
sudo ufw enable

最後はサービスの許可:
sudo ufw allow ssh
など。

これで、またSSHができるようになりました!😊🎉🎊


2019年5月30日木曜日

ベーシックESP32-CAMスケッチ

ESP32カメラの続きです。
前回はOTAやmDNSなどを追加しました。
今回はとても基本的なスケッチです。
設定とかなにもありません。
全てはスケッチ内でハードコーディングされています。
https://github.com/vivian-ng/esp32_camera_streaming
スケッチではAI-ThinkerのESP32-CAMモジュールのピンアウトを使用しています。
別のカメラモジュールを使う場合、ピンの番号を変える必要があります。

ちなみに、ベースのスケッチはこれです:
https://github.com/maximemoreillon/esp32_camera_streaming

それにWiFi設定をメインのスケッチに移動、そしてmDNSを追加しただけです。

#define WIFI_SSID "ssid"
#define WIFI_PASSWORD "ssid_password"
WiFi設定はこの2行です。

#define HOSTNAME "esp32cam"
ホスト名はこの行です。
これがあれば、
http://esp32cam.local/
だけでカメラからのビデオが見れます。
ホスト名は任意に変えられます。
例えば、複数のモジュールを使っている場合、
esp32cam1
esp32cam2
などにすることもできます。

で、利点は?

まず、ウェブ上の設定ページをなくしたことによって、このESP32カメラモジュールは単純なネットワークカメラになり、MotionEyeなどで「Network camera」として使用できます。
mDNSを追加することによって、ホスト名で接続できます。
IPアドレスをしらべたりしなくても大丈夫です。
例えば、MotionEyeでカメラを追加と選択し、
Camera Typeを「Network camera」で、
カメラのURLを「http://esp32cam.local/」に入力。

また、PSRAMがあるモジュールの画像解析度についてですが、
1600x1200はできますが、(ベースのスケッチもそれになっています)
それだとESP32の処理能力がボトルネックになり、FPSが落ちます。
試した結果、やはりPSRAMがあっても800x600はベストです。

  if(psramFound()){
    Serial.println("PSRAM found");
    //config.frame_size = FRAMESIZE_UXGA;
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {

解析度を変えるには赤字のところを変えればいいです。
UXGAは1600x1200です。
SVGAは800x600です。
その他に、
QQVGA = 160x120
QQVGA2 = 128x160
QCIF = 176x144
HQVGA = 240x176
QVGA = 320x240
CIF = 400x296
VGA = 640x480
XGA = 1024x768
SXGA = 1280x1024
QXGA = 2048x1536 (メモリ的に無理かもしれません)
があります。

今度はこのスケッチにOTAを追加するかな?

2019年5月25日土曜日

ソフトバンク光BBユニットでOpenVPNサーバー

OpenVPNサーバーを構築しようと、数か月試行錯誤しましたが、ポート転送が中々うまく行かず、成功しませんでした。ネット環境はソフトバンク光BBユニットE-WMTA2.3ルーターにASUSのルーターを接続し、PCなどはASUSルーターへ接続しています。ソフトバンクルーターからOpenVPNポートをASUSルーターへポート転送し、ASUSルーターはそのポートをさらにOpenVPNサーバーへ転送する、という設定をしました。でも、できませんでした。

昨日の深夜、やっとこの記事を見つかり、それに従っていくと。。。
成功!!!

簡単に言えば、ソフトバンクルーターでPPPoEへサインインするのではなく、ASUSルーターを使ってサインインすればうまく行けます。
概略(詳しい内容はこの記事を見てください):
1.ASUSルーターのWi-Fi機能を有効にする。
2.ソフトバンクルーターのWi-Fi機能を無効にする。
3.ソフトバンクルーターの「PPPoEパススルー」機能を有効にする。
4.ASUSルーターでPPPoEサインインの設定を行う。
5.ASUSルーターでOpenVPNサーバーのMACアドレスで固定IPアドレスを設定する。
6.ASUSルーターでポート転送の設定をする。

あとはOpenVPNサーバーをインストール。
私の場合、Orange Pi Liteが手元にありましたから、それを使いました。
OpenVPN簡単インストールスクリプト

次はNextCloudサーバーかな。。。😉

+α:
ESP32を使ってDDNS更新

2019年5月18日土曜日

ESP32の3Dプリンター制御基板:進捗2

色々があって、やっと火事にならないようにヒートベッドが使えるようになりました。

実は、「犯人」は中国のMOSFETです。
Aliexpressで購入したIRLS3034を何度も試しましたが、毎回炎上。
そして、Mouserから同じIRLS3034を購入し、全然問題なく加熱ができました。

左はAliexpressで購入したもの、右はMouserで購入したもの。
見た目も違います。

以前、モーターなども操作確認もしましたので、これからはテストプリントを試し、最終確認を行います。
問題は、時間。。。😟