2018年10月11日

Arduino NANOで「デジタルインベーダー」の改良版を作ってみた

Aruduino でデジタルインベーダーを作っているときから思っていたのですが、赤色LEDを30分以上ずっと見ていると気分が悪くなってしまって長時間続けられないことがわかりました。対策として明るさ(Intensity)を変更する機能をつけたりしたのですが、長時間見ているのは辛くなってきました(5分程度でやめれば問題ないです)。

7セグLEDチューブに赤色以外の製品もあることはあるようなんですが、Amazonや秋月のような田舎者でも気軽に買えるストアには見つけられなかったので、以前使ったことのある OLED を使うことにしました。そうすると部品配置に必要な面積が減るので、Arduino NANO を使えばブレッドボードにぜんぶ載せて携帯版が作れるかもしれないと思い、やってみました。完成品がこちら。
IMG_4551.jpg

大型のブレッドボードを使い、中央に OLED ディスプレイ、左側に Arduino NANO、右側に操作ボタンを配置しました。128x64のピクセル数があるので、7セグLEDより格段に表現力が上がります。「push start button」という表記だけでもレトロ感があります。
20181011152144.png

スピーカーには、故障した玩具から取り出したピエゾ式の圧電スピーカーを使いました。サイズが小さいせいかピコピコ音も鋭い感じがします。
IMG_4555.jpg

マイコンには、これまでも何度か使った実績のある Arduino NANO(の廉価版)を使用しました。1個350円くらいだったと思います。USB接続でプログラムを書き込める(※注)し、リセットボタンも付いているし、ピンヘッダを自分でハンダ付けする必要はありますが、程よい大きさで使いやすいと思っています。
IMG_4553.jpg

(※注)注意点として、廉価版の Arduino NANO はシリアルドライバとして HC340 というICチップが使用されており、ドライバをインストールする必要があります。Windows10 には最初からドライバが搭載されているのでそのまま接続して使えるようです。

あと、ピンヘッダをハンダ付けするときは、ブレッドボードにピンヘッダを挿してその上に Arduino NANO を載せて、ブレッドボードに乗っている状態でハンダ付けしたほうが良いです。

プログラムの変更は、最初に作ったもののLED表示部分をOLED対応にすればよいのですが、表示部分を入れ替えるような設計になっていなかったのでちょっと苦労してしまいました。あとは、スピーカーの特性によって聞こえにくい音があったので変更したりしました。

一通り変更できたので書き込もうとしたら、、、エラーが発生してしまいました。
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x46
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x31
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x2c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x31
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x37
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x73
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x65
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x63


前回 Arduino NANO を使用したときは特にエラーもなく書き込めたはずなんですが、今回は何度やってもエラーになってしまい、悩みました。ググってみたところ、どうやら書き込みのタイミングに問題がありそうということがわかり、調査のために書き込み状況を表示してやってみたら、うまくいきました。

Arduino IDE のメニューから、[ファイル]→[環境設定] を選択すると表示される環境設定画面で、「より詳細な情報を表示する」の「書き込み」にチェックを付けてOKをクリックします。こうすると、Arduino NANOに書き込むときに進行状況が詳細に表示されるようになるのですが、どうやら、このためにタイミングがうまく合うようになったのではないかと思います。
arduino_ide.png

そのほか調整した点としては、Arduino UNO よりも処理速度が遅いせいか、時間調整の数値を変更する必要がありました。タクトスイッチのチャタリング防止のためのカウンタは、1/10程度の数字にしないと検出されないようでした。

やはり OLED でゲームを作ると、(LEDよりは)見やすいし、雰囲気も良いので、いい感じです。Arduino NANO + OLED のパターンで、昔流行したゲームウォッチみたいなゲームなら作れそうな気がします。

動作している様子を動画にしYouTubeにアップしました。


posted by はるこち at 19:00| Comment(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2018年10月10日

Arduinoで「デジタルインベーダー」を作ってみた

30年以上も昔の話ですが、当時、父親が買った電卓機能付き腕時計に「デジタルインベーダー」が入っていて、夢中になって遊んでいました。最近、カシオの電卓にデジタルインベーダーが復刻されたという記事を見まして、懐かしさから作ってみることにしました。

ルールについてはググればいろいろと出てくるのですが、地元で展示する機会があったので子どもたちにも遊んでもらいやすいようアレンジを加えて下記のようにしました。最近のゲームはすぐに何万点とか何百万点とかになってしまうので、逆に1桁単位で増えていくのも面白いかと思って少ない点数になるようにしました。
・遠い方から6点、5点、4点、3点、2点、1点
・UFO「n」は、どこで当てても10点
・自機は1機(オリジナルは3機だったはず)
・50点とるごとに速くなる
20181010234040.jpg

マイコンは、以前購入した Arduino UNO R3(の互換機)を使いました。正式な Arduino は Amazon でも3,240円しますが、互換機は1個500円くらいなので気軽に使うことができ、配線を間違えて壊してしまったとしてもダメージは少ないです。ただし不良品が混ざっている可能性があるので、予備も合わせて注文しておいたほうが良いかもしれません。
IMG_4546.jpg

表示部分は MAX7219 というICチップで制御されたLEDチューブを使用しました。これも廉価品で、Amazonで2個600円程度で購入しました。念のため2セット買っておきました。今回の「デジタルインベーダー」では2個使っていて、1個目がハイスコアとスコア表示、2個目がゲーム画面になります。8桁表示が可能なもので、ゲーム画面は照準選択1桁、自機残数1桁、敵が攻めてくるエリア6桁、という構成になります。
IMG_4548.jpg

MAX7219 でググったところ、LedControlというライブラリを使用するのが良さそうです。最も参考にさせていただいた記事は下記です。ありがとうございました。
Arduino+MAX7219で8桁7セグLEDを簡単に扱う - Qiita
この記事で紹介されている LEDControl のリンク先は下記のとおりです。
LedControl
ライブラリ概要
GitHub - wayoda/LedControl

LEDチューブを使うには LedControl のオブジェクトを作成してピン番号を割り当てます。
LedControl lc1=LedControl(12, 11, 10, 1);

12 → DataIn
11 → CLK
10 → CS/Load
5V → VCC
GND → GND
それぞれのピンとピンを接続します。4つ目の引数の1はディジーチェーンされているユニットの個数で、今回はディジーチェーンしていないので1を指定しています。(サンプルでは8が指定されていますが、起動時に接続されているユニット数をチェックして正しい数値で動作するので常に8を指定していても良いみたいです)

今回の「デジタルインベーダー」ではLEDチューブを2個使うので、ディジーチェーンで接続して16桁のチューブとして使用することもできるのですが、物理的な配置の都合でそれぞれ別々の制御とすることにしました。2個めの LedControl には、続きの 9, 8, 7 ピンを使用することにしました。
LedControl lc1=LedControl(12, 11, 10, 1);
LedControl lc2=LedControl(9, 8, 7, 1);

配線については基本的にジャンパ線を使用しました。メインのLED表示制御は、Arduinoの12,11,10をLED2に、9,8,7をLED1に接続、それぞれVCCとGNDを5VとGNDに接続します。ゲームに使用するタクトスイッチをブレッドボードに取り付け、3つのスイッチをD4,D3,D2に接続しました。展示するとき周囲の明るさによって見えにくくなりそうだったので、可変抵抗を入れてArduinoのアナログポートで値を読み取り、LedControl を介してLEDの明るさを調節できるようにしました。

LEDチューブの接続には落とし穴があり、配線自体は簡単だったのですが表示がおかしくなってしまう事態が繰り返し発生してしまい悩みました。突然表示が消えてLEDの最大輝度で全セグメントが点灯し続ける(テストモードになってしまったと思われます)、またはメチャクチャな場所のLEDが点灯し文字にならなくなってしまうという状況でした。

MAX7219のデータシートにはリップルノイズ対策として10μFの電解コンデンサと0.1μFのセラミックコンデンサを入れると記述があるという情報があったので入れてみましたが、変わりませんでした。LEDチューブの不良やArduino自体の不良まで疑ったのですが、LEDチューブやArduinoを交換してみても現象はおさまらず何日もたってしまいました。

LEDチューブをよく見てみると、信号を入力するのとは反対側(写真では右側)にディジーチェーンで接続するための信号線が出ていてVCCとGNDがあります。ここから次のユニットへ電気が渡されていくのだろうと考えていたのですが、ふと、このVCCとGNDにも5VとGNDを接続してみたところ、おかしな表示がピタリとおさまりました。
IMG_4549-2.jpg

ゲームを操作するためのタクトスイッチはカラフルなカバーがついたものを使用しました。いちおうここでは、青がスタート、緑色が照準、赤が発射、という役割にしています。
IMG_4549.jpg

音の再生はD13ポートからtone()関数を使用して出力します。たまたまD13が空いていたのでここにピエゾ式の圧電スピーカーを接続しました。ピコピコという音がチープなゲームにマッチしていて良い感じです。展示会対応として音量を調整できるよう可変抵抗を直列に接続しました。
20181010234044.jpg

次にプログラムです。まずは LedControl を使用するための設定をします。[スケッチ]→[ライブラリをインクルード]→[ライブラリを管理]と選択するとライブラリマネージャ画面が表示されますので、「検索をフィルタ」のところに ledcontrol を入力して LedControl を探します。見つかったら LedControl の欄をクリックすると[インストール]ボタンが表示されますので、クリックします。これで LedControl が使えるようになります。

ソースコードでは先頭部分にヘッダファイルのインクルードを書きます。
#include "LedControl.h"

そうしたら、void setup() の中で初期化します。電源投入時はシャットダウンモード(データは保持しているがLEDを点灯させないモード)なので、まずは lc1.shutdown(0, false); としてシャットダウンモードを解除します。lc1.setIntensity(0, 8); はユニットの明るさを8(中間くらい)にします。lc1.clearDisplay(0); でLEDの表示内容をクリアします。
lc1.shutdown(0,false);
lc2.shutdown(0,false);
lc1.setIntensity(0, 8);
lc2.setIntensity(0, 8);
lc1.clearDisplay(0, 8);
lc2.clearDisplay(0, 8);

ハイスコア等の数字を表示するとき右詰めにして桁揃えさせた状態で表示したかったので、桁に対応する数値で除算して余りを取得し、桁ごとに表示するようにしました。具体的には下記のようなコードになりました。9999以上の数字が表示できないようになっていますが、実際ゲームで遊んでみると、どんなに頑張っても200点ちょっとまでしかいかない感じでしたで、これだけあれば大丈夫だと思います。
void disp_myscore() {
int dvalue = myscore;
if(dvalue > 9999) dvalue = 9999;

lc2.setDigit(0, 0, (dvalue % 10), false);
if(dvalue >= 10){
lc2.setDigit(0, 1, (dvalue / 10) % 10, false);
}else{
lc2.setRow(0, 1, LED_EMPTY);
}
if(dvalue >= 100){
lc2.setDigit(0, 2, (dvalue / 100) % 10, false);
}else{
lc2.setRow(0, 2, LED_EMPTY);
}
if(dvalue >= 1000){
lc2.setDigit(0, 3, (dvalue / 1000) % 10, false);
}else{
lc2.setRow(0, 3, LED_EMPTY);
}
}

タクトスイッチ検出は digitalRead(PinNo) を使用しますが、INPUT_PULLUP を指定してプルアップ抵抗の実装を省略しています。1回押すごとに1回発射するという動きにするために下記のような関数を作成して1回押されたことを検出しています。
数値として指定している200の部分は、実際に動かす環境によって適切な値が変わってくるので適宜調整してください。数値が小さいとチャタリング(1回押したのに何度も反応する)ぽくなったり、数値が大きいと押されたことが検出されなくなったりします。
boolean pushed(int pin) {
long gauge = 0;
while (!digitalRead(pin)) gauge++;
if(gauge > 200) return true;
return false;
}

ゲーム自体の作りとしては、敵が攻めてくるエリアを enemy[0]〜enemy[5] までの配列として確保し、普通の敵は 0〜9 の数字をそのまま格納、なにもない空間は -1、UFOは -2 としました。Timer2 を使用して一定時間ごとに1桁ずつ左にずれるようにし、新しく出現する敵は乱数で選択するようにしました。オリジナルでは、普通の敵が10個出現するとUFOが出てくるようになっているようなのですが、今回はUFOも乱数で選択されて出てくるようになっています。

自機の照準選択状態を変数として保持し、ボタンが押されたときに配列内の数字と照合して一致するものがあれば消して配列を詰めます。場所によって点数を判定してスコアに加算し、UFOの場合は特別な音を出すようにします。

ゲームオーバーの判定は敵が攻めてくるエリアの左端に数字が入っている状態になったかどうかで判定します。LEDを点滅させてゲーム終了時の簡単な音楽を流し、自分のスコアがハイスコアを超えていたら更新します。ゲームオーバー時の曲といえば葬送行進曲、ということで葬送行進曲をアレンジして入れてあります。

メイキングおよび動作状況がわかる動画を YouTube にアップしました。
posted by はるこち at 19:00| Comment(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2014年09月22日

Raspberry pi

Amazonで注文しておいた Raspberry PI が届きましたので、さっそく開封してみました。可愛い箱に入ってきましたが、やはり小さいですね。Arduino と同じくらいか、ちょっと小さいくらいではないかと思います。
raspberry_pi_01.jpg

ディスプレイはビデオ出力かHDMIということなんですが、そういう映像を表示できるテレビが自宅にはリビングにしかないので、表示できるものを何か探さなければならなそうです。いったんOSが入ってしまえば、あとはネットワークからログインしてアレコレできるんじゃないかと思ってるんですが。。。
raspberry_pi_02.jpg

ちなみにOSは Raspbian という、Debian系のものを入れるのが一般的らしいです。まずはSDカードにOSイメージをコピーするところから始めます。
OSのダウンロードはこちらから。
http://www.raspberrypi.org/downloads/

WindowsパソコンからSDカードにOSイメージを書き込むためには下記のツールを使用します。
Win32DiskImager



Raspberry Pi Type B 512MB
posted by はるこち at 12:43| Comment(0) | TrackBack(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2014年09月05日

ロボット農機具

最近は農業分野でもロボット化の研究は進んでいます。YouTubeにアップされているロボット農機具の動画を見ても、実用できるのではないかと思ってしまうくらい良くできていると思います。残る問題は価格くらいということなのでしょうか。YouTubeでちょっと検索してみて、目についた動画を紹介したいと思います。


これは無人トラクターで代掻き作業を行なっているところです。田んぼの端まで来たらUターンする必要があるのですが、ちょっとだけバックして、ロータリーを下げてターンしていく様子がわかります。


こちらは無人田植機による田植え作業の様子です。いきなり田んぼの真ん中から植え始めるという実際にはあまりないやり方ですが、ちゃんと端から植えることもできると思います。


こちらは無人コンバインによる収穫作業です。コンバインは車体が大きいので無人で迫ってくると迫力があります。


通常はコンバインによる収穫の区切りがついたところでトラックに積み替えるのですが、この映像では収穫作業と並行して積み替えを行なっています。トラックは人間が運転していて、スマホで排出機構(オーガ)を操作するんだそうです。


こちらは北大での無人トラクター研究の一環ですが、有人トラクターの後ろに無人トラクターが追従して協調して作業を行うことができます。完全無人化よりは現実味がある感じがします。
posted by はるこち at 09:18| Comment(0) | TrackBack(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2014年07月31日

ロボット工作ガイドブック

ロボコンの入門では避けて通れないというか、むしろ積極的に使うと色々捗るタミヤ工作パーツを使用した作例が多く紹介されているガイドブックです。

タミヤ工作パーツで作るロボット工作ガイドブック (RoboBooks)
posted by はるこち at 13:32| Comment(0) | TrackBack(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2014年05月23日

Arduinoでタイマーっぽいものを作ってみた

ArduinoUNOを使って、今日はタイマーっぽいものを作ってみました。先日ブレッドボードに12個のLEDを乗せて光らせてみたのですが、そのLEDをあやつる感覚を楽しめるようなものを考えました。

完成した様子はこんな感じです。
IMG_5099S.jpg
青い可変抵抗をまわすとLEDが1個〜10個までの間で点灯したり消えたりします。LEDの数が計測する時間の長さを表していて、タクトスイッチを押すと計測が始まります。時間を計り終えると圧電ブザーが鳴るようにしました。
IMG_5100S.jpg

スケッチは少々複雑になりましたが、設定モードと計測モードの2つのモードを持っていて、設定モードのときタクトスイッチを押すと計測モードに入り、計測モードが終了したら(設定した時間が経過したら)設定モードに戻るようにしました。

設定モードでは可変抵抗の値(0〜1023)を10段階の値に変換し、点灯するLEDの数を決めています。
IMG_5101S.jpg
タクトスイッチが押されたら、そのときのLEDの数を初期値としてカウントダウンを始めます。すぐに終わってしまってはつまらないですし、かといって時間がかかりすぎても退屈してしまうので、LED1個あたり10秒かぞえることにしました。
数えているときは端のLEDが点滅するようにし、点滅しながら圧電ブザーからピッコッピッコッという音が出るようにしました。

プログラム内ではdelay()を使ってタイマーっぽく動かしているのですが、本当は割り込みを使わないと正確な時間は計れないと思うので、近いうちに割り込みも使ってみたいと思います。

スケッチは下記のような感じです。
int val = 0;
int mode = 0; //0=setup 1=run
int time = 0;
int sec = 10;
int bPin = 3;
int sPin = 2;
int vPin = A0;
void setup(){
Serial.begin(9600);
for(int i = 4; i <=13; i++){
pinMode(i, OUTPUT);
}
pinMode(bPin, OUTPUT);
pinMode(sPin, INPUT_PULLUP);
}

void loop(){
if(mode == 0){
val = analogRead(vPin);
time = 11 - (val / 100);
showled(time);
delay(100);

if(digitalRead(sPin) == LOW){
mode = 1;
sec = 10;
tone(bPin,3520,100);
delay(1000);
}
}

if(mode == 1){
showled(time - 1);
tone(bPin,1760,50);
delay(450);
showled(time);
tone(bPin,880,50);
delay(450);
sec = sec - 1;
if(sec == 0){
sec = 10;
time = time - 1;
if(time == 0){
mode = 0;
showled(10);
tone(bPin,880,2000);
}
}
}
}

void showled(int time){
for(int i = 1; i <= 10; i++){
int pin = i + 3;
if(i <= time){
digitalWrite(pin, HIGH);
}else{
digitalWrite(pin, LOW);
}
}
}
posted by はるこち at 23:20| Comment(0) | TrackBack(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2014年05月20日

Arduinoモーターシールドを使ってみた

Arduino純正のモーターシールドを購入したので使ってみました。DCモーターなら2個制御できるとのことですので、それを左右の車輪に使うようにして好きな方向に進めるクルマを作ります。

車体は簡単なもので、ギヤボックスを2個用意してモーターと車輪をつけます。モーターからの配線はモーターシールドのコネクタ部分に接続します。プラスとマイナスがありますが、良くわからないので適当につけておいて、後で逆だったら付け直すという作戦でいきます。

モーターシールドには長いピンが出ていますので、それをArduino UNOに接続します。斜めにならないよう、ちょっとずつジワジワと挿入しました。

車体となるユニバーサルプレートにギヤボックスとキャスターをつけて車体は完成です。電源はスマホ充電用のモバイルバッテリーを使うことにしました。モーターシールド付きのArduinoを車体に乗せますが、とりあえず乗ればよいので輪ゴムでとめました。

こんな感じになりました。
IMG_5084S.jpg

どちらが前なのかわかりませんが、私のイメージでは黒いタイヤが見えているほうが前のつもりです。
コネクタブロックに接続するだけなので、配線は4本だけで済みました。
IMG_5085S.jpg

裏面はこんな感じ。ロボコンの余り部品を使ったのであまり綺麗にまとまっていませんが、とりあえず動くレベルになりました。
IMG_5086S.jpg

Arduinoのスケッチは QooSky さんのサイトを参考にしました。
Motorシールドを用いたDCモータの制御方法 (Arduino)

何の問題もなく動作しました。ただこれはサンプルなので前へ行ったり後ろへ行ったり往復するだけなので、今度はスケッチに手を入れてもうちょっと複雑な動きをさせてみたいところです。

次の目標はセンサーを載せて、障害物を避けながら進むようにしてみたいと思います。
posted by はるこち at 22:26| Comment(0) | TrackBack(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2014年05月16日

Lチカ(LEDチカチカ)に挑戦

本当はモーターを動かして何か車のようなものを動かしたいのですが、まだ入門の身なのでそこは我慢して、LEDをチカチカさせるところからやってみます。

参考にした書籍はこれ。


IDE(開発環境)をダウンロードしてインストールして、Android UNO を接続してみます。なぜかうまく認識されないようです。私の場合は、ここでパソコンを再起動させたらうまくいきました。

まずはArduino UNOのボード上にあるLEDを光らせるところから始まります。書籍のサンプルプログラムでは1秒ごとに明滅を繰り返すようになっているのですが、私が購入したArduino UNOには最初からそのプログラムが読み込まれているようで、何もしなくてもLEDが1秒毎にチカチカしていました。

それで、とりあえずプログラムを転送してみようと「→」ボタンをクリックすると、「avrdude stk500_getsync(): not in sync resp=0x30」というエラーメッセージが表示されてしまいました。最初はこれがエラーメッセージとはわからず、ボード上のLEDも点滅しているので成功しているのか失敗しているのかわかりませんでした。

プログラム(スケッチ)を修正して点滅の周期を短くしてみましたが、エラーメッセージが表示されているためか、LEDの点滅状況は変わりませんでした。ググってみると、このエラーはCOMポートの接続がうまくいっていないときに表示されるものらしいので、USBケーブルをいったん抜いて、挿しなおして、IDEを立ち上げなおして、それでやってみたら、うまくいきました。

次は、ブレッドボードを取り出して抵抗とLEDを差し込んだ回路を作ってみます。
IMG_5016S.jpg
とりあえずこんな感じになりました。
ピン番号13というのは、ボード上のLEDと13というピンの両方につながっているということなんですね。

書籍では抵抗は1kΩ程度と書かれていましたが、ちょっと暗い気がするのでエントリーキットに入っていた抵抗の中から510Ωを選んで、それに差し替えました。
IMG_5015S.jpg

やはりLEDが1個ではちょっとさみしいので、赤色LEDを4個使ってみました。
IMG_5014S.jpg

ピン番号13だと、ボード上のLEDと同時に点滅するのが目障りだったので、12,11,10,9の4本のピンを使うことにしました。しばらくはLチカで遊んでみます。

Arduino は、プログラム(スケッチ)を1回転送すると、電源を切っても覚えているようです。だから次回USBケーブルを接続すると、何もしなくてもプログラムが走り始めます。USBケーブルから電源を得て目覚めたという感じです。

試しに、iPhone用に購入したモバイルバッテリーを接続してみたら、問題なく動作しました。パソコンがないところで動作させるためにACアダプタ等を購入するのは面倒だなと思っていたのですが、モバイルバッテリーが使えれば多少は楽になりそうです。
IMG_5017S.jpg
posted by はるこち at 23:08| Comment(0) | TrackBack(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

2014年05月14日

Arduinoに挑戦

Arduinoというワンボードマイコンのようなデバイスがあります。
プログラムをダウンロードすることができて、各種センサーを使ってデータを取得したり、モータードライバを使ってモーターを動かし、自作の装置を動かすことができたりするそうです。

今まではウェブの記事などを見ているだけでしたが、ついに Arduino UNO を購入してみました。
色々な部品がセットされていてお得な感じがしたので、スターターキットというものを購入しました。


実はまだ動かしていなくて、最初からモーターを動かしたいと思っていろいろ調べていました。
調べたところ、モーターを動かすためにはモータードライバというものが必要で、必要な部品がまとめられたモータードライバシールドというものがあるそうです。


サーボモーターは普通のモーター(DCモーター)とは違う方法で制御するようです。下のものは小型のためかArduinoから直接動かせるみたいです。
posted by はるこち at 11:07| Comment(0) | TrackBack(0) | ロボット/IoT | このブログの読者になる | 更新情報をチェックする

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。