2020年5月30日土曜日

XIAOでペントミノ(超小型カラー液晶表示)

テレワークが始まり2ヶ月弱になりました。在宅でのルーティーン(と世間では発音するらしいけど、プログラマ的にはルーチン)も定まってきて、仕事のやり方としてこのままでもよいのではないかと思ってきています。

とりあえず緊急事態宣言は解除されましたが、まだまだリスクがあるので出勤率を抑えるためにテレワークも継続予定です。私はひとまず6月一杯出勤しないことになりました。心配なのは、暑くなってきて毎朝の散歩がきつくなり運動不足になる事と、長時間座りっぱなしのために腰痛が出やすくなっている事です。

10万円の給付金で良い椅子を買おうかと思っています。ただ実際に座って自分に合うか確認しないとわからないので悩ましい。リスクの中で家具店などにできるだけ出かけたくないし。そもそも給付金はいつ振り込まれるのか? 申請してから間もなくひと月。

さて、ペントミノをseeeduino XIAOで解いて、超小型カラー液晶に表示してみました。他にネタはないのか?!  タクトスイッチも繋いでいて、ボードサイズも選べるようにしました。


8x8の真ん中4つが抜けたドーナツ型に詰めた解です。130となっていますが、90度回転で重複があるので正解数は65個です。
肉眼だともっとハッキリくっきり見えるのですが、iPhoneのカメラの限界でしょうか。これでもかみさんのiPhone11を借りて撮ってみたのですが。最後の1枚のみ自分のiPhone6sです。

これは20x3の細長い詰め方です。正解数はたったの2個です。表示が4になっているのはアルゴリズムの都合でボードを裏返したときに同じ詰め方になるケースを除外できておらず2倍の解が求まっているためです。

定番の10x6の解は、正解数の2339個が求まっています。この写真だけ自分のiPhone6sです。暗いしフォーカスも合ってない。

計算途中で止めたり、ステップ実行したり、実行制御機能を追加するつもりなのでもう少し遊べます。さらに秋月でseeeduino XIAO を追加購入したので他にも遊んでみるつもりです。Aliexpressで購入した液晶は、まだ全く届く気配がない(発送すらされない。大丈夫か?)。

2020年5月26日火曜日

XIAOでのネギ振りのスケッチと画像ファイルアップ

昨日アップしたネギ振りのスケッチと画像ファイルをご参考(にする人はいるかな)までにアップします。無保証です。スケッチを見ていただくと分かりますが、とても簡単です。


ライブラリは、Adafruit ImageReader Library (V2.3.5) を使っています。ここに書いたように一部手直し しています。

スケッチを貼るときに < > & " などを書き換えなくてはいけなくて面倒ですね。書き換えずに貼る方法はあるのかな? なんか書き換えるとミスとかありそうで心配なので。


//                                                   2020.05.26 naka
// Reference : "Arafruit ImageReader Library breakoutST7735-160x80"
//
#include <Adafruit_GFX.h>         // Core graphics library
#include <Adafruit_ST7735.h>      // Hardware-specific library
#include <SdFat.h>                // SD card & FAT filesystem library
#include <Adafruit_SPIFlash.h>    // SPI / QSPI flash library
#include <Adafruit_ImageReader.h> // Image-reading functions

#define SD_CS    7 // SD card chip select
#define TFT_CS   4 // TFT select pin
#define TFT_DC   6 // TFT data/command pin
#define TFT_RST  5 // Or set to -1 and connect TFT RST to Arduino reset pin

SdFat                SD;         // SD card filesystem
Adafruit_ImageReader reader(SD); // Image-reader object, pass in SD filesys

Adafruit_ST7735      tft    = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
#define WHITE    0xFFFFFF
#define IMG_NUM  3
Adafruit_Image       img[IMG_NUM];     // An image loaded into RAM
char                *img_file[IMG_NUM] = {"negi0.bmp","negi1.bmp","negi2.bmp"};
int                  img_count;
         
void setup(void) {
  ImageReturnCode stat;        // Status from image-reading functions
  tft.initR(INITR_MINI160x80); // Initialize screen
  tft.setRotation(3);

  // SD card is pretty straightforward, a single call...
  if(!SD.begin(SD_CS, SD_SCK_MHZ(10))) { // Breakouts require 10 MHz limit due to longer wires
    Serial.println(F("SD begin() failed"));
    for(;;); // Fatal error, do not continue
  }
  tft.fillScreen(WHITE);     // Clear screen
  stat = reader.drawBMP("miku-logoL.bmp", tft, 0, 10);
  delay(2000);

  for (int i=0;i<IMG_NUM;i++) {
    stat = reader.loadBMP(img_file[i], img[i]);
  }
  tft.fillScreen(WHITE);     // Clear screen
  stat = reader.drawBMP("miku-logo.bmp", tft, 0, 4);
  stat = reader.drawBMP("miku.bmp", tft, 66, 0);
  img_count = 0;
}

void loop() {
  img[img_count].draw(tft,66,0);
  img_count++;
  img_count &= 0x3;
  delay(100);
}

下記は使用している画像ファイル群(.bmp)をzipで固めて、Windowsのcertutilでエンコードしたデータです。バイナリデータをblogに置く方法が分からず、このようにしました。

-----BEGIN CERTIFICATE-----
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
jgkj3is+81XJCkrbtBvbRzN6pDL1XoZ18OiH6PbynxUn3+U09/DER3Qk28Ov10dT
ytVByni47SBVbMj4Ckqz+yWzV01GIlwjlWmP1Ob8mHVZXLyPp4GbeS+dvzpZumi4
c43ZVFt48Ma+U0vJ+LeP59E/Tae/0+KriaDUvUfR/oz07qw89rjbOlae8Xxl9nOM
cwxOAfew7m7ozICjjK9yw0z9xfDdPoHv6Sn4wkl2vGmAq8TJOYGrwBeohy4hZDwx
SBNFabfcrze0YTt7XUNlqQ9AwN+Y/ZyM7/avF1/1KZKVVY+klqfeB54XTBShb1Lv
yV+XJH3brGuQw5/eXGfMjbo4SrM2SB0dZIgOMSQEGaFj735ebx3ysnCU21Kd+UJZ
zlyPXU0Lfg+DvvgS9ditxYsGWyLhjc186sS+2zprPpJIMSChuOdF3VeC7/DZ3RWH
vlWS+khN/isMqyH3LDC0+CXxhV23vqmPJGm9aIJvHGKnjULRyBI5ReAj0VxtfJAm
JlgRhQkEXWKIKorSr39E5VDhBUbP7j22jarPfsqPQ7/SltkGUgin+QoF7Da41JU4
bDSqrsIwQDl8pOzobMFLA8HnWJZDNu9rb/hb5oEbDZoTpJmlwVJH/J1w86rYYLDV
+rhgNYTW4Nq2P642dTOo95ytomB+afrDbtuIRHg9DkwLOGp84dZS9vZga7Sf2Ae3
pfPEkTtPVf7CJ7KY+BNwPHtS93meLjtyv3II8QX/Oy2+o/37j26lTpW8J0DQi6ya
xXQN7Vt/D/RJwFEbhXnXS+OrFdF4Ab4/6mpYUpMdwPezN0B/wSWBiYYeooE4ZN19
6o0PGbbN1G8lsnmKbJpp2PKAYd0t+pUUODJtYhCmhsJDVImUcTmlyvlYj9UKPFuR
/r2qrNn4eF4297f6g69YDi0wy3J4geVLyqEFpkOvWw4usKS9pxvIsAkYV/vPVP/u
VPG7PgEiS8nJeDycG9tJYHtaYzMPXK8ZTpU1SVPPr70fXDkEWqroYMBaHz9jNIpS
b52lVZ9CQy3xrvqyN06kzHQ5+uEjzeJQ07Q5rlPFb/W3ov7Koydux2DF0bubi97h
RDtm93AsQZQhBnzLjwK+qZfAt6/r85rS930iJ2DSECwQRG0+lpa+KnxBH2ODQHkV
YTN0g9UuksIM5CnFc/krnvV7BcZnH2cbdjoT79aDmq++ZgzMXXyQMoHSrbpFbR3G
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
vYS4ioMfvBCBCB6W5nCJ2HMbQAz2+cr19590k+RleH3yGjpyU3OMuezQbWplAXzU
dzDNO11t+1FaD7g6dzuMvZjqNKly6zJms6wD04s+6QpFDFA5sgisxPokmrBAcfqd
SfTf372hKW8eoMSwQn+ap22PrXW/G29mr6sz1c0z6B+rj88faInx+yfuBOgrzggA
nogLQpOQTQosaewXOMHDsV6BFXAKn4Celqd5Tv6H46ZsgcVM/j/XX7+8fASJe3wT
USvHGEqO3qpXF/umKwWXx2b0yoKKzO+5OddV9m854RxYTcMnBhb4vdidcbgQ4ub6
PFw8bdoLyQtoVBbMHyH4Tmb8JzP/4sR6DL4AdZRt1LmRAREj8ytYdPV/0SawtpLD
s5T9exlGQ7vG3M5JGQXxuEYZWj9+dmfR0Ych1Pw6mwV7wWDX9pJjj7ntfR68k2G3
c4S8ongcIxAMe+mxspy5g6fjv8Yb+d+1ibzjZOZjBUl3FB37btXR71ZMSHnqfcCU
K47eV3ns/hMpt1RmPC3wduGrWHB62k2u6R09uzdr94zi1HvKUu/9gpSn3lt57O7C
tPsLDlw72rXm67qP/3Ub+EivR+d2DLlcw6i2rvGAuMdQXPhqc4143BpBYKWvz7Dh
iLtEM2abY8zpIte9UOxjTueo1z3CsPav6zb+P9ko6v8CUEsDBBQAAAAIADVquVB/
Ka4BbyoAAPhYAAAPAAAAYml0bWFwL21pa3UuYm1w7ZwHVFtX1qjnrfXWW6+sf635
ZybFBUyThESvqiCBQB1ENxiMqaaY3jtGqCKaEKJ3dQlwjx3HdhzHccUVO+5JHMc1
7thgqt65kiFOHGc8M7Hz/llvr6OLdHUv55zv7r3P3veeI9+AF5F/MooneNmCVyx4
BYHXf/vTx8b9B8D3f/k/pteiGP6flIWFhaX38/PzizvB2/lXvzJ9Ozc39/r+35C7
t2+eOXNmdm5+sbLF8lPtULEr+Bc68A5licfSRwDg1f2HDx8aGR65c/sOeD8HfTn3
i1N+Q374/nsaA5++IXTH9s2z07PQrp+zAf/prf/Zu5Gf2vP6JX+1o8eOH4+OjQkJ
Dunu6QaMwJ5WWSsMDjc3N/fwcG+VyUxnv73ezM7MZqaGZW1wjo62zMuMuXzh69dq
/0PZgH6AXi4ZyxvZfP/9dTTac+XKlXA4/MMPP2htlY4dH4PBbGxsYCgUysbGevmK
5Q0N9f9Q3S8mX6yPCa6uJNWLPfNzcFFhhN07N0HNWDKyhZ/ev3dZYvHNlW9OnDj5
+gFLNpKVsWH58uUolB0QwIPBoOfn5VtZWYE9ti8FaWFlcejgQcPPzOK35MH9B2Es
HKfKR8jFCfn4yjICm+n8yZZRg/GavLxQC4Ytv0dP/ym5evmyoK7Am+WkVA29/q3J
u1y6dNHK2gpmA0MiIThAUVxcnAkEHAppCz6+JINEmpmZJScm/f0qF7VBoxqi061E
Qm8hlyCsJdTxcRWVZCoNuWfPJ1DVs3PQYQuGOtHv2+O3lE06bXCgZ8oGh/A1Nl9+
uef1A0xKMzg0tGzZMhMYIAgEgkwmBwcFIRCwJTZAYDCYLcr22rVrb1P11+fHyWTH
klKSSOgh5OJFtV4ivgenFl1c4hUZ4nXr++sGk1q/rfP6Z8XkVF4tUI0d0qY1EQ4b
OdhGMXF1GHzL6M+UF6j0TwaVkw0MaokNYECn05KTkoCbecWmIAF+WaPV/WYzoKqf
PZtaFxeUnecgFAKNwQprccYCvWkUE9KT4XW1pYvNeJdgDL/GxtDd3rA2yo3P86qt
dW8U4ZOS4KXFuT87x8gGnDkzPU2hUi0sLIHVmNhY21hHR0eLG+utra1e1Rsg4LCS
4uLfbAYEu6ambO06VGOTr4iHX2Rj3HJw9UJMYx1pTYT7zRvfQifNG3a8DzbzC1AB
n/fv3RUZgRCLifVCAp+DEfPdNlZ7UKju16/fgFqzOBSbnM0PN264ubrBYHDgU0xs
bGA21RurVAo1HA6zs7dfAgMNWDAbgO3NzYDAbN004udj2diE7WwjibgmKtgl7RFx
sQ0ibHQ0YkQ/aGLzyb73wGZuAQpBnz+b2JAewBPhZG3+dQKciO8u4DkL+B5r4x1q
OIXG1pgG85dsjh8fA/1GQM72pU0BUxocGNz5yXYwnjs6OgBmRl+McnRytIHDqXTG
88nJNzTDcOfmDTbDobrSRTFIGeqj1PGwglocvxZsl7QHy+dic/NdxMLCxZPeA5sZ
ozWNjCiTUj17B5hNjSQBz5PHc5Y045sbiEIRfnW0rUY3uHSaydl89ulua2trIwBI
bwAfpC1iz549+/fvh8MRrq6uAJqJjb2DPQyOwBLw3964/qam8KoKY6Ks2mVEvYrd
20UW8dEAzKtswJvaWkzFRnzKesrks6fvmMwSG/Bncmo2JSWCLyL19tNEAjyf6yFr
8+7tprRJ/cFHMEwEsG018p8N5ps3bbJYZYGE9AZpbwdsCCpjY2MHv/wSsHFzd19y
x+AYazjc3cP98rUrv9qOc2fOB9Bd+LUevZ0+ekXwQA+l7tfZYDdySOticFcvnXsP
aExZG4j7j+5LSnDs7wlplRAFHHSTGDc0QBsaYEibffkcfJ2QUFXlQSJ9vHlE8/JE
g0ExMGhlbmaPRNgjbR3s7Jwc7N1cnG/durVv3z44Au7u7g6AIWwRpgKCIHdPj0uX
Ly3W+7MMslUqiI2BtUrwajlFKw9UywOa671AMwQQEpyAg4e2Rjw8jn98DPbYof3g
LI/0d8zmZes6pMCLuugVIZJ6Ep/j0dXmO9RH6+th1QkIpkY1iL1LSz18ichvv7ls
Oru/u8vSbIUDEuHwko0d4PHkydNt27eCjAFkUkCN4LYIU7GysXYDenPl8i/ZGKWw
ILq4yL6/m6jX0LQKplbBljWThLVoSF0AGA6eD9hw0SIuRsDxT1jnfmAfFAQmxrxz
NkYpL4lpk3lrlbRGMb5BhB7qpnXK/GQt/rwa7MvLxsWKhaSkOKeS4gzTKXV1dWYr
zZb8DRKF8iL6Tr54MaBQm1lau7h72to5mMDAEPBVFhYYHPbejz9C1QJ3taivQKan
puNi/CsrXBQDZL2GrlEyNfLAjlaykIs2DVKLbDAiLprPIacm4k8dhfTGOLS+QzZG
ufXDrfR0X6WaCVS6XohrbyH0ddGa6kmNYhK/xtQ0YPoYQS1exCNHhNh/f/07CGdF
BUgGEGCoMgY4wO+Er44E+2u5XCsYArBB2NvDkXCo2NqCI6kUv8nnzwwvOzX/Ynrq
xYsp8On+3XtBAZ6cGnflgL9ezdAqmcCsBnv8F9lgBYsF6A2f45OZSuqWiu7/eOcd
kjEsBRZXLl2Ij8VotMDQaXUCdHebL7hswAWLBd58DhhIcSY2ILVpEJLioixGhuXg
rJKyohUrloHAxRpk3bZwK2vr1KwNYH9iUqylxUduzoDISmv4ChukFRykm2ZmYcFB
BlMiZIyCHz9+0NvTtTC/8OPdOyy6m0CIBdakV5nYsJSDtDq+0QtzMUIuVsQD8Q2k
N6AN+dmU+KjAC+fH3zkbSC+vXrkUv85Dqw1UDdAa63ADPf7SJsjNCHkmjcEusakX
EDPX21eW5EBsSvLMVvzNG+9I83Ojkt1cnGy5Ah7YHxxCj4sNzEyPiFlNpzBc7V3N
4Sgrq1VmZQV5czPTL7XVaFClJQXdvd3zcwtrIsiNjYQRdaBOCbHRyFlqBb1ehDeG
fBgRHy8WehnZeAJO2Wlkuh8GXM9B/Xtgc+nC+Yw0H7WaBdg01+PkfVRJPWgXcHzY
V9iAqwg0CV+S75aSDEW4ldUVqdmFbQObOxQ7k7PzmIGMzOzENpl47foE9WeHNZ+f
qG3v9AvzdSa6mVmama34iETCZKQljp8+2d/X8cmureA/7N69y9XFqrujOSGaIWki
jGqB3tBNeqNRMkACBRoAdAWMWU0gzAIXB7DhEePXYClEx+/eEA78nmzmFxZmB7o7
cnL8FAq6coDWJsUP9FJFfBCE4l4Fwzeau5iPKStyWZ8cBk6ul8ok6p2cjt7ErBzg
WTak4Drb6GI+UcD3X5/uk5VHC4rxaRjavOmrb9mxGUQ6zd3Ha8sXeyPj1gllbQ0d
nYcPHbx29Ur8Oq/oGDiLbtUu9R3R0oFNaaBxKkCnZkqbiPwaYE0eHTLf1mYfQa2n
gOfO4/pQfeCrQ/Hfvg82oBTkZmVnkocUVMCmq80bsBHycHxIaXCvsykvcd2wIers
mRMZOSEpGa5SGbldGuBHWhmz2rpN6tfZSu3uDM4rdI5LdnZE/W1dMrtRrszjSyNT
sy0cPOgxyZa29jEFnKgibmR0tFqprirOLCp0qxNhWhqxejXERqtggaJXM8F/A+Oj
iO/R1+0vayELOBgBD5+X7UGjmcXGeV//7o0h9u/JxpCaGBcWYtvf7w+8oWqIPtRH
fxObBiG+ugzj5mIVG4sdUAbrNPSyjYTwaGeknYWltRnS3hzlYO7oYcUKQVvbmFFZ
jn09bBbDzsLGcpnZSgu45TLzjy3gNh8sX/bxqhWBwZFa1cgmnSIxDjXQT25vxWvV
/joV1cgG0psOGQVk44BNb5dfWwsZtEfAJSbH2aemIdcnUh/df/Be2FRVFJDIH7U0
+Y6omToFS95PF7zCxhiyA9eMqxfgayq8Vwfb4jyW+ZHtUjN8vEiWFlZmFnC4BRxh
DUcgEHAwnBMIzr5++GXLbdBuTmwW2srq45UWlqtg1jBbONLR3snNFaSmCFv43/72
QUJ83Knjx9gMTFc3UacK0ClZWjUV8jcKFsSmjQK8cJ3Qc7CP2gbpDWDjlZaOKi0h
pieGT05MvBc2XV386FirwhzvLXq2TsGQ/1xvwNAg5LvXCTDVZV7Rq21apYEp611h
liutLT9E2iHgKAekk6s1EgWGbDrFz9PNxZvg6I5BwWyQ9igHK4tlNnCLldYwMxjM
1sHewdWNSPLxxOJQDo4gkVi2/MOamurIKCaH4z6iZumVLJ2K9iobARcnbfTWKgJb
Jb5CLgj/cGVl7gVFhJL81PeRh0NsurtFFdXY9UmOw6qgYRVrqI/xChswWnmDUINT
TQikWbU0USoqvYhYlIu9gw1shbu7sy+FYu/iCkfZO7k44dAuLk52OJyzh7uti4Md
zhPtgFplY2Nubm0D8nVHF2cXd1d/fzKB4G3vBMIfhLW1pbubK5XqnZ/nBuodVgI8
TIiQ0abaZRQeBwRb/jolW9bia2wPlssnZudheTVvuk32u4t8oJ0v9ubysJ1S0og6
QNHPAMrMWxzAQaBTJ8BnZ7o7IT8IZDqgbD92dkY5Ojog4DZu7q4Eb28nV1c0Bksm
AWYuFYWZpfmpEWx/P28PfyLaxc7CFr4KJFMgcPb09MBi0P7+fl7eXk5OjpAFIuAw
ODw6avWaNY7yIbpRdSA2UFEHtMv8eFxXkNZB6VWLLxRQcNE8ISExzaWvp/19sfl8
3yfFFQSVOqRdSgShsXyQUS/y5nEwJjY8sOXhQ9l2oeFullYrkY7WTh52Lm6uLm5u
OC9IiCSSry/ZC+delJWo6ZWCouxuahVXlecls/wwMOuVgA1ILTBoTzwOS/HzJ+Dx
KBQS7LGysiaT/UY3bSESrXt7yKMa1kswQHXULFmLT32dp2KQoZWzpc1EIxtPrgAT
FIfcYnwe817k3NnThXmU4ZHgYW3gQK9fb7d/c+NLHQalTuidnuKSkYFOTvFxsIej
HG3sHRHObs4oeyDO/v7UgAAGIBQayOhrFQ21N/ZI+L0S3oCsTt3TUlmYZmO1HKQT
NnC4q4sz0ZtAo1PQGDQMuCMkcuXKlZ1dnffvPCZgHBvFXsb4xmRTTK0SRINerS1E
lZwF0qumei8B5G88OFz3oAjE0bEj74vNvTv3S/KC1BrWiDqkr8unpZkgbfbh1UB3
l0D6XVvlFRYA521kubpYEtDOnMriyHCmq5O9mxuC6GVH8HQiexMJWEcxr1DRKelq
5os2FtZzipt4pf2tQmF1oS3M3NLKGoBEYzzpVAqLQXV2dobD4TAYDEC6d/cOcHkh
gfSSAnedkga8jpENSz3ElDRhe7vIOhVLq2Q11BHEApyQ515VhV0XR7p99x0nmq/I
gqG2MmWoP3BYGT7Y7y8UeIKGCGoxRjaYmkri2mh7JgXlCLdIS4jWDrRre1urS3LJ
ZGRhCcnPC+ZiBysrSNQMiAbaGgTV+dzSDImwvF8mVHY2iTYW2NlZWVha2trZAd2i
Uf18fUhA3YCzAUojrmsw1Z+7YUNCDEqnogyrAgAbrTxAJWe2tuAUg1RoYAdshIRm
MR6wKSjEZWfGv98Hvp1SgaSeOKJlDA35geFaWIsGGrOYRhH4PFJctCfaCSkT1yo6
Gwfb6uUd0tgYQsVGbGGxlw8R3sCtGh7saG+sbWvY+OkWzWfbdAMyoUxczSnLdHNG
AjbAphwcHYFZOTk5mR7PuLi6XrryMu5v4NeuCbfQqfxNbDTyAHk/ravdC2RVOhUI
R2kgtGppJIj4nikpjk2N1e+TDEj7doyUFmP1+gCFnFIvQkOJ5mI4LODg6/g+4YG2
kUzaSH//kKy+v7WumV8dGe5eudGdy/fKzMSzKG6dTRx9v+zi+bFDX+zsaxVKRRWC
yhxeeRYB57HK0tLaxgYBCdzkaSwtLDIyfrqlqVcr/UgfgZB8WEPXyhmqIdZgL2Wo
zx+M5MCmBrr9msT41mYSn49fE+OwaVj5ftlcvnQhN9d/UBkkV9KaGoCuYJYSBpB+
i7ikxHWuUcG4ovREWV21pqe5tjw/LNSlosaTw/FoEGPS01yDGR7yjuat2sHuZp6E
X8avzOGWZzfUFrPoZDPzVYANHGZja4uAQ8M2fNUqs+3bty7VfvDAF1hPi75O1oiO
AUgM9FGB3qgH6VoVQ69hdbeTWhpxTWJSTQ1h9WrPSxfe+Y30V2R+wTA5+aK8YnVP
P0MB2tLlJ+Cgl9gIjDcH6nje3Cp8RopjEMMhLJBcUZS1JgrP45M62gI7pKQGsU8w
EymqLmitqxFU5nHLNnDLN/AgNkWhwQwzc3Mb4HphIAC0hSNgFhbm/mSfiac/PUe5
duUKHmcjk/qP6pldHd6dXb6KIZpWTtcqGCDp7G7zaWvxrq/zLilBp6xnTv76Q653
JKY7t329ZU2t3mota7CfAt0pMUZ9RpsC+ZS3gEMQ87GtEmx6Em7Z3/5clJWan5WQ
FMXiVzI3acP7uylrI5FlOSmt4o1iThGwJn55Fr8CsCkMZtPNVkFsLC3NgbrAbKw/
/PBvIhH/1Qbcu3Ob7OUk5uOA3rS3erW3+qjlTJ0cRDYMnZIBnHKXzAeEo+mZKAE/
Z6nB74eN0e0f2L+1vMxJq2Oo5DSxAHI5wpdg8AAM8DoiLrZRRIwKc16zOqw0P72t
npsQzUxe59vXCQKjkPxcj+Ls9SCmGZSJ5G11fRJ+XVVBfW1RSAB5lbkZDA7UZdVf
P/zrshUfAZdz7NjPApSnT54y/Lw4VR4jOmarxKujlQzd+hui6eRMsG1pwnRIiQI+
Lnatxed7Rgz/yBSw34nNj3fvlOT7KhX+wMqb6wES6JnHz59IYwAbFgXRUFff1ylp
EW3klGYlx3kpVME6PUjBiFkpkepuaXdLg0yt2Tg4EFeaL+AUh7D9zFausIZZg2T8
g48++Hj5R2Rf3+fQTfWf+vdsYiKQQq4sdR/VsVqa8O1SP0U/DQzgYMwa6veXSQgy
CZFXg41fi75z0/Rk/r0N4sarANUmEee3SYlQDtzqC/JL6A42D1fHI4iMRSzAN4tJ
dF9raXPz7Vs3s9LiBzslCTH+DQ30/j62uM4vMyl4pL+jT6Gmivk+DVx2eXFnSz2L
Sl5pvsrO3uGDDz/4z//88/LlH5eXl/2iATMzM1HBAaWFTiCIaAWRp8QHWJZqiKFX
BvR2kfo6faRNuNJCj8Kstab2vkc2hkUt3bldz632HVazezsZYqF3vYggFnmLhUSx
kARKY71XS6Mfzceyv68bHKxRaEtyCkS1nLgookwa3FjPzE4Oaa/nxK5dLZbWS9qb
ezpaJAIehUwLi0kVdmnD4tOd7B3tUfZbtmx+vfrktauL8u31anp7q29zg5dUgtNC
QSCjo9VL3ktrqEMnrXNUD/S9PPqd36F4XX74/nppPmtYGzrYR29qIIIcp6HOp15M
qhf7NNSRmuqJ0kZ/KslSMTQADp5+/qI4r4TH5eZsWF1c6FpbQ1wX6V+ak+IINxdW
5o/0tSp7pMGhIb19KoFsVLrt1OaTd1vUe3z8A7/95pvXqy7ISC3ItRvWMPq7aHVC
TEszBkQ2wNn0dpIGu/1FfI/YKPTF8YvvHcmrwq/O7Gql6VTU7nZvwKYesBGRoG0d
qb7Bu1HiR6VajujUpoPPnj0fwA4OYOLSU+3EDeQNqaQAplv0av+oEIq6u6VFzA2O
XHPy23vdu04yU4TZYmXHp2dLuZJfrXdjSUF+DnJEyxzqZQi47p3t3sPqQOUATTHg
1ykjVld4FWyInZ/9YycV7946WlNO3awNUfbTQDQKqIhFRKHQV1DnKxTjxS14Esty
3+e7wZGbduweGt79yYETRDIxNhrfKosvqwrEYs0F3PyENez8lFh+dXlUQsq1x3Nj
txY+v/x45PC17k37dTs/+dV6a0oLivJQm/Ss/m4an+s+0Oc/omHLByhqOaWl0Ss9
Ga0wGvIfKvdu3KgpC9MrI4cV7HYpGTibejG+rh4rbsBxGogciZ9/OELa3VjOra2W
9u+9MnnkxnROVW1oED0yjBKx2jsilDHY3i7ilLEp+NT4aGcPzMGvvzv3wHDhkeGL
r2+V8cX3njz+VV+RvyGtsth5k47V10kFOWV/Dxnk5PJBykCPr5BHiI3CXzh//n2z
+BVprk/v7mBsHo7s7aTVi4lN9ZSajaTCIo/cfHxIhJsj2tzWFdG3c/+Xdwz6Cw+P
3zc0dCsSE9fExUbArczXRAQNdbR0SurKC9K8MU7u7q7J2YWX7k0N7x3jNLV9fenS
r9Y4Pf0iLWEtn4Mf1TG72ykioedQH0WvYCqGqO0y77IidHFuzDudGfAWYgqpjh7Z
UVlJGt0W19pFLyn2Sor1IRKcPJwtXZ2sUchVCJSZk7tTSmXZ/m+f77gxI9v6laC5
9cXzZ+Onx5QDfbkZSWw/cl5GGkjB166JwGPR4ZFRBApTPrz56dSUsYq5c+MnTbMN
lmRuZiY9IbKOjwO+WNYMxgAciP10SqZykCppJiQlOg0Ntr7e2jDn9wIFGsOXgs0X
088LykLiUh2oLCtnJyTcBpoMgYCjEDCQDVmj7GAYTxcK2SGvoEyq+jSnsnb//s81
So2yRy1rbq2trmH40lycPN38fDBE8sqVy6lU/9T09WrjBO7r31yuLMsKDfa/9cP3
r9b+5OGzdav9ZVKCRkEHmWtroxeIbPQq4JfJIhEmIc7rypVfLmkAstzuvYGZnZs7
f/5cQ70oOWWtsyfMGrYMJM8whCPc1h5hi7JF2hnnPELT+uxtLbAuH/vgzdHuqPFz
Z9atXivYUCMrbdIK5Vslw2c0R2ozqvq27tl28pvatsHYzOKmHoUD2j23KD0rLSiY
7aSU9xqMAdxSA57efxa/htbd7quUU8V16DYJycgGZHa+5SVunIpsA/Tgfu7dT4B8
XaB5nwsL27duxWA8lq38YKXlBzCkJcIWBhU7S1uUDdLWOBMUibCztXFAwRE2lnhP
Fzv7D6ytV1bwuQWppZOf/Tj3xbPJPQ+ffXbfcODZQIl0aPvnZycMFycMY7dntIe/
LRJ3+IVi4mLdwoNcpQ1cqNb5n7p694fbCbFeA/2MgQGKWIjuavPVKQJ1KqasHZeY
aL9rBzT5e/6PcTjzc3PPJ5+Hh0cs//hj0HE43BoBhyHgQGwQtnCkLcIehXSws3NE
IezhVvYIC4ybLcbNEmW7Mn5Dxp4LPxRsbDitPATwPNhx++GO29P7nvQWSjtGPx17
YDh2c3bs1tz+m4aTdw3rc9MKizxjIu1YNIe2piZT1SZD/vbaN+nrnTUaameHn0jg
Mdjjp1cGyoeotQLXlPXERz8+/iOoLMmF8+fs7VE2VtYIGPzVAkcgIDZIWwcUytHO
1hGxyocADwlBU6i4Ch5n7Pr98QlDVqV0e/3o1N4HEJtP7szsmxgokzaqtpx6bDh4
Y/aLb6b3XJw8+N2CrG9LRgq2tNhv7VrHNavdd26HMmrTVOVTJ08VZmFGhtmSZi8Q
VOlVwKACe3v8MjPs2tuq3kV/F16uM3plbt0bpaOjc9UqG0tLa/hrbGxtbe2Mk0Ht
YTZIi2WpyYSYteiAkKDjl384cXPu9GNDtWRIyRmY/OwhAAPKi31P5RXtDQMj4KsD
Fyb3n3g0duTB7lMPDh150iEurKjCxCW45+VgY2K9Ll98OaTv/nRXWT5udJjd3Ihv
k3iPqAO1clZ7q3/8OtexsQNvajMWDzo2tzD3D5Z508o08GZ6YX4KjJELv7UicGZ6
TiEfdXP3WrYcesz2C9VBQLpjjYJb2dkg3B1XVZcTs1Lp8t4d4xdnvjrz6Ou7Boli
tKWgeQqwgfTm7vS+ib7izoYe7YkfDcfPTBw8N3H+5MT5ExOnvp7ft+ukt7szlQwL
oDgw6Biit09uTk5HR0d3h4RX5a1T0+pFwNl4Q89Wh2hcLqG0cM383G/kCSY2s4Z/
qMwDKoDHC8PclGH2mWF2CpqY/0bdeTI5JVGOUILWfrTM2toa9gs2SFskNEMYvopF
dWVSHYR8Yn8b58CeS+Pnpg+PPRy/NqvYeZCbWTuz58GzXXeefXoP+OJRoV7SO3zy
nuHM2JMvLzw/PTZx7asHZ8enjh65v8afkRjn6eUOc7Z3MLew+PN//jk0NLywKK6r
g6UapNTxPQd7ySMaJsgZ1ic5bB1V/R19X4DWYhhMZf4XznreaDSg39AWUpWf3s8Y
5qeN8/GnofcLSys15l+B9MPdH8+ePiPftjtr284CWd+yZdbLV6z6mVlBkzxRcDgs
LNItNYUUGWbX0kJv4dQouj8bH58+curp2OXZTw5eXBcQuad5k6qyf7C4o6dIlhme
AdiMPzCcPf7ky6+fnR57cuj4g/Mnnh/+/DsGASPiEzaWE1zsVpmbmX3w4YfWNvAA
toNGwxrs8a8XYtUKul7NaG72XJ+Iu3fz9kv9+DXxI7/UnPlZAOLhvds7P9+n3rH9
2PjpO3fuTjyZmJufff0koDETc9NP5qafzk5Pz87OzsyAjeFlHDM/Bz5Mv/ju2lXd
3j3VKl2edrRi507RyBZASKfXwxEoCwtLExWwhdnALK1XpqfjJS2siGCnpDh0YwNb
0SLdpj1+enz63OHHJ85PHbr2KJdTl8NpqGhqkw5t6dLuGd53+sDVh6fuzB0+8/jg
icfnTk6Mjz89c35Ku+cUDocUcfFNYmJigtOqFcv++uFf/+M//ue6tY76YXZPJ1nS
4K1Xs1UKZnaeQ319gbHNb7QpF0fj1yDwmbt06cLXF86dOnt00xZ1o1RQKSzfKKkR
9jS0qzuG9wx/dfbwuavnv7n9za2n9+5PPn84s/B4zvB8fm5yempmBmyeP3rw4N69
uydPn961Y3ufXl02quLs31926Gj+6C6eauTEifFnxtk+Q3IFEmn78UcfmZuD6wpe
Fg5O8Pb2UMUAOzzIKiPTTSgitIrTvthz6fDV2cMXp8ZvLpy6N3/useHsI8P5J4Zz
Tw2nHhmOPzQcvTt/5Pbc0VuzY9dnzlybunhj4cTt2YEvzgUGurY2+UIzl/neaDeL
v/z1P/7yl/9RU03S6oKbGnB9nf56bVBHh/+6OOfxcWidqHHh8G+MJNBEbsNCjqg6
qCYju7+Cu0WU0peHzfTH5FP9NgaRS6k+ZUx6bYAfJ9CvlMUoZoaWruXKmmU6hXrX
J4ePHz188MBXB784fOjLfXv2njwxdvn6d5tOniz7dG+eflSx99CpizenJ2dempvR
YR87fqSmpjo0NDQ9bcO2bVvVKmV2Bm7LSMSaaPOcHI+mer+SIqecKv75ScPw0Sst
+v0Hv3ty+v7C8Tszx29PH7314uit6cO35w7dnjvx48KZB4Z6xRZKWHxFY/v5h/MD
n12IisL1dvo2N+F7eqmhIQ7/63//dwuLv/T00AblTBARq+QUtYq5caNHYf6aRYX5
rZAPGocXHj15ktjGJ3eX0QcLGKpcn4EE2mBq4FBGlLw8pD09qCVxdXtKeFsMrTnG
tzGCUEZNqEpNaazs2Lvz+JULV7//5vu7Nx5PPL115+ap8dM7P9/bplQpd+64fvMO
qHjBeC8d8kJGPzQLLXOfW7wgkAATLMyP7OlhJSTZZGeQWiVBVeUemTkFo/tP0EOj
knKronKrD994dvrenBEMxObIrenLE4bhz4/HFQuCE7J1uw7lVgn4vSPdO0+nbcAD
nwulTuqA3Gw0wg7hQ7bTatj9veSudtKoJkA+SE9KdN65fXSxDX/3ftb+k6foggxa
d6ZvTwKpN5bUu86nL86nP47SmxjclxapzA4byAjqS/NpinQrpdnlEoniiJytfdrL
353+4buTl89v37dv+64d2z7ZcerUiatXrz568kqk+duhj/HbbZs3FRXjS0oxqes9
O9so3Bp0bAw7ODSiXw/dAMzaKJToPxt/bDCxOXJr6vTDhUPjP/gw/YPWpaaVQhnC
tq++zOG1C/pGKiq89UpaTwdJr2YKRERbD8/UdOyojt3bSRrqpYyqA2USUmoye+LJ
5M9a8Fvt23v49HpBTUEXr6CjurCzorCrrKC3vLS/tFBeHtOX61lO96xi4gXB7mU0
bDWLKVvHaIsJl+S27dwJrGj/2MlL33/76NEjk0KYIsK3vB1tGt4mnk7kZ4eVlLrG
RNt3tlJFIsKata6ssOA8bsWBM+fW5JTqj1wEFmRic+Lu7Ll7Cylp632pzlsOHo1J
L0yv5jFiU0YOXSkT1Il43qoh//4uP52KIWsn29ovb6z3H9UG9PX4aOWMUXVQQY5D
b1fj27QNiwWbmbmFyanZZ1Mz09Mzc9MvQJmfngTD89Sjx6dPf5XdXY7eGBTYmcDu
Xh/QkcZsTwhvWi8eloxfHHsxBdGf/9fyVxMeSUNtfCIyMsa2VRIga6GlpTvklJUI
B/vZGRtkm3efemgAdgSxuf3iwiND+8Cm0DBk3FramesPx28/1+8/vvXYVfmn5+ls
UkkBUjHgpxykaRT0/h4qmwFT9AdojNO+9UpWXxc1JZFw4/rbzx0GF3pu7mVYAhzE
LBS+LFz89pJM1ZjUkRHQkUAbSA7pTg5sTw6V5ZX18fefPDz30+8TvFyr+i/m93v3
fEalucQl2VdVEPt6AhPX2qNxXrvP37w+b7g6bTh+b/4IpDRTx+9OH/puihbsV1zo
kBQXc/bWzKdnvpdq93A6R+ILhamp6K2jQYpBCmCjU9K7WilFuS56JRuapD/E0qnZ
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
HUwxQBSsJyUwkUqExNRkO2v4pz6eaATsCwwGYW2FhkAtsHa2JDLZ2tZInCdPjOUW
kfr6/RvlzuCW1N3FrBCTBVycgVMAXgqIAT7IgCDsTvPtULQZxh5pg7W1wWIJTjo5
UyjG4Zy+NpWdQVON+KkGvTvb3NsU1OpKV2DdnxIROZFjk5SEi+e4oNEQhLU50gqC
wWKQKFAYKtXDy4tpHM6nvyzkZfj2D7BG+v3bW1xqq0nyahdBuaNu0vl4XolToBdE
UOZlZ2NKwGG4JTkhgZ62GCQWCyWTkUQHazeys3E4wXjiFXOUHd6q3qCuDppI6CAV
EoQ8nJ4TV17sHBmOYNJgVlDThNjwgc7Gofb6srw0NzdYTq6Lm5OlDQJiJE6ttlku
rJE5jwwxu7rcwZJJyHMEPbm+rTsJ+JSoMJyDNUIuE3Q3VykbK5RNtZFRTkVljjm5
Ti5k43EePTxSkIcbHPbq7mVWSEginTMNcQQmKKJYSAnyhgZ7eQx3tnXUV7bXVVQB
5SHB2KIyOx7glJxMNBrn3K3Z1HRqV69fV19gTS1dBJBFAicAzPACghAg8AGnuGh0
qC8ucy+nTizoVdTyCrMCA2yKyh24XHuZFGccTrVGu7j4prhsV2u3Z408KC7eLi4W
U5BHBoSuEpGLSEgAABuhkFBeRtzLxnrSbfy86EU5KbtDCQKA0tTg3SQ3Ul7Sn3Fq
W1t5kbHbHXBfWphtgZp9hsV8GhyEzs5w4XJdBCIXroAgENlXVTnFssmffPJpTkpC
ZkoMO5QFFDMPDAZ9WE61Wv0uSJ3AGwcP7Dfb8RXU0hwBh6PgCIiZKdx8OxqyjUww
i2MTMnLIPIFzlcwtKMA+MCg4N2Nvg4wXvZvFiXZpa/Y22vpcXFwMDg7eaWYO158/
wnTdAwQUCre0gJntgJibmtlYm/t7WaXvc/J0wzbW1w/2dtRV8Mrzk9nR5L4+/3dy
rp/Oan5vav1JxIq+v2Hw0MYx6uXlpcdPnt6dn781e/vi9RsXp2cuX525dm369u0f
Hy8sfHN0whz0JAKJQIDuBM1ACwoJhVlDoGiYhSXS4iss6ks01NTf16+tSZ6eFKdU
yGPDqbIK+lucGq16cfnN86XXz1+/VmvUvxXkv2sZ6F+4ola/fL3408/3p6avXJk6
d+rs8Ylj4+0DqsLe4X39qj2q0eSxo1lHT2YfPZ17+KRo7KRP3D4TS7BGs4aDdRoS
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
-----END CERTIFICATE-----


以下のようにtxtファイルとして保存したのち、zipファイルにdecode してください。zipを展開したbmpファイルをmicroSDカードのルートディレクトリに置きます。microSDには他のファイルが入っていても大丈夫でした(アクセス速度に影響するかも)。
C:\Users\naka>certutil -decode C:\Users\naka\Desktop\bitmap.txt C:\Users\naka\Desktop\bitmap.zip
入力長 = 56730
出力長 = 41217
CertUtil: -decode コマンドは正常に完了しました。

2020年5月25日月曜日

XIAOと小型液晶でネギ振り

seeeduino XIAO と microSD、 超小型液晶ST7735を使った画像表示でもう少し遊んでみました。まずは、前回、microSDから読みつつ表示していましたが、一旦メモリに読み込んでから一気に表示するのでどのくらいの速度差があるのか定量的に確認してみました。

以下、160x80の24ビットBMPファイル(約38KB)で確認。スケッチ内でmillis()関数を使って測定し、10回表示したときの平均値です。

  読み込みと表示          :308.8ms/画像 ... (毎秒3枚)
  読み込んだ後に表示のみ:76.2ms/画像 ... (毎秒13枚)

当たり前ですが、表示のみの方が高速(約4倍)に表示できています。見た目でも瞬時に切り替わるのが見て取れます。XIAOのRAMが少ないので、液晶1画面分しか画像を読み込んでおけないのが難点です。ちなみに、違うmicroSDで試したら読み込みと表示が313msと若干遅くなりました。microSDのアクセス速度も効いているのが分かります。

というわけで、160x80サイズだと1枚分しか記憶できませんが、小さい画像なら複数枚を記憶でき、高速に表示の切り替えができるだろうと、以下を試してみました。


本体の他に、ネギ+腕+ツインテール左側部分のみの小さい矩形画像で構成されています。初音ミクのロゴも別画像。本体とロゴはmicroSDから読み込みつつ表示し(XIAOのRAMに記憶しない)、ネギの画像3枚はRAMに記憶して、表示を順次表示しています(delayを入れて速度を調整してます)。画像を小さくしても3枚がメモリの限界でした。

まあ、この程度のことはできるということがわかりました。何か面白いアプリケーションを思いつけるとよいのですが。ちなみに、全体的に暗いのは、iPhoneのカメラの露出調整があまりうまく行かず、全体を明るく撮ると液晶画面が白飛びしてしまうため、液晶画面に露出を合わせた結果です。露出をマニュアル設定できるカメラならもう少しなんとかなるのか!?

2020年5月23日土曜日

microSDの画像を超小型カラー液晶パネルに表示

ちょっと苦労しましたが、seeeduino XIAOを使ってmicroSDに入れたBMP画像を超小型カラー液晶パネルに表示できました。microSDのソケットは秋月のDIP化キットを使っています。こんな感じで160x80のBMP画像(24bit)を表示できました。


Adafruit ImageReader Library (V2.3.5) というライブラリが、SDカードの読み込みと表示をサポートしていたので、安直にこれを使いました。160x80の液晶もサポートしています。スケッチのサンプルは以下にあり、これを流用してみました。

ファイル > スケッチ例 > Adafruit ImageReader Library > breakoutST7735-160x80

しかし、当初は下記写真のように変なネガのような色の表示となってしまい、BMPファイルフォーマットの違いか、作り方が悪いのか昨夜、3時間程悩みました。RGBカラーのRedとBlueが逆転しているようです。


ライブラリの初期化のときに下記のように "INITR_MINI160x80" というオプションを使うのですが、試しに元々このライブラリが作られたときの "INITR_GREENTAB" というオプションらしきものを指定したら、色が正しく表示されました。ただ、液晶サイズが異なるので斜め、かつ欠けて表示されます。

     tft.initR(INITR_MINI160x80); // Initialize screen

しかし、これでBMPファイルの作り方の問題ではなかったことが分かったので、ライブラリの中身(Adafruit_ST7735.cpp)を見てみることに。 GREENTAB と MINI160x80 で何が変わるのか見てみると tabcolorなるものの値が変わることが分かりました。そこでこのtabcolor値をGREENTAB と同じにしたら、無事に色問題が解決しました。

以下、反転している箇所が追加したソースです。この修正方法が妥当なのか分かりませんが、結果オーライとします(もっと正しい修正方法があるかも。あるいはライブラリの使い方の問題かも)。


seeeduino XIAO , microSD, ColorLCD の接続は以下です。前回のグラフィック表示のときと変えています。microSDアクセスは、SPI通信用ピンが固定のようなので。



スケッチ内でのピンアサイン定義は以下のみで済みました。

#define SD_CS    7 // SD card chip select
#define TFT_CS   4 // TFT select pin
#define TFT_DC   6 // TFT data/command pin
#define TFT_RST  5 // Or set to -1 and connect TFT RST to Arduino reset pin

使ったmicroSDカードは以下です。FAT32でフォーマット(してあった)、ルートディレクトリ直下にBMPファイルを置きました。


以下、動画です。動画前半は、microSDから読んで表示、というのを繰り返しています。まずまずの速さで表示が書き換えられています。後半は1画像表示したら2秒待って、次の画像を読み・表示を繰り返しています。


メモリ内に複数の画像を読み込んでから、切り替えようとしてみましたがうまく行きません。1枚だけならできました。XIAOはSRAMが32KBで、160x80のBMPサイズは単純計算で160x80x3(24bit)=38KBなのでメモリ不足だと思う。その割には1枚がちゃんと処理できたのはすごいな。


2020年5月20日水曜日

seeeduino XIAOに超小型カラー液晶を繋ぐ

週明けから梅雨入りしたかのような天候が続いていて、気持ちも低迷気味です。テレワークの運動不足解消のための散歩も曇天だと気分転換になりませんね。

電子工作で気分転換しようと、seeeduino XIAOで小型カラー液晶パネルを動かしてみました。アマゾンで売っているのを見つけて思わずポチってしまいました。0.96インチ IPS 液晶ディスプレイ SPI 80x160ピクセル 65 k フルカラー モジュール ST7735 というモノです。アマゾンでは1,000円弱、Aliexpress だと$2〜3で売られていましたが、直ぐに試してみたくてアマゾンでお買い上げです。

届いた商品に付いていたピンヘッダが5ピンでした。返品•交換も面倒なのでそのままです。


手持ちのピンヘッダを付けて使うことにしました。

seeeduino XIAOとはこんな感じで接続します。VCCは3.3Vです。無事に表示できました。

使ったライブラリは以下の2つ。
Adafruit GFX Library 1.8.3
Adafruit ST7735 and ST7789 Library 1.5.15

試したスケッチは以下です。
スケッチ例 > Adafruit ST7735 and ST7789 Library > graphicstest

ピンアサインは以下にしました。
#define TFT_CS  2
#define TFT_DC  3
#define TFT_SDA 4
#define TFT_SCL 5
#define TFT_RST 6
#define INITR_BLACKTAB INITR_MINI160x80

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_SDA, TFT_SCL, TFT_RST);

void setup(void) の始めの方
  tft.initR(INITR_BLACKTAB); 
  tft.setRotation(3);

以下、サンプルスケッチの表示です。




結構簡単で高速な描画ができました。気を良くししてAliexpress でも注文してしまいました。届くまで30〜50日とのことで、忘れた頃に届きそうです。それまでにSDメモリに入れた画像表示をしたいと思っています。実現できるか!?

以下、サンプルスケッチの動画です。


2020年5月14日木曜日

ヒートガンでSMDを外してみた

中華なヒートガン?が安かったので試しに購入してみました。目的はSMD部品の半田付けや取り外しです。半田付けにはメタルマスクやペースト半田が必要なので、取りあえずSMDの取り外しを試してみました。

試したのは、ジャンクなDVDドライブに入っていた基板。


一応、使えました。ただ、温度がよくわからないので基板や部品へのダメージは気になるところです。今回外した部品ですがコンデンサの容量はちゃんとありました。また、LEDも発光しました。寿命は不明ですが。


2020年5月10日日曜日

Seeeduino XIAOでペントミノ

XIAOでペントミノを解いてみました。元ネタは、ペントミノを解く ページのソースです。高速化のためにメモリを使う設計になっていてArduino UNO,Nanoでは動きませんでしたが、XIAOだとメモリには余裕があります。

結果表示はシリアル出力をArduino IDEのシリアルモニタで表示しているので、パソコンで解いているのと見た目は変わりません。6x10の詰め方で全解2339通りを約74秒で解けました。シリアル出力を止めると10%程度短縮されます。


8x8の真ん中4つが抜けているタイプで全解130通り 全解は65ですが130個求めて約13秒です。ピースを並べる盤が正方形なので90度回転で同じ解となるので、2倍の130個が求まっています。


Arduinoのテレビ出力 で試したライブラリを使ってテレビに表示しようと思いましたが、TVout が XIAO ではビルドできませんでした。残念。誰か対応してくれないかな、と他力本願。

2020年5月9日土曜日

Seeeduino XIAO 認識しなくなったが、解決しました。

Seeeduino XIAOですが、スケッチを書きこんでいるときに書き込みエラーが発生し、その後XIAOを認識しなくなってしまいました。USBケーブルを抜き差しし、PCを再起動したり、WindowsUpdateを行いましたが、現象は変わらず。他のPCでも試しましたがダメでした。

死んでしまったのか? ググっても同様の事象は見つかりません。週末に遊ぼうと思っていたのに残念です。


デバイス記述子要求の失敗というエラーが出ています。デバイスドライバを更新しようとしましたが、最新のようで、更新できませんでした。


再度、新しいものを購入しないとダメかな。でも原因が分からないと怖いですね。

-- 追記(2020.5.9)
SeeeduinoのWiki にリセット方法が載っていたので試してみたら認識される様になりました。よかったです。

PCに繋いだ状態で、以下の写真の2つの小さな丸いランドをチョンチョンと2回ショートするとリセットがかかり、オレンジ色のLEDが点滅します。これでチップ内の領域がブートローダに切り替わるようです。


リセット後に再度スケッチを書き込んだら再び認識しなくなりました。どうやらスケッチに致命的なバグがあって領域を壊しているような気がします。少しづつ動かしてデバッグしましょう。

何はともあれデバイスが壊れていなくてよかった。


2020年5月6日水曜日

小さなArduino互換機seeeduino XIAO

秋月で取り扱いが始まったとても小さなArduino互換機 seeeduino XIAO(秋月のサイト) を購入してみました。シャオと読むのでしょうか? 小さいという意味だったような。本当に小さいのと、580円という価格が嬉しいです。機器に組み込んで使うことも容易かと思います。



USBシリアル変換も入っていて、USB Type-C ケーブルでパソコンと繋ぎ、Arduino IDEで開発、書き込みができます。Arduino IDEにサードパーティボードを組み込む方法などは seeeduinoのwikiページ に書かれているので、その通りにしたら使えました。

最初は定番のLチカです。オンボードのLEDが点滅します。


次に、小型LCDにI2C接続して表示してみました。無事に表示できました。

さて何を作ろうか? 小さい事を活かした面白いモノができるとよいのですが思いつくか?!

Dead Man's Switch 動画アップ

ゴールデンウィークの最終日、ぼちぼちやっています。確定申告のために作ったマイナンバーカードを使って特別定額給付金の申請を行いました。いつ振り込まれるのか期待しています。テレワークのために無線LAN中継機を購入したので、これで賄えます。また、パソコンを2台も使っているので電気代とかの補塡にも。あと在宅仕事のおやつ代とかもかかるし。

デッドマンスイッチの動画編集はWindows10に付いてきたビデオエディターを使っています。給付金で買ってもいいけど、まぁこれでいいかな。


2020年5月5日火曜日

Dead Man's Switch完成、ソースアップ

ゴールデンウィークも残すところあと1日です。5連休にはあれこれしたいと思っていましたが、意外とできません。あっという間ですね。

切り忘れセーフティスイッチ(デッドマンスイッチ)が一応完成しました。ManではなくMan'sなのですね。

昨日の回路図に書き漏れがあったので修正しました。通電モニタ用のLEDの記載が抜けてましたので追記。また、AC100Vが1A流れる配線を二重線にしました。この配線は太い線材で配線下さい。

ケースに収める前に動作確認を行い、ケースに収めてから最終的な100V系の配線を行います。コネクタは使ってないので、組み込み後の修正は面倒です。PICのプログラム書き換えは、書き換え用に5ピンのソケットを付けました。写真では100Vアウトレットの陰で見えません。

適宜熱収縮チューブで絶縁、またホットボンドで固定します。SSRは両面テープでケース内側に貼り付けて、ホットボンドでも固定しました。圧電ブザーはケース側面に小さな穴を開けて両面テープとホットボンドで固定してます。

外観はこんな感じになりました。7セグLED前には視認性を上げるためのスモーク塩ビ板を付けてます。見にくいですが7セグLEDの右側に時間設定のタクトスイッチがあります。普段はあまり時間変更しない想定なので、少々押しにくくしてます。

時間のデフォルトは15分で、スイッチを押すたびに5分ずつカウントアップしていきます。最大95分。設定値はPIC内のEEPROMに記憶するので、次回はその値になります。

赤いハートビートスイッチ(利用者が生きてることを通知)を押すと通電してカウントダウンが始まります。カウントダウン中にスイッチを押すと設定時間に戻り、通電とカウントダウンを継続します。


残り1分でピッというアラームが鳴り、間も無くオフになる事を知らせてくれます。

時間切れ3秒前から1秒毎にピッというアラームが鳴り、オフと同時にピッピッピッというアラームが鳴ります。安全のためにオフになったらハートビートスイッチを押しても復帰しません。電源スイッチを入れ直して、最初からです。


ソースコードHEXファイルです。無保証です。バグあるかも知れません。著作権は留保しますが、改変などはご自由にどうぞ。ブログにコードを貼ると見にくいので、上記はPIC電子工作ホームページへのリンクです。製作記事は未だです。

昨日の記事にも書きましたが、参考にして作られる場合は、AC100Vを扱う工作ですので自己責任でくれぐれもご注意下さい。

2020年5月4日月曜日

Dead Man Switch再び

久しぶりのPIC工作です。以前、半田ごて切り忘れセーフティスイッチを作り、現在も利用しています。しかし最近、普段使いの半田ごて以外にも発熱する道具(半田ごて系とグルーガン)をよく使う様になってきて心配になったので、もう1台作ることにしました。

下記の写真は以前作ったこて台に仕込んだもの。一定時間毎にスイッチを押さないと(ハートビートと呼ばれる「生きてるよ」という信号を送らないと) 電源が自動的にオフになります。万が一私が工作中に突然死しても火災などの重大な被害を抑制できます(オフになり冷めるまでタイムラグがあるので完全には防げません)。

今回は汎用的にするために普通のケースに入れる事にします。回路やプログラムは前回ほぼ同じですが、アラーム音をPWMで出す様にしました。以前はプログラムで音を出していたので、音が出ると7セグLEDがチラチラしました(ダイナミック点灯の割り込みタイミングが遅れるため)。PWMモジュールが入ったPIC16F1827を使います。たまたま手持ちだったためで、他に理由はありません。もっと安いPICがあるかも。

回路の特徴は、普通7セグLEDは桁毎のダイナミック点灯にしますが、これはセグメント毎のダイナミック点灯です。ドットも含めて8個×2桁、計16個のLEDを順次発光させます。デューティ1/16です。これにより消費電力を抑えられると共に、電流制限抵抗を2個に減らせます。


AC100Vのオンオフを行うSSRは秋月で安かったものをネットで購入したら思いがけずデカかったです。もっと小さいものの方がケースの自由度が増します。

ケースも手持ちのタカチのものにしました。部品配置を考えてケースを決め、ケースを加工します。以下は正面のメインスイッチと7セグLED、時間設定スイッチの罫書き。

側面にアウトレットが付きます。

穴開けが終わりました。真ん中はハートビート用スイッチの穴です。リーマで大きくしたら多角形になってしまいました。

いきなり基板の完成です。工作途中の写真は撮り忘れました。基板の向こうに見える茶色の平たい大きな部品がSSRです。丁度ケースの高さに収まり、よかったです。

AC100Vを直接扱う工作なので、参考にして作られる方は自己責任で、十分ご注意下さい。工作中の感電の他、利用中の発熱やショートなどによる発火などの可能性があります。ヒューズは必ず適正な電流のものを入れて下さい。

近日中にソースとHEXファイルをアップします。

2020年5月3日日曜日

アマビエ・マグネット

気温が上がり始めたら連日強風が吹き荒れていて季節の変わり目といった感じです。
先日、自作レーザ加工機で焼いたアマビエをマグネットにしてみました。こんな感じです。新型コロナウィルスの早い終息を願いますが、しばらくは厳しいかな。

元々はMDFの切れ端に刻印したものです。

センターを出すために円に切った紙を両面テープで軽く貼り付けます。


CNCフライスで中心を原点にセットして、φ32mmでカット。

裏側も同様にセンター出しを行い、φ6mm 深さ3.1mmで座ぐります(マグネットのサイズがφ6㎜×3mm厚だったので)。

マグネットを圧入して完成。

濃度の調整が難しいのですが、グレースケールでも刻印できした。