Articles Posted by the Author:

  • 電子拡張ボードの製作

    電子拡張ボードの製作

    86Duino Zeroをメインコントロールボードとしてご使用の場合、複数のサーボを素早く簡単に接続するために、自作の電子拡張ボードを強くお勧めします。この拡張ボードは3×4 DuPontピン3本と1×2 DuPontピン1本で構成されており、各3x4ピンは4台のサーボに接続でき、3つのグループに合計12台のサーボを接続できます。 3×4 DuPontピングループには以下の配線があります。 1. 電源ライン (VIN) 2. グランドライン (GND) 3. 信号ライン (PWM) 電源(赤線)は各サーボで共有され、グランド(黒線)も各サーボで共有されます。はんだごてを使用して、これらのピンを2本の平行な直線(下図の赤と黒の二重線)に半田付けします。オレンジ色の線は信号線で、デュポン線(合計12本)を使用してメインコントロールボードのピンに接続します。赤と黒の二重線のように一列にハンダ付けせず、錫メッキで固定します。最後の1x2ピンは電源とアースの供給源で、赤と黒の二重線の延長線上にハンダ付けできます。赤と黒の二重線の間にはハンダ付けをしないでください。二重線は必ず2本の「完全に分離された」平行線にしてください。そうしないと、回路科学における「短絡」現象が発生し、サーボが焼損したり、最悪の場合バッテリーが損傷したりする可能性があります。必ず何度も確認してください。 下の画像の左側は配線図、中央は完成品の底面図、右側は完成品の上面図です。 上の画像を参考に製作してください。この工程でははんだごて(はんだを含む)を使用するため、はんだごての先端部は非常に高温になります。作業中の火傷を防ぐため、お子様がご使用の際は必ず保護者の方が付き添ってください。 86小型6脚ロボットの組み立てチュートリアル 86Duinoリファレンスのテキストは、クリエイティブ・コモンズ 表示-継承 3.0 ライセンス に基づいてライセンスされています。リファレンス内のコードサンプルはパブリックドメインとして公開されています。


  • 魔方陣ロボット

    魔方陣ロボット

    プロジェクトの起源 機能説明 材料の準備 ハードウェアインストール 環境設定 プログラム説明 結果表示 関連情報     プロジェクトの起源 このプロジェクトの発端は、ある日、兵士Bがルービックキューブを会社に持ち込んで上司に見つかってしまったことでした。 「ルービックキューブを回せるなら、ルービックキューブロボットを作るのも楽勝だぞ!」上司はそう言い、兵士Bはこのプロジェクトの責任者に任命されました。 機能説明 このプロジェクトでは、86Duino One、86Duino Enjoy、そしてMaixduinoを使用して、マジックキューブロボットを実装します。 材料の準備 86Duino 1台 Maixduino 1台 RoBoard RS-1270サーボ 8個 OV2640 カメラモジュール マジックキューブ 1個(このプロジェクトではWild Goose Magic Cubeを使用) 2.4インチTFT LCDスクリーン(オプション) WS2812 LEDライトバー(LED 18個付き) 7.2Vバッテリー 3Dプリンター ネジ、ナット、ワイヤー ハードウェアセットアップ このプロジェクト構成は、OTVINTA のルービックキューブロボットを参考にしており、必要な印刷材料の STL ファイルは以下のとおりです。 カバーパーツの STL ダウンロード 光の問題が後の色認識に影響を与えるのを避けるため、カバーパーツは白または黒の材料で印刷することをお勧めします。 ロボットの詳細な組み立て手順については、OTVINTA の Web サイトを参照してください。グリッパーを取り付ける前に、グリッパーのモーター位置を 1100us に初期化し、グリッパーを垂直に設置する必要があります。さらに、ラックを制御するモーターを2100usに初期化し、スライダーをロボット本体の端に合わせる必要があります(図を参照)。 […]


  • poll()

    poll()

    説明 Modbusパケットを受信して解析し、パケットアドレスに応じて対応するノードに送信します。 構文 gateway.poll() パラメータ gateway: ModbusGateway オブジェクト。 戻り値 int: 受信したModbusパケットの長さ。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <Modbus86.h> #include <Ethernet.h>   ModbusMaster bus; ModbusMasterNode node1; ModbusMasterNode node2;   ModbusGateway ゲートウェイ; […]


  • setTimeout()

    setTimeout()

    説明 タイムアウトを設定します。 構文 gateway.setTimeout(timeout) パラメーター gateway: ModbusGateway オブジェクト。 timeout: タイムアウトをミリ秒単位で設定します。poll フェーズでタイムアウトが発生した場合、EXCEPTION_CODE が Modbus Master に返されます。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include <Modbus86.h> #include <Ethernet.h>   ModbusMaster bus; ModbusMasterNode node1; […]


  • connect()

    connect()

    説明 このゲートウェイと、チャネルとノード番号に対応する ModbusMasterNode オブジェクトとの間の接続を確立します。 構文 gateway.connect(node) パラメータ gateway: ModbusGateway オブジェクト。 node: チャネルとノード番号に対応する ModbusMasterNode オブジェクト。 戻り値 bool: 成功した場合は true を返し、そうでない場合は false を返します。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <Modbus86.h> #include <Ethernet.h> […]


  • begin()

    begin()

    説明 ModbusGateway オブジェクトを初期化し、このオブジェクトと Modbus マスター間の通信モードを指定します。 構文 gateway1.begin(mode, serial) gateway2.begin(mode) パラメータ gateway1/gateway2: ModbusGateway オブジェクト。 mode: ModbusGateway オブジェクトと Modbus マスター間の通信モードを指定します。引数は MODBUS_RTU、MODBUS_ASCII、または MODBUS_TCP です。 serial: 伝送チャネルとして Serial クラスを指定します。 戻り値 bool: 成功した場合は true を返し、そうでない場合は false を返します。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <Modbus86.h> #include <Ethernet.h> […]


  • Modbus86 Gateway

    Modbus86 Gateway

    Modbus86 Gateway を使用すると、86Duino で Modbus マスター通信データを転送するゲートウェイである Modbus Gateway をシミュレートできます。 例 Modbusマスターとの通信方法としてModbus TCPを使用し、その通信データをModbus RTU上のノードに転送します。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include <Arduino.h> #include <Modbus86.h> #include <Ethernet.h>   ModbusMaster […]


  • readWriteMultipleRegisters()

    readWriteMultipleRegisters()

    説明 スレーブノードの保持レジスタの読み取りと書き込みを行うパケットコマンドを送信します。 構文 node1.readWriteMultipleRegisters(read_address, read_size, write_address, write_size) node2.readWriteMultipleRegisters(read_address, read_size) - パラメータの機能と使用法が異なります。詳細は例を参照してください。 パラメータ node1/node2: ModbusMasterNode オブジェクト。 read_address: 読み出す保持レジスタの開始アドレス。 read_size: 読み出す保持レジスタのサイズ。 write_address: 書き込む保持レジスタの開始アドレス。 write_size: 書き込む保持レジスタのサイズ。 戻り値 int: 成功した場合は MODBUS_SUCCESS を返し、それ以外の場合は EXCEPTION_CODE を返します。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 […]


  • maskWriteRegister()

    maskWriteRegister()

    説明 スレーブノードにパケットマスク演算命令を送信し、保持レジスタに書き込みます。演算式は次のとおりです。(Current_Contents AND and_mask) OR (or_mask AND (NOT and_mask)) 構文 node1.maskWriteRegister(write_address, and_mask, or_mask) パラメータ node1: ModbusMasterNode オブジェクト。 write_address: 書き込み先の保持レジスタのアドレス。 and_mask: "AND" ゲートマスクパラメータ。 or_mask: "OR" ゲートマスクパラメータ。 戻り値 int: 成功した場合は MODBUS_SUCCESS を返し、それ以外の場合は EXCEPTION_CODE を返します。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 […]


  • receive()

    receive()

    説明 ModbusMasterNode クラスのプライベート配列 readData のデータを返します。readData は、Read 関数コードを使用してスレーブデバイスのレジスタを読み戻した後に保存される配列です。 構文 node1.receive() パラメータ node1: ModbusMasterNode オブジェクト。 戻り値 uint16_t: ModbusMasterNode クラスのプライベート配列 readData のデータを返します。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include <Modbus86.h> […]