三輪ロボット
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
三輪ロボットは、教育用に設計された簡単に組み立て可能でGrove互換のDIYロボットプラットフォームです。このキットには、ガイドラインに従って簡単に組み立てられる電子部品と構造部品が含まれています。三輪ロボットは3層構造で、2層目と3層目の間に5つの支柱があります。3層目にはネジとナットを使用して多くのモジュールを固定することができます。
さらに、Arduinoボードやブレッドボードをロボットの中心として2層目に固定することができ、各支柱には1~2個のプラグアンドプレイ対応のGroveモジュールを固定することができます。これにより、RGB LEDや超音波Groveモジュールなどの機能を強化できます。三輪ロボットの電源電圧は、12Vのバッテリーホルダーによって供給されます。
このキットには**コントローラーとモータードライバーは含まれていません**。
特徴
- マルチプラットフォーム対応
- Grove互換の支柱
- 簡単に組み立て可能
- RF/BLE/Wi-Fi制御オプション
部品リスト
部品名 | 仕様 | 数量 |
---|---|---|
車輪 | Ф64mm*W30mm | 2 |
減速DCモーター | / | 2 |
自由車輪 | 49*32*22mm | 1 |
バッテリーホルダー | 62*58*30mm | 1 |
結束バンド | 20.5*31.8mm | 1 |
底板(1層目) | 220*155*3.8mm | 1 |
中板(2層目) | 220*155*3.8mm | 1 |
上板(3層目) | 160*158*3.8mm | 1 |
前支柱 | 62*56*3.8mm | 1 |
側面支柱 | 62*31*3.8mm | 4 |
リベット_1 | R3090 | 4 |
スタンドオフ_2 | M3*22 | 6 |
スタンドオフ_3 | M3*55+6 | 4 |
ネジ_4 | PM3*8 | 14 |
ネジ_5 | PM3*25 | 4 |
ナット_6 | M3*2.3 | 6 |
リベット_7 | R2064 | 15 |
ネジ_8 | KM2*10 | 15 |
ナット_9 | M2*1.5 | 15 |
レンチ | / | 2 |
ドライバー | / | 1 |
このキットにはArduino/Genuino 101およびブレッドボードは含まれていません。
組み立て手順
三輪ロボットには、Arduino、Raspberry Pi、BeagleBoneなど、好きなボードを取り付けてこのロボットプラットフォームを駆動することができます。また、DCモーターやGroveモジュールを駆動するために、モーターケープやGroveケープが役立ちます。
選択肢が多いため、ここではArduino、Raspberry Pi、BeagleBoneの中から適切なボードを選ぶ方法を紹介します。
Arduinoでの使用
Arduinoは、その使いやすいハードウェアとソフトウェアで最も有名なオープンソースのプロトタイピングプラットフォームです。Arduinoを使えば、楽しく創造的なロボットカーを簡単にDIYできると信じています。また、Arduino用のGroveモジュールが豊富にあるため、LEDエフェクト、障害物検知、リモートコントロール(RF/Bluetooth/Wi-Fi)など、ロボットカーの機能を簡単に拡張できます。
###Seeeduino V4.2 Seeeduino v4は、オープンソースでArduino互換のATmega328 MCU開発ボードです。Seeeduino v4は、最も優れたArduino派生製品/互換製品の1つだと考えています。Seeeduino v4は、機能が豊富で、非常に安定しており、使いやすく、見た目も良いです。
###Motor Shield V2.0 Motor Shieldは、モーターの動作速度と方向をArduinoで制御できるドライバーモジュールです。

Base Shield v2は拡張ボードとして、多くのGroveコネクタを備えており、Groveモジュールを一緒に使用するのに便利です。また、Arduino製品のシリーズと互換性があります。

推奨Groveモジュール
W2812B LEDストリップ | 超音波センサー | ラインファインダー |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入! | 今すぐ購入! | 今すぐ購入! |
ブザー | シリアルRF | シリアルBluetooth |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入! | 今すぐ購入! | 今すぐ購入! |
[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)をクリックして、利用可能なモジュールをさらに確認してください。
Raspberry Pi を使う
Raspberry Pi は現在最も人気のあるシングルボードコンピュータの1つであり、Arduino よりもはるかに強力な計算性能を持っています。Raspberry Pi は非常に人気があるため、多くの面白いプロジェクトのチュートリアルを簡単に見つけることができます。
Raspberry Pi 3 には統合された 802.11 b/g/n ワイヤレス LAN、Bluetooth クラシカルおよび LE が含まれています。これにより、ワイヤレス化のために追加の周辺機器は必要ありません。Raspberry Pi 1 の10倍の性能を持っています。

###Raspberry Pi Motor Board v1.0
Raspberry Pi Motor Board を使用すると、Raspberry Pi で2つの DC モーターを駆動し、それぞれの速度と方向を独立して制御することができます。

###GrovePi+
GrovePi+ は Grove モジュールを Raspberry Pi に接続するためのシステムです。新しい Raspberry Pi Model B+ および Model A+ をサポートするように設計されています。

推奨モジュール
USB Webcam | OLED Display | GPS Module |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入! | 今すぐ購入! | 今すぐ購入! |
[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/) をクリックして、利用可能なモジュールをさらに確認してください。
BeagleBone ボードを使う
BeagleBone もまた、人気のある Linux シングルボードコンピュータの1つです。Raspberry Pi と比較すると、BeagleBone は Grove モジュールのプログラミングにおいて Mraa および UPM ライブラリを使用するための利点があります。
SeeedStudio BeagleBone Green Wireless は BeagleBone Black のオープンソースハードウェア設計に基づいていますが、高性能で柔軟な WiFi/Bluetooth インターフェースを備えており、BBGW Wi-Fi Car のようなリモートコントロールの開発を容易にします。

Motor Bridge Cape は、6~15V DC 電源とモーターごとに約1Aの電流で、2つのステッピングモーターまたは4つのブラシ付き DC モーターを制御できます。また、6つのサーボ制御インターフェースと6つの拡張 I/O を備えており、ロボットカーにもう1つロボットアームを追加することも可能です。

###Grove Base Cape for BeagleBone v2
Grove Base Cape for BeagleBone v2 は、BeagleBone プラットフォーム用の Grove システム拡張ボードです。このケープを使用すると、Grove モジュールとして利用可能な多くのトランスデューサ(センサーおよびアクチュエータ)を BeagleBone プラットフォームに簡単に接続できます。

推奨 Grove モジュール
USB WEBCAM | W2812B LED STRIP | IMU 9DOF |
---|---|---|
![]() | ![]() | |
今すぐ購入! | 今すぐ購入! | 今すぐ購入! |
OLED DISPLAY | DIGITAL LIGHT SENSOR | GPS MODULE |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入! | 今すぐ購入! | 今すぐ購入! |
[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/) をクリックして、利用可能なモジュールをさらに確認してください。
シンプルな例
以下は、Arduino UNO を使用して三輪ロボット(Tricycle Bot)を作成するシンプルな例です。
必要なもの
- Arduino UNO *1
- Motor Shield V2.0 *1
- Base Shield V2 *1
- Digital RGB LED Flexi-Strip *1
- Grove - Ultrasonic Ranger *1
- Grove - Buzzer *1
組み立て

- 三輪ロボットを組み立てます。
- Grove モジュールを側面と上部プレートに固定します。
- Grove Buzzer を D4、Grove Ultrasonic Ranger を D5、LED ストリップを D6 に Base Shield 経由で接続します。
- 完成です!

動作
こちらがこのシンプルな例の動画です。
- このデモ用三輪ロボットカーは、前方の障害物を検知し、距離が 35cm 未満の場合に方向転換を行います。
- 車が直進している間は LED ストリップが青く点滅し、方向転換中は LED ストリップが赤く点滅し、Grove Buzzer が警告音を鳴らします。
コーディング
- Motor Shield V2、Grove - Ultrasonic Ranger、および LED Strip の Arduino ライブラリをダウンロードしてください。
/*
* TricycleBotDemo.ino
*
* 三輪ロボット用のシンプルなコード
*
* Copyright (c) 2016 Seeed Technology Limited.
* MIT ライセンス
*
*/
#include "MotorDriver.h"
#include "Adafruit_NeoPixel.h"
#include "Ultrasonic.h"
#define BEE 4
#define LEDPIN 6
#define LEDNUM 10
#define PIXELS_SPACE 128
#define BRIGHTNESS 150
#define DistanceCM 35
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDNUM, LEDPIN, NEO_GRB + NEO_KHZ800);
MotorDriver motor;
Ultrasonic ultrasonic(5);
void setup() {
// 初期設定
pinMode(BEE, OUTPUT);
strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show();
motor.begin();
pixelStart();
}
void loop() {
// メインループ
long RangeInCentimeters;
RangeInCentimeters = ultrasonic.MeasureInCentimeters();
if (RangeInCentimeters < DistanceCM) {
turnRight();
beep();
pixelState2();
}
else {
goStraight();
pixelState1();
}
delay(100);
}
void goStraight() {
motor.speed(0, 100);
motor.speed(1, 100);
}
void turnRight() {
motor.speed(0, -100);
motor.speed(1, 100);
}
// 直進時の LED 表示
void pixelState1() {
for (uint32_t t = 0; t < (PIXELS_SPACE * LEDNUM); ++t) {
for (int i = 0; i < (LEDNUM / 2); i++) {
strip.setPixelColor(((LEDNUM / 2) - i -1) , triangular_color((t + i * PIXELS_SPACE) % (PIXELS_SPACE * LEDNUM)));
strip.setPixelColor(i + 5, triangular_color((t + i * PIXELS_SPACE) % (PIXELS_SPACE * LEDNUM)));
}
strip.show();
}
}
// 右折時の LED 表示
void pixelState2() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < LEDNUM; j++) {
strip.setPixelColor(j, 250, 0, 0);
strip.show();
}
delay(50);
for (int j = 0; j < LEDNUM; j++) {
strip.setPixelColor(j, 0, 0, 0);
strip.show();
}
delay(50);
}
}
void pixelStart() {
for (int i = 0; i < LEDNUM; i++) {
for (int j = 0; j< 255; j++) {
strip.setPixelColor(i, 0, j, 0);
strip.show();
}
delay(50);
}
}
uint32_t triangular_color(uint32_t t) {
uint32_t c = 0;
if (t < 256) {
c = strip.Color(0, 0, t);
} else if (t < 512) {
c = strip.Color(0, 0, 511 - t);
}
return c;
}
void beep() {
digitalWrite(BEE, HIGH);
delay(100);
digitalWrite(BEE, LOW);
}
添付ファイル
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご提供しております。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。