2つの画像のマージ

#

2つの4x8画像を1列ごとに入れ子にして8x8を作る。 1次元行列 → vstack → 軸入れ替え → 2次元行列、でやってます。

import numpy as np
from PIL import Image

# make array
a = np.arange(32).astype(np.uint8).reshape(4,8)*8
b = a+128
#
x =a.reshape(-1,)
y =b.reshape(-1,)
vs_val = np.vstack((x,y)).reshape(2,-1)
vs_val = vs_val.T.reshape(8,8)
print(vs_val)

#make image file
pilImg = Image.fromarray(np.uint8(vs_val))
pilImg.save('test20190114.pgm')

qiita.com

qiita.com

qiita.com

black pill をarduinoとして使えるようにする準備

1 AliExpress でBlack Pill 購入

2 arduino ide1.8.5をダウンロード

 ちなみに元々使ってた1.6.X系だとコンパイルができなかった。

 ツール → ボード → Board Manager を選択して、
 Arduino SAM Boards (32-bits ARM Coretex-M3) by Arduino を選択してインストールします。

3 ブートローダーの書き込み

  ↓を参考に
ARM ボード STM32F103C8T6 (Black Pill) で L チカ - JH1LHVの雑記帳

ジャンパ設定をブートローダ書き込み用にする

f:id:morning-pumpkin:20180816232850g:plain

rs232のシリアルモジュールとblack pillを接続

black pill USB シリアル
RX PA9
TX PA10
GND G
3.3V V3

stのflash loader demonstratorインストール

ダウンロードにはstのアカウントが必要。

flash loader demonstratorからの書き込み

f:id:morning-pumpkin:20180816230443g:plain
シリアルをつないで一度リセットボタンを押さないと flash loader demonstratorが認識してくれなかったので気を付ける。

f:id:morning-pumpkin:20180816230858g:plain 次に進む

f:id:morning-pumpkin:20180816230909g:plain page0 0x8000000を選ぶ

f:id:morning-pumpkin:20180816230915g:plain black pill用としてgeneric_boot20_pb12.binをつかった。 gitbubのファイルの中にある。

4 githubから環境ダウンロード

https://github.com/rogerclarkmelbourne/Arduino_STM32

↓のinstall のwindowsの項目に従ってやればよい。
Installation · rogerclarkmelbourne/Arduino_STM32 Wiki · GitHub

コンパイル環境

コンパイル環境はフォルダ丸ごと
*\arduino-1.8.5\hardware 以下にコピーする。
たとえば、C:\arduino-1.8.5\hardware\Arduino_STM32-master

デバイスドライバ

 デバイスドライバarduino ideから書き込み前にインストールしてないといけない。
 navigate to the folder: /drivers/win/ and run: install_drivers.bat.を実行する。

 インストールしてないと、以下のエラーメッセージがでて書き込みが失敗する。
 Couldn't find the DFU device: [1EAF:0003]

5 arduino IDEからプログラム書き込み

ジャンパ設定をarduino動作用にする

f:id:morning-pumpkin:20180818220051g:plain

PCとmicro USB接続する

ブートローダ書き込み時はuart接続しないといけないが、 arduinoとして使うときはUSBから接続できる。

ArduinoIDEのボード設定をする。

f:id:morning-pumpkin:20180816230110g:plain
arduino IDE上でのボード設定選択

↑のとおりボード設定をする。

プログラムを用意する。

void setup() {
  // put your setup code here, to run once:
  pinMode(PB12, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(PB12, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(PB12, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

LEDのポートはPB12にする。

f:id:morning-pumpkin:20180816225647g:plain
arduino IDE書きこみ成功

書き込み完了!!

参考リンク

ARM ボード STM32F103C8T6 (Black Pill) で L チカ - JH1LHVの雑記帳 SMT32F103を使ってみる STM32F103 Black Pill - STM32duino wiki

PLCリンク

リレー制御/シーケンス制御講座

シーケンス制御講座「PLCへの配線方法」 | ものづくりニュース by aperza

PLCと入出力機器の接続例

メカシリンダとシーケンサ(PLC)の配線説明、キーエンスPLCとの接続方法:CPUユニット、出力仕様:汎用出力