ロボット覚醒プロジェクト第一弾

親子で作る!自動で歩く昆虫ロボット

プロジェクト定義

本プロジェクトは、秋葉原にロボット専門店を持つ“ツクモ” と、半導体メーカーの“ルネサスエレクトロニクス”の2社で発足し、 親子向けを中心に、ロボットや電子部品を使ったワークショップやイベントを通して、ものづくり日本の人材育成に貢献するために活動します。


テーマ

「手動→自動」

プロジェクト名のロボット覚醒とは、ロボットを目覚めさせ自律させること。

動かすために人間の手が必要になるロボットを、コンピューターとなる電子部品を組み込んで自動的に動かす。

意図しない動きをするおもちゃから、子供が新しい発見や発想をしたり、改造によって可能性を広げる過程から、 自分のものへのこだわりを深めるなど、ものづくりに必要な気質を養うことが目標です。


実施イベント

親子で作る!自動で歩く昆虫ロボット

リモコンで操作するクワガタ/カブト型のロボット(タミヤ製)を覚醒し、自動で障害物を避けながら進むロボットにします。 ワークショップで基本的な改造方法のレクチャーとキットを提供し、その後自由にカスタマイズを行った参加者同士の ロボットで競技大会を実施します。

ロボット覚醒プロジェクト第一弾のスケジュール

ドキュメント

スケッチリファレンス

KURUMIスケッチリファレンス

 

イベントへのご参加

以下の各Webサイトからご応募ください。


ワークショップのプログラム


/*
  ロボット覚醒プロジェクト:
  物を避けて進むプログラム
  This program is public domain.
*/
#include <Arduino.h>

#define LED_R 22
#define LED_G 23
#define LED_B 24

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_B, OUTPUT);
  digitalWrite(LED_R, HIGH);
  digitalWrite(LED_G, HIGH);
  digitalWrite(LED_B, HIGH);
}

void loop() {
  // put your main code here, to run repeatedly: 
  unsigned int eye_right = analogRead(A0);
  unsigned int eye_left = analogRead(A1);
  
  if (eye_right < 700 && eye_left < 700){ // Both eye see nothing 
    // forward
    digitalWrite(LED_R, HIGH);
    digitalWrite(LED_G, HIGH);
    digitalWrite(LED_B, LOW);
    analogWrite(5, 200);
    analogWrite(3, 0);
    analogWrite(6, 255);
    analogWrite(9, 0);
  } else if (eye_right >= 700 && eye_left < 700) { // Right eye see a thing 
    // turn left
    digitalWrite(LED_R, LOW);
    digitalWrite(LED_G, HIGH);
    digitalWrite(LED_B, HIGH);
    analogWrite(5, 0);
    analogWrite(3, 0);
    analogWrite(6, 255);
    analogWrite(9, 0);    
  } else if (eye_right < 700 && eye_left >= 700) { // Left eye see a thing 
    // turn right
    digitalWrite(LED_R, HIGH);
    digitalWrite(LED_G, LOW);
    digitalWrite(LED_B, HIGH);
    analogWrite(5, 200);
    analogWrite(3, 0);
    analogWrite(6, 0);
    analogWrite(9, 0);    
  } else {
    digitalWrite(LED_R, HIGH);
    digitalWrite(LED_G, HIGH);
    digitalWrite(LED_B, HIGH);
    analogWrite(5, 200);
    analogWrite(3, 0);
    analogWrite(6, 0);
    analogWrite(9, 255);    
  }
  delay(500);
  
}