前回「ラズパイPico」を使ったシーケンサ基板を設計しましたが、基板が届いたので動作確認の様子を詳しく紹介します。
入力12点、出力6点、アナログ入力2点、I2C通信、UART通信、OLED表示と動作確認用のサブ基板(スイッチ、ボリューム、リレー基板)の動作について、サンプルプログラムを使って確認していきます。
今回動作確認するシーケンサ基板の回路図や仕様については以下のリンクで詳しく紹介しています。
1.製作するラズパイPicoシーケンサについて
2.製作した生基板と実装部品の確認
・生基板の製作(PCBGOGO)
・実装部品
3.部品実装
4.動作確認
・入出力テスト
・OLEDディスプレイ表示
・アナログ入力
・I2C通信
・UART通信
5.ACアダプターでの動作確認、注意点
6.ガーバーデータから基板を製作する方法紹介
7.まとめ
1.製作するラズパイPicoシーケンサについて
複数の入出力を制御するために、産業用途や自動化システムではシーケンサ(PLC:Programmable Logic Controller)による制御が広く普及していますが、産業用ということで価格は高価です。
専用のソフトで「ラダー図」を使えば複雑な制御も比較的容易に実現でき、メンテナンスも容易になりますが、小規模な用途ではその機能を持て余すことも多いように思います。
「ラダー図」の動作を「Python」で書く方法は以下のリンクで詳しく紹介しています。
製作したシーケンサ基板の3Dデータは下画像のようになります。
名前は「LogikaraーPLC」とでもしておきます^^♪
主な機能は以下のようになります。
- 入力端子:「X00〜X03 / COM(0V)×2」で 6極(6P)端子台
「X04〜X07 / COM(0V)×2」で 6極(6P)端子台
「X10〜X13 / COM(0V)×2」で 6極(6P)端子台 - 出力端子:「Y00〜Y05 / OUT 5V / VSYS 5V / COM(0V)」で 9極(9P)端子台
- アナログ入力端子:「ADC1 / ADC2 / VSYS 5V / COM(0V)」で 4極(4P)端子台
- UART(UART0):「TX0 / RX0 / COM(0V)」で3極(3P)端子台
- I2C(I2C0):「SDA0 / SCL0 / VSYS 5V / COM(0V)」で4極(4P)端子台
※「SDA0 / SCL0」端子は UART1の「TX1 / RX1」端子としても割り付けて使用できます。
入出力の回路図は以下のようになります。(VSYSは、電源5Vー約0.3Vで4.7V程になります。)
入力回路(フォトカプラ)
入力用端子台と「ラズパイPico」の入力端子はフォトカプラで絶縁されているので、外来ノイズの影響を受けにくくなります。
動作確認用LED付きです。
出力回路(トランジスタアレー)
出力にはトランジスタアレー(オープンコレクタ)を使用してより大きな電流を扱えます。
動作確認用LED付きです。
入出力の動作確認用サブ基板もメイン基板と面付けして製作しています。
「Vカット」で割り取ると下画像のように使用できるので、必要に応じて部品を実装して使用します。
入力スイッチ、ボリューム基板
この基板はさらにスリットで3分割できます。
「タクトスイッチ」は押したらON、離したらOFFする動作、「トグルスイッチ」はON状態を保持したい動作の確認用です。
ボリューム基板はアナログ入力の動作確認に使用できます。
出力リレー基板
リレーはオムロンのG5LEが実装できます。個人では入手が難しいですが、「秋月電子通商」や「Amazon」で買える相当品が豊富にあるのでこれを選定しています。
各基板の回路詳細については、以下のリンクの中で詳しく紹介しています。
2.製作した生基板と実装部品の確認
今回設計して製造した「生基板」と実装する部品について紹介します。
・生基板の製作(PCBGOGO)
生基板は中国の深センにある基板製造メーカーの「PCBGOGO」さんに製造をお願いしました。
基板の見積もりは会員登録も不要でHP上からすぐに確認できるので見積もりだけしてみるのもいいと思います。今回の基板は5枚で「$54(約¥8,000)」ですが、新規会員登録の場合は割引があって「$9」で製作できます。安い!
基板製造依頼後に支払いが完了すると製造状況が以下のように更新されて確認できます。
どこまで進んでいるかわかるのもいいですし、基板の製造工程もよくわかって勉強になります!
[振り込み完了]から[製品発送完了]まで、ちょうど2日でした。
特急指定はしていません。通常納期です!早いですね〜
深夜2時に「銅メッキ」とか、22時に「包装」とか・・・ありがとうございます^^;
完成して到着した基板は以下になります。
中国からお馴染みの「OCS」でいつもの感じで届きました。
丈夫な箱に入っていて、へこみ等もなく、非常に状態は良かったです。
梱包材もしっかりしてます。
さらに基板はエアキャップでラミネートされています。
今回は5枚制作しました。
シルク印刷やランドのハンダメッキも非常に綺麗です。
小径ビアや細パターンも綺麗に仕上がっています。
Vカットやスリットも問題なく綺麗に基板を分離することができました。
・実装部品
実装する部品の全ては下画像のようになります。
部品入手については「Amazon」でも買えますが、探すのが結構大変です・・・トグルスイッチやリレー、端子台は安かったりしますが、「秋月電子通商」だとすぐに全部揃うので今回は全て秋月さんで購入しました。
「部品リスト」は以下のリンク先で秋月さんの品番と一緒に公開しています。
3.部品実装
基板へ部品を実装したものは下写真のようになります。
基板はメインの「シーケンサ基板(Logikara-PLC)」と動作確認用の「サブ基板」を面付けして作成しています。
各基板の境目には「Vカット」の溝がついているため下写真のように割って分割することができます。
動作確認用サブ基板の「L形ピンヘッダー」は、メイン基板の端子台に接続して使用しますが、そのままでは干渉してしまうため、下画像のように両端を残して1つおきにピンを抜いておきます。
サブ基板は下写真のようになります。
入力動作確認用スイッチ、ボリューム基板
出力動作確認用リレー基板
スイッチ基板とボリューム基板は以下のようにスリットでさらに3分割できます。
スリットで簡単に割れます。
接合部も工具を使って簡単に割り取れます。
サブ基板の接続例は各端子台に固定して、下写真のようになります。
入力動作確認用スイッチ基板は「X00〜X03、X04〜X07、X10〜X13、COM」に接続して使用できます。
アナログ入力確認用ボリューム基板は「VSYS、ADC1〜2、COM」に接続して使用できます。
出力動作確認用リレー基板は「Y00〜Y05、COM、VSYS 5V、OUT 5V」に接続して使用します。
4.動作確認
シーケンサ基板(Logikara-PLC)の動作確認をしていきます。
今回は試作基板の動作確認のため、単純な入出力テストや、接続した通信機器が問題なく動作できるかを各動作ごとにサンプルプログラムで確認していきます。
・入出力テスト
入出力の確認だけなので以下の単純な「ラダー」動作で、入力端子12点(X00〜X07、X10〜X13)、出力端子6点(Y00〜Y05)の動作確認を行います。
入出力のON/OFFはシーケンサ基板上のLEDで確認できます。
X02とX03 がONで Y01 をON
X04とX05 がONで Y02 をON
X06とX07 がONで Y03 をON
X10とX011 がONで Y04 をON
X12とX013 がONで Y05 をON
この動作では、2つの入力が同時にONしたときに1つの出力をONさせています。
全ての入力をONさせたときに、全ての出力がONされれば問題なく動作している確認ができます。
この動作をシーケンサの「ラダー図」で書くと以下のようになります。
'''
# 入出力確認 *********************
x0 x1
--| |----| |-----------( y0 )--
x2 x3
--| |----| |-----------( y1 )--
x4 x5
--| |----| |-----------( y2 )--
x6 x7
--| |----| |-----------( y3 )--
x10 x11
--| |----| |-----------( y4 )--
x12 x13
--| |----| |-----------( y5 )--
'''
この「ラダー図」を「Python」で書くと以下のようになります。
# Pythonへ変換
y0 = x0 and x1
y1 = x2 and x3
y2 = x4 and x5
y3 = x6 and x7
y4 = x10 and x11
y5 = x12 and x13
シーケンサの「ラダー図」を「Python」で書いて動作確認を行う方法については、以下のリンクで詳しく紹介しています。
実際にサンプルプログラムを書き込んで動作確認した様子は下画像になります。
サブ基板の「トグルスイッチ基板(3セット作りました)」を使用して動作確認しています。
サンプルプログラムは以下になります。
今回は単純な入出力の確認だけのため「タイマー割り込み」や「カウントクラス」は省略しています。
from machine import * # 制御用モジュールを準備
# 本体LEDを出力設定
led = Pin("LED", Pin.OUT)
# INPUT:入力端子(x0〜x3)設定(プルアップ)
input_pins = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] # 使用する入力端子を設定(リスト作成)
inputs = [Pin(pin, Pin.IN, Pin.PULL_UP) for pin in input_pins]
# OUTPUT:出力端子(y0〜y3)設定
output_pins = [18, 19, 20, 21, 22, 26] # 使用する出力端子を設定(リスト作成)
outputs = [Pin(pin, Pin.OUT) for pin in output_pins]
# 初期化
x0 = x1 = x2 = x3 = x4 = x5 = x6 = x7 = x10 = x11 = x12 = x13 = False # 入力接点(12点)
y0 = y1 = y2 = y3 = y4 = y5 = False # 出力点数(6点)
m0 = m1 = m2 = m3 = m4 = m5 = m6 = m7 = m8 = m9 = \
m10 = m11 = m12 = m13 = m14 = m15 = m16 = m17 = m18 = m19 = False # 補助リレー(20点)
# メイン処理 ---------------------------------------------------------------
while True: # ずっと繰り返し
# 入力状態スキャン
x0, x1, x2, x3 = not inputs[0].value(), not inputs[1].value(), not inputs[2].value(), not inputs[3].value()
x4, x5, x6, x7 = not inputs[4].value(), not inputs[5].value(), not inputs[6].value(), not inputs[7].value()
x10, x11, x12, x13 = not inputs[8].value(), not inputs[9].value(), not inputs[10].value(), not inputs[11].value()
# ************* シーケンス処理(ラダーから変換) *************
'''
# 入出力確認 *********************
x0 x1
--| |----| |-----------( y0 )--
x2 x3
--| |----| |-----------( y1 )--
x4 x5
--| |----| |-----------( y2 )--
x6 x7
--| |----| |-----------( y3 )--
x10 x11
--| |----| |-----------( y4 )--
x12 x13
--| |----| |-----------( y5 )--
'''
# Pythonへ変換
y0 = x0 and x1
y1 = x2 and x3
y2 = x4 and x5
y3 = x6 and x7
y4 = x10 and x11
y5 = x12 and x13
# 本体LED動作(電源ONで点灯)
led_state = True
led.value(led_state)
# ************* シーケンス処理 ここまで *************
# 出力実行
outputs[0].value(y0)
outputs[1].value(y1)
outputs[2].value(y2)
outputs[3].value(y3)
outputs[4].value(y4)
outputs[5].value(y5)
次に、同じプログラムでサブ基板の「リレー基板」の動作確認をしていきます。
「リレー基板」は下画像のように「シーケンサ基板(LogikaraーPLC)」と接続して「リレー基板」に接続したACアダプターからDC5Vを供給します。
リレーがONしているかどうかはブレッドボード上にLEDを並べて、全てのLEDが点灯するかどうかで確認しています。
LEDの電源は「リレー基板」上の端子台から供給できます。
全ての入力をONすると下画像のように、ブレッドボード上の全てのLEDが点灯したため、問題なく動作していることが確認できました。
設計時に心配された、出力に使用しているトランジスタアレーの発熱についても確認しておきます。
今回はDC5Vのリレーを採用したため、消費電流が大きい(1個約80mA[5V])です。
1個2個なら問題ないですが、6個全部をONさせると、トランジスタアレーの発熱の問題が想定されます。
リレーコイルの動作電圧は「75%以下(3.75V)」のため、全てのリレーをONした状態で、各リレーの電圧が「3.75V」より十分高いかを確認していきます。
リレーのコイル抵抗(70Ω±10%のため最小の63Ωとする)から各リレーの消費電流値も求めておきます。
確認結果は以下表のようになりました。
リレー番号 | Y00 | Y01 | Y02 | Y03 | Y04 | Y05 |
---|---|---|---|---|---|---|
コイル両端電圧(V) | 4.24 | 4.24 | 4.22 | 4.23 | 4.23 | 4.23 |
コイル電流計算値(mA) | 67.3 | 67.3 | 67.0 | 67.1 | 67.1 | 67.1 |
リレーコイルの両端電圧は「4V」以上のためOKとします。消費電流の合計は「402.9mA」でした。
コイル電流による発熱は、以下の「トランジスタアレー(ULN2003A)」のデータシートのグラフで確認します。
このグラフから、トランジスタON/OFFのDutyサイクルごとに、85℃となる電流の最大値が確認できます。
同時に6個ONするため「N=6」のグラフで、Dutyサイクルは連続ONのため「100%」の時の電流値を確認すると「1素子あたり約120mA」なのがわかります。
目一杯使うと85℃なので半分以下を目安とします。
上表で計算で求めた各「コイル電流値」は「67mA」程度でほぼ半分のため、問題なしとします。
念の為、全てのリレーをONした状態で1時間程放置してみましたが、リレーが少し暖かくなる程度で、トランジスタアレーの発熱は感じられなかったため、問題なしとします。
・OLEDディスプレイ表示
OLEDディスプレイ(SSD1306)の動作は下画像のように「Hello!!」を表示するプログラムで確認を行いました。
サンプルプログラムは以下になります。
# Thonnyの「パッケージ管理」からssd1306で検索して「micropython-ssd1306」をインストールしておく
from machine import I2C # I2C制御用モジュールを準備
import ssd1306 # 液晶表示器用ライブラリを使用
import time # タイマーモジュールを準備
# I2C設定
i2c = I2C(1, sda=2, scl=3) # (I2C識別ID 0or1, SDA, SCL)
# 使用するSSD1306のアドレスを取得して表示(通常は0x3C)
addr = i2c.scan()
print("OLED I2C Address :" + hex(addr[0]))
# ディスプレイ設定(幅, 高さ, 通信仕様)
display = ssd1306.SSD1306_I2C(128, 64, i2c)
# メイン処理 ---------------------------------------------------------
while True: # ずっと繰り返し
display.fill(0) # 画面表示初期化
# 文字表示("表示内容", x座標, y座標, 色, フォント)
display.text("OLED SSD1306", 17, 0, True)
display.text("Hello!!", 37, 36, True)
# 線の描画(始点x, 始点y, 終点x, 終点, 色)
display.line(0, 9, 128, 9, True)
# 四角の描画(x座標, y座標, 幅, 高さ, 色)
display.rect(5, 20, 118, 40, True)
display.show() # 画面表示実行
time.sleep(0.5) # 待ち時間
OLEDディスプレイの使用方法は以下のリンクで詳しく紹介しています。
・アナログ入力
アナログ入力は下画像のように、ボリューム基板を使用して、2つのアナログ入力値(A1、A2)と電圧換算値をOLEDディスプレイに表示して確認を行いました。
サンプルプログラムは以下になります。
# Thonnyの「パッケージ管理」からssd1306で検索して「micropython-ssd1306」をインストールしておく
from machine import Pin, ADC, I2C # 使用する制御用モジュールを準備
import ssd1306 # 液晶表示器用ライブラリを使用
import time # タイマーモジュールを準備
# I2C設定
i2c = I2C(1, sda=2, scl=3) # (I2C識別ID 0or1, SDA, SCL)
# 使用するSSD1306のアドレスを取得して表示(通常は0x3C)
addr = i2c.scan()
print("OLED I2C Address :" + hex(addr[0]))
# ディスプレイ設定(幅, 高さ, 通信仕様)
display = ssd1306.SSD1306_I2C(128, 64, i2c)
# アナログ入力ピン設定
adc1 = ADC(27) # アナログ入力(A0)の端子番号27を設定
adc2 = ADC(28) # アナログ入力(A1)の端子番号28を設定
# メイン処理 ---------------------------------------------------------
while True: # ずっと繰り返し
adc_val1 = 65535 - adc1.read_u16() # アナログ入力(ADC)値1を取得
adc_volt1 = (adc_val1 * 3.3) / 65535 # アナログ入力(ADC)値1を電圧(3.3V)に変換
adc_val2 = 65535 - adc2.read_u16() # アナログ入力(ADC)値2を取得
adc_volt2 = (adc_val2 * 3.3) / 65535 # アナログ入力(ADC)値2を電圧(3.3V)に変換
print("adc_val = {:5d}, {:5d} adc_volt = {:5.2f}V, {:5.2f}V".format(adc_val1, adc_val2, adc_volt1, adc_volt2)) # 結果を表示する
# 液晶画面表示内容設定
display.fill(0) # 表示内容消去
display.text('Analog Input', 15, 0, True) # タイトル表示
display.hline(0, 10, 128, True) # 指定座標から横線
display.text('ADC ={:6d}'.format(adc_val1), 17, 15, True) # アナログ入力1値表示
display.text('VOLT={:5.2f}'.format(adc_volt1), 17, 27, True) # 電圧1表示
display.hline(10, 38, 108, True) # 指定座標から横線
display.text('ADC ={:6d}'.format(adc_val2), 17, 43, True) # アナログ入力1値表示
display.text('VOLT={:5.2f}'.format(adc_volt2), 17, 55, True) # 電圧1表示
# 設定した内容の表示実行
display.show()
time.sleep(1.0) # 待ち時間
・I2C通信
I2C通信(SDA0、SCL0)はOLEDディスプレイを使用して下画像のように確認を行いました。
サンプルプログラムは、上で紹介した「OLEDディスプレイ表示」のサンプルプログラムと同じで、I2C通信で使用する端子の指定を以下のように変更したものです。
# I2C設定 (I2C識別ID 0, SDA0端子, SCL0端子)
i2c = I2C(0, sda=4, scl=5)
・UART通信
UART通信は、専用の端子「TX0、RX0」と、割り付けて使用できる「TX1、RX1」のそれぞれの送信端子と受信端子を下画像のように接続して行います。
動作確認は「X00」のスイッチ(赤)をONすると、文字列「Hello」を「TX0」から送信し「RX1」で受信します。
データを受信したら受信した文字列に「World!」加えて「TX1」から送信し「RX0」で受信します。
最終的に受信したデータ「Hello World!」が「OLED表示器」に表示されたら、正常に動作していることが確認できます。
サンプルプログラムは以下になります。
# Thonnyの「パッケージ管理」からssd1306で検索して「micropython-ssd1306」をインストールしておく
from machine import Pin, UART, I2C # 使用する制御用モジュールを準備
import ssd1306 # 液晶表示器用ライブラリを使用
import time # タイマーモジュールを準備
# I2C設定
i2c = I2C(1, sda=2, scl=3) # (I2C識別ID 0or1, SDA, SCL)
# 使用するSSD1306のアドレスを取得して表示(通常は0x3C)
addr = i2c.scan()
print("OLED I2C Address :" + hex(addr[0]))
# ディスプレイ設定(幅, 高さ, 通信仕様)
display = ssd1306.SSD1306_I2C(128, 64, i2c)
# UART0を初期化
uart0 = UART(0, 9600) # (UART番号, ボーレート) ※端子を指定しなければ RX/TX=1/0
# UART1を初期化
uart1 = UART(1, 9600) # (UART番号, ボーレート) ※端子を指定しなければ RX/TX=5/4
# 入力ピン設定
x0 = Pin(6, Pin.IN, Pin.PULL_UP) # スイッチのピン番号を指定してswとして入力設定(プルアップ)
# 変数宣言
state = False # スイッチ状態保持用
# メイン処理 ---------------------------------------------------------
while True: # ずっと繰り返し
# スイッチONでUART0(TX0) から「Hello 」を送信
if (x0.value() == False and state == False): # スイッチが押されていてstateがFalseなら
state = True # スイッチON状態を保持
# OLED表示
display.fill(0) # 画面表示初期化
display.text("Hello", 0, 0, True) #("表示内容", x座標, y座標, 色, フォント)
display.show() # 画面表示実行
# UART0(TX0)でデータ送信
uart0.write("Hello") # 文字「Hello」を送信
if x0.value() == True: # スイッチがOFFなら
state = False # スイッチON状態を解除
# UART1(RX1)で受信したデータに「World!」を加算
if uart1.any() > 0: # 受信データがあれば
data = uart1.readline() # 受信済みの文字データを全て読み込む
print(data) # 受信した文字を表示
# UART1(TX1)でデータ送信
uart1.write(data + " World!") # 受信した文字に「World」を追加して送信
# UART0(RX0)で受信したデータをOLEDに表示
if uart0.any() > 0: # 受信データがあれば
data = uart0.readline() # 受信済みの文字データを全て読み込む
print(data) # 受信した文字を表示
# OLED表示
display.text(data, 0, 10, True) #("表示内容", x座標, y座標, 色, フォント)
display.show() # 画面表示実行
time.sleep(0.2) # 遅延時間
5.ACアダプターでの動作確認、注意点
サブ基板の「リレー基板」にはDC5VのACアダプターを接続して、シーケンサ基板への電源を供給することができますが、いくつか注意点があります。
この基板は、まだ試作段階のため「ACアダプターを接続するときにはUSBを外す必要があります」としています。
USBを外さないと「USBの5V」と「ACアダプターの5V」を接続することになり、お互いの微妙な電圧差で電圧の高い方から低い方へ電流が流れ、接続した機器を最悪破損させてしまう可能性があるためです。
リレー基板の回路図は以下になります。
「J9-1(J26-17)」がシーケンサ基板の「OUT 5V(VBUS)」と接続されます。
「J9-2(J26-15)」がシーケンサ基板の「VSYS 5V(VSYS)」と接続されます。
シーケンサ基板側の「リレー基板」と接続する端子台の回路図は以下になります。
「ラズパイ Pico」の電源部の回路図は以下になります。
「VBUS」がシーケンサ基板の「OUT 5V」にあたり、「VSYS」がシーケンサ基板の「VSYS 5V」にあたります。
「リレー基板」のACアダプターの5Vから「ラズパイ Pico」の「VBUS」には逆流防止用のダイオードが入れてあるため電流は流れませんが、ACアダプターの5Vが低い場合は「VBUS」から「ACアダプター」へ電流が流れるため注意が必要です。
ACアダプターの5Vは「リレー基板」上のダイオード経由で「ラズパイ Pico」のVSYSへ電源を供給します。
この時のVSYSの電圧はショットキーバリアダイオードの順方向電圧(約0.3V)分低下し「約4.7V」になります。
「VSYS」に入力された電圧は「Pico」上の電源ICで制御用の3.3Vを生成します。
「VSYS」はシーケンサ基板の5V電源(VSYS 5V)としても使用しています。
6.ガーバーデータから基板を製作する方法紹介
シーケンサ試作基板(Logikara-PLC)の動作確認を行いましたが、概ね予定通りに動作しました。
ここでは「基板製造のためのガーバーデータ」を公開予定でしたが、思いのほか高額となったため保留としました(汗)
代わりにメインのシーケンサ基板だけのデータで基板を製造依頼する方法を以下のリンク先にまとめて詳しく紹介しています。(ガーバーデータも公開)
上記のリンクの方がわかりやすいと思いますが、以下のガーバーデータから基板を発注する方法も残しておきます。
最終的な価格はデータ確認後に確定します。価格に問題なければ支払いを行なって、製造が始まります。
基板価格の確認
ガーバーデータを登録して基板を発注するには以下のボタンから「PCBGOGO」さんのホームページにアクセスします。
以下のようなページが表示されたら[自動お見積もり]ボタンをクリックします。
以下のようなページが表示されたら[外形寸法(長さ×幅)]と[枚数]を入力して、[見積作成]ボタンをクリックします。
以下のようにページ右に見積もり金額が表示されたら、2箇所の[新規ユーザー割引]に「チェック」を入れます。
基板製造を依頼するには「新規会員登録」が必要なため[今すぐ登録!]をクリックして、会員登録を行いましょう。
会員登録がお済みの方は[カートに入れる]をクリックしてログインします。
「マイページ」からガーバーデータを登録して、支払い方法を選択すると発注完了となります。
新規会員登録方法
[今すぐ登録!]をクリックすると、以下のような画面が表示されるので[会員登録に進む(無料)]をクリックしましょう。
以下のような画面が表示されたら、「メールアドレス」と「パスワード」を決めて入力します。
パスワードは忘れないようにメモしておきましょう。
入力したら「私はロボットではありません」にチェックを入れて、利用規約等を確認し、問題なければ[規約に同意して次へ進む]をクリックします。
登録したメールアドレス宛に、下画像のような「認証番号」が記載されたメールが届くのでしばらく待ちます。届いた番号はメモまたはコピーしておきましょう。
以下のような認証番号を入力する画面が表示されたら、先ほどメモした認証番号を入力し[次に進む]をクリックします。(謎のカウントダウンが始まりますが、0になっても問題なく進めたので焦らず作業しましょう。)
以下のような「お客様情報の入力」ページが表示されたら、ご自分の利用状況に合わせて「会社」「個人」「ディーラー」を選択し、以下の情報を入力して[確認]ボタンをクリックします。
次に、入力内容の確認を行って問題なければ[新規登録]ボタンをクリックします。
登録が完了すると、以下のようなメールが届きます。
PCBGOGOさんでは「1対1サポート」があり、何かあった時は直接担当の方と連絡ができるようです。
対応も日本語で大丈夫のなので、何かあった時は気軽に問い合わせてみましょう。
以下のように、ログイン画面が表示されたら登録した「メールアドレス」と「パスワード」を入力し、「私はロボットではありません」にチェックを入れて[ログイン]ボタンをクリックします。
ガーバーデータの登録
会員登録が完了して「ログイン」すると、以下のようにマイページが表示されます。
画面右上の[カート]アイコン上に「1」が表示されていると思うのでここをクリックします。
以下のように、カート内に製造する基板の情報が登録されています。
この画面で「ガーバーデータ」の登録を行います。
[ガーバーデータを入稿]ボタンをクリックしてください。
以下の画面が表示されたら[ガーバーデータを入稿]ボタンをクリックします。
パソコンのフォルダが表示されたら、製造する基板の「ガーバーデータ」を選択します。(登録できるデータはzip[圧縮]データなのでご注意ください。)
登録が完了して、以下のような画面になったら[確認]ボタンをクリックします。
マイページのカート情報が更新され、以下のように[ステータス]が「データ確認中」になれば、ひとまず完了です。
「PCBGOGO」さんの方でデータの確認が終わったら[ステータス]が更新され価格が確定するので、それまでしばらく待ちましょう。
価格が確定して、間違いがなければ[レジに進む]をクリックして、支払い方法を登録したら、あとは基板の完成を待つだけです。その間、次のお届け先情報の登録を済ませておきましょう。
お届け先情報の登録
スムーズに基板製造を進めてもらえるように、先に[お届け先情報]の登録をしておきましょう。
マイページのサイドメニューから以下のように[アカウント情報]の[お届け先情報]をクリックします。
以下のように表示されたら[新しい送り先を追加]ボタンをクリックします。
(私は登録済みなので、既に送り先情報が表示されています。)
以下のウインドウが表示されたら[会社]か[個人]を選択して情報を入力し、[確認]をクリックして完了です。
7.まとめ
「ラズパイ Pico」を使用して制作したシーケンサの試作基板(Logikara-PLC)について、動作確認を行いました。
入力12点、出力6点、アナログ入力2点、I2C通信、UART通信、OLEDディスプレイ表示について、それぞれ個別に動作確認を行いましたが、無事設計通りに動作することが確認できました。
ひとまず安心ですが、より使いやすくするための改善点も見えてきました。
今のままでも十分実用的なので、しばらく使いながら、他の改善点も探ってみたいと思います。
次回製作するときは、これらの改善点を踏まえて再設計したもので製作予定ですが、今回は5枚制作してあるので、しばらくはこれで実際のシーケンサとして「タイマー」や「カウンタ」も含む「ラダー図」での動作確認をしていきたいと思います。
また、「OLED表示」や「I2C/UART通信」をしながら、安定してラダー動作を「タイマー割り込み」で一定間隔で動作させ続けるには「ラズパイ Pico」のマルチコアを使用して処理を分担して動作させる必要があるので、マルチコアでの動作方法についても以下で詳しく紹介しています。
コメント
今のところ販売予定は無いですが^^; 基板のガーバーデータを次の記事で公開予定です。
ガーバーデータを元に生基板を製造依頼する手順も紹介しますのでよろしければお試しください。
半田付けは少し手間ですが、部品は高価なものはないので、安価で完成できると思います。
部品の入手先や、総額いくらで製作できるか等も紹介しますので、またご確認ください。