2020年12月3日木曜日

Arduino(ESP32)にタッチパネル液晶

アマゾンでタッチパネル付きのLCDが格安で販売されていたので

買ってみました。

WayinTop 2.8インチ TFT液晶モジュール 240x320 SPI ILI9341搭載 3.3V/5V タッチパネル タッチペン付属 10KΩ抵抗器付属 ジャンパーワイヤー付属

なんと、ピンコネクタケーブル付きで直ぐに使える

ってことで早速サンプルを色々と動かしてみました。

サクサク動くしとても使いやすいですね


で、同時に購入したLCDの乗っかったESP32

WINGONEER T-Display ESP32 CP2104 WiFi Bluetoothモジュール1.14インチ用LCD開発ボード

タッチパネルは無いけどこれもイイですね。


ただし、重大な問題を発見!!

LCDを変える毎にライブラリをイジらないとダメだって???

それじゃライブラリの共有化ができない(T T)


そこで、なんとか頑張って共有化にチャレンジしてみました。


がっ、まだ上手く行っていません。

取り敢えずLCDを変えた場合でも最小の変更ということで

以下の方法で逃げています。


まずはライブラリフォルダ中のlibraries\TFT_eSPI\User_Setup.h

このファイルを以下のようにコメントアウト編集します。

/*▼

#define ILI9341_DRIVER

*/

/*▼

#define TFT_CS   PIN_D8  // Chip select control pin D8

#define TFT_DC   PIN_D3  // Data Command control pin

#define TFT_RST  PIN_D4  // Reset pin (could connect to NodeMCU RST, see next line)

*/


そして


Arduino\libraries\TFT_eSPI\User_Setup_Select.h

このファイルの以下の行の前に色々と追加して

#include <User_Setup.h>           // Default setup is root library folder

こんな感じにしました。
//▼TFT_eSPI.cppを単体でコンパイルしてしまうのでスケッチ内で#defineしても未定義になってしまう
//#define TTGO_ESP32
//#define ILI9341

#if defined (TTGO_ESP32)
#pragma message "found the TTGO_ESP32 so use Setup25_TTGO_T_Display"
#include <User_Setups/Setup25_TTGO_T_Display.h>    // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT
#pragma message "found the TTGO_ESP32 so use ST7789_DRIVER"
#define ST7789_DRIVER      // Full configuration option, define additional parameters below for this display
#elif defined (ILI9341)
#pragma message "found the ILI9341 so use TFT_ILI9341_TP"
#define ILI9341_DRIVER
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS   15 // Chip select control pin
#define TFT_DC    2 // Data Command control pin
#define TFT_RST   4 // Reset pin (could connect to RST pin)
#define TOUCH_CS  5     // Chip select pin (T_CS) of touch screen
#elif !defined(ILI9341) && !defined(ST7789_DRIVER)
#pragma message "not found ILI9341 or ST7789_DRIVER"
#define TFT_CS   PIN_D8 // Chip select control pin D8
#define TFT_DC   PIN_D3 // Data Command control pin
#define TFT_RST  PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
#else
#endif
//▲

#include <User_Setup.h>           // Default setup is root library folder

これで、頭の行の#define行をLCDに合わせてコメントアウトするだけです。
↓使用するLCDに合わせてコメントを外します。
//#define TTGO_ESP32
//#define ILI9341

本当はスケッチ内の#defineだけで処理できれば嬉しいのですが
スケッチのコンパイルが終わった後に何故かTFT_eSPI.cppを単体でコンパイルしてるようで
その際にスケッチの#defineを読まないので対処できませんでした。



また、日を改めてチャレンジしてみます。

一応ファイルは以下でダウンロードできます。



2020年11月30日月曜日

後悔しないFusion360の使い方を公開するよ

CAD素人ですが最近Fusion360を使い始めましたが
とても楽に編集ができることが分かりました。
「そんなの当たり前だよ」とか「そんな使い方おかしいよ」
といった意見もあるかもしれませんがそれを承知で公開してみます。
公開したことにより叩かれても後悔しません。(多分)

1.スケッチに平面図を書く
1.1.スケッチ面を選ぶ

1.2.スケッチ面に平面図を書いてスケッチ終了する


2.押出しで各面の高さを設定
2.1.押出しを選ぶ

2.2.押出したい面を選んで高さを入力

2.3.各高さ毎に押し出しをする
その際にオブジェクトからを選ぶと相対的な高さで入力できて便利


さて、本題はここからです。
例えば穴を大きくしたりボスを追加したくなったら
3.編集作業
3.1.スケッチの編集を選ぶ

3.2.線を追加したりドラッグで移動(寸法線を追加して数値入力も可)

3.3.スケッチの編集を終了するとちゃんと穴寸法の変更が反映されます。

3.4.フィーチャの編集で押し出し面を追加(削除も可能)

3.5.押出しの追加や削除したい面をクリックすれば押し出し面を後から変更できます。

4.1.側面に穴を開ける。

4.2.穴を開けたいor出っ張りを追加したい面を選んで追加する

4.3.矢印をドラッグor寸法入力で出っ張り追加や穴あけができます。

4.4.再びフィーチャ編集

4.5.位置や大きさを変えられます(今回は貫通してみました)

5.またまたフィーチャ編集
5.1.フィーチャ編集を選んで[操作]を[新ボディ▼]に変更する

5.2.結合を選ぶ

5.3.ターゲットボディとツールボディを選んで[ツールを維持]にチェックを入れる

5.4.ツールボディにフィレットを入れてみる

5.5.まだ穴にフィレットはありません。

5.6.フィーチャをドラッグして順番を入れ替えれば穴にもフィレットが付きます。