スポンサーリンク

スイッチをONしたらOFFするロボットの作り方

スイッチをONしたらOFFするロボット DIY, Lifehack

このロボット知ってますか?
ニコニコ動画とかYouTubeで一時期話題になったロボットで、まさにスイッチをONしたらロボットがOFFしてくる玩具みたいなものです。
先日Arduinoの入門キット買って、Arduinoについてちょっと勉強してみました。Arduinoを使えば簡単に作れるんじゃないかなぁと思って作ってみたので、作り方公開します。




スポンサーリンク

スイッチをONするとOFFするロボット(Useless Box)

全力でスイッチをONするとOFFするロボットと戦ってみた
全力でスイッチをONするとOFFするロボットをいじめてみた

これが過去にニコニコ動画で話題になったやつ
「全自動ひきこもり機」とも呼ばれているみたい



Useless Box Kit from ThinkGeek

こちらが海外版
海外では「Useless Box」と呼ばれています。



DON'T TOUCH BOX !!! by Sally71 (my shop: www.sally71.com)

今回、こんな感じのものを作ります。


スポンサーリンク

電子部品材料

必要な電子部品のアマゾンとAliExpressの商品リンクも併せて載せてあります。
私はAliExpressから購入しました。Aliの商品リンクは全て同じストアですのでまとめてカートに入れて注文すれば送料が割引になります。
AliExpressは中国からの発送になります。輸入が不安な場合はアマゾンが早くて安心です。

Arduino Nano
 数量:1
 
 ※ピンが半田付けされていないタイプ
 公式のArduinoは高いので互換品を使いました。


サーボモーター
 数量:2
 型式:SG90(樹脂ギア)又は MG90(メタルギア)

 値段が変わらないのでMG90がおすすめ


トグルスイッチ
 数量:1
 型式:MTS-102


 他の型式でももちろん問題ありません。私が実際に使ったものがこちら


リード線
 数量:少々

 


収縮チューブ
 あると便利

——————以下はオプション(必須ではありません)——————-

◆LED
 必要に応じて、LEDを光らせたい数


◆抵抗
 220Ω、LED点灯用
 





スポンサーリンク

箱を作る材料

木箱

私はカナダの100円ショップで売ってるような画像の木箱を使ってみました。
同じものは手に入らないと思いますので、似たような箱を買って使うか木材やアクリル板等材料から箱を作ったり、アイデア次第。



3Dプリンターで作る箱

現在、3Dプリンターで箱を作れるようにデザインして、印刷しては修正してを繰り返しながら3Dモデルを作っています。

完成しましたら皆さんがプリントできるようにこの3Dモデルのデータを公開するつもりです。お待ちください。


追加記事を書きました↓

スポンサーリンク

Arduino Nanoの動作確認

Arduino Nano 動作確認

いきなり半田付けして回路を作り出しても良いのですが、Arduino Nanoの基盤が正常に動かなかったら苦労が水の泡になります。

半田付けする前に、USBを接続して電源が入るか確認。

新品のボードは動作確認用にLチカのプログラムが入っていますので、USBをつなげると電源が入って基盤上のLのLEDが点滅します。

スポンサーリンク

電気回路を作る

電気回路図

今回、私が作ったものの接続図がこちら。
Lid(蓋)とHand(手)のサーボモーター、全面に取り付けるトグルスイッチとトグルスイッチをONしたら点灯するLEDの構成です。

電源はUSBからの給電にしました。電池式にしようと思ったのですが、アルカリ電池では電流が足りず動きませんでした。リチウムイオン電池なら動きますので電池式にしたい場合はお気を付けください。

スポンサーリンク

Arduinoへプログラミング

Arduino IDEをパソコンへインストール

AruduinoのプログラミングにはまずArduino IDEというソフトをインストールします。

Aruduino IDEのインストール方法、使い方については省略。

互換品のAruduinoを使用する場合はCH340ドライバをインストール

上記リンクで紹介している安い互換品のArduinoを使用する場合はシリアル通信チップとしてCH340という物が使われています。パソコンとAruduinoをUSBで通信させるために以下のドライバをインストールしてください。

CH340 Driver for Windows ダウンロード

CH340 Driver for Mac ダウンロード



プログラムコード

私が作成した試作プログラムコードが以下になります。
コピー&ペーストで使用して頂いて構いません。

//2020.08.31 useless box ver1.1
#include <MsTimer2.h>
#include <VarSpeedServo.h>
VarSpeedServo hand;  // サーボの変数設定
VarSpeedServo lid;

int led1 = 2; //LED1を2番ピンに指定
int sw1 = 12; //スイッチを12番ピンに指定

int opendelay; //蓋開けディレイ時間(*100ms)
int a = 5;
int closedelay; //蓋閉めディレイ時間(*100ms)
int b = 15;

int lidhome = 180; //蓋サーボモーター原位置角度
int handhome = 180; //手サーボモーター原位置角度
int lidon = 100; //蓋サーボモーターON時角度
int handon = 0; //手サーボモーターON時角度





void setup() {
  // put your setup code here, to run once:

/*サーボモーター設定*/
Serial.begin(9600);
hand.attach(6); //手のサーボモーター5番ピン
lid.attach(5); //蓋のサーボモーター6番ピン

/*スイッチ・LED設定*/
pinMode(led1, OUTPUT);
pinMode(sw1, INPUT_PULLUP);


/*サーボモーター原点出し*/
 lid.write(lidhome, 60, false); 
 hand.write(handhome, 30, true);

/*タイマーカウント設定*/
MsTimer2::set(100, Lidtimer);
MsTimer2::start();
//100msごとにLidtimeを呼び出し、タイマスタート
}







void Lidtimer() {  //100ms毎にここが呼び出される
  opendelay++; //蓋開けディレイ時間+1
  closedelay++; //蓋閉めディレイ時間+1
}








void loop() {
  // put your main code here, to run repeatedly:


 if(digitalRead(sw1) == HIGH){
  digitalWrite(led1, HIGH);

  if(opendelay > a){
  lid.write(lidon, 100); 
  hand.write(handon, 100);
  
  closedelay = 0;
  }
 }


 if(digitalRead(sw1) == LOW){
  digitalWrite(led1, LOW);
  hand.write(handhome, 50);
  
 if(closedelay > b){
  lid.write(lidhome, 60);
  opendelay = 0;
  }

 }
}

今後、数パターンの動きを作る予定です。完成したら本ブログで公開します。


このプログラムに使用されているライブラリ

本プログラムにはMsTimer2、VarSpeedServoの2つの追加ライブラリを使用しています。
プログラム書き込み前に以下よりライブラリデータをダウンロードして

{Aruduino IDE インストール先}/libraries/

にライブラリデータを保存してください。

スポンサーリンク

木箱でUseless Boxの試作

箱の製作

木箱を分解

買ってきた木箱をそのまま使おうとすると、深さが足りなかったので一度カッターナイフで切り込んで分解。

アイスの棒で蓋を作る

こんな感じでコツコツ集めているアイスの棒で蓋を作ります。

アイスの棒をカット

アイスの棒はノコギリとかではなくて、万能ばさみで切ると綺麗に簡単に切断可能。


蓋完成

木工ボンドで張り合わせて、蓋の完成。
箱の正面に貼ってあるのは箱のヒンジが付いていたところが穴になってしまったのでお化粧です。


Arduino Nano、サーボモーターの取り付け方法を考える

サーボモーター、基盤の取り付け部品を3Dプリンターで製作
Aruduino nano ブラケット、サーボモーターブラケット

サーボモーターと基盤の取り付けは非常に悩んだのですが、取り付けブラケット3Dプリンターで印刷。
3DモデルはThingiverseにあったのをダウンロードして使わせていただきました。

ブラケットと箱は小さいビスを使って取り付けします。

半田付け&部品組付

半田付け中
Arduino Nano 半田付け

Aruduino Nano基盤・各配線を半田付け、収縮チューブで絶縁処理します。

9Vバッテリーも用意したのですが、箱が小さかったので今回はUSB電源のみにしました。

基盤・スイッチ、サーボモーターを組付けたところ。こんな感じ。



プログラムインストール・動作確認

パソコンとUseless BoxをUSBで繋いで、Arduino IDEからプログラムをインストール。
蓋と手の位置が丁度良い角度になるように調整したり、タイミングを合わせたり練習がてらプログラムを作ってみました。
サーボモーターの動作角度の調整は以下の4行内の数字を0~180で設定を行います。

int lidhome = 180; //蓋サーボモーター原位置角度
int handhome = 180; //手サーボモーター原位置角度
int lidon = 100; //蓋サーボモーターON時角度
int handon = 0; //手サーボモーターON時角度
スイッチをONしたらOFFするロボット試作機(Useless Box Prototype)

上記で紹介した動画みたいに箱の中にぬいぐるみも入れる予定だったのですが、箱が小さくて入らず断念。

2号機として、3Dプリンターで電子部品以外を作って、ぬいぐるみも入れられるように作成中です!
プログラムも動作を数パターン増やして最終型とするつもりです。

完成したらブログに追記するのでお待ちください。


追加記事を書きました↓

コメント

タイトルとURLをコピーしました