CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

BristleSwarm - коллективные виброботы на Arduino

виброботы на Arduino
Для создания такого робота потребуются:
* пара щёток,
* два самодельных вибромотора,
* миниатюрная версия контроллера Arduino,
* два фоторезистора,
* два биполярных NPN-транзистора (PN2222), для управления двигателями,
* цветные светодиоды, для отслеживания ботов при помощи системы компьютерного зрения,
* немного мелочёвки (резисторы, провода и т.п.)

Программы для swarm-роботов:

bristleTHINKER.ino


//  This definition runs an early version of the script. With this script, the robot will occasionally check how
//  much light there is, and then turn left or right based on how much light it sees. The robot I was working with
// had one photocell mounted on top and one mounted on this bottom, instead of to the left and right on the chassis.

    // LED
    int LED = 4;
  
    //Photo Resistors
    int photocellUPPER = 1; //Ambient photocell sensor - Upper Sensor
    int photocellLOWER = 3; //Turnaround photocell sensor - Lower Sensor
    int photocellUPPERreading;
    int photocellLOWERreading;
  
    //Motors
    int leftMOTORpin = 0; // connect leftMotor to pin 0 (PWM pin)
    int rightMOTORpin = 1; // connect rightMotor to pin 1 (PWM pin)
    int MOTORspeed;


// in the setup, we're just going to turn on the LED's, which I had setup in pin 4 for this robot
void setup() {
   
   analogWrite (LED, 255);  

}

void loop(void) {

// First off, we'll make a reading of the ambient light.

   photocellUPPERreading = analogRead(photocellUPPER);

  
// Now we'll remap the photocellReading values to a range of values that work for our motors.
  
    MOTORspeed = map(photocellUPPERreading, 0, 1023, 0, 255);
  
// Here's where the actual behavior is executed.
// In this definition, the robot will go right if it's bright out, and left if it's dark.
// After a second of this behavior, it then goes straight for two seconds.
// This behavior makes it look like they're always "thinking" about what to do next,
// hence the name "bristleTHINKER".
    
    analogWrite(rightMOTORpin, MOTORspeed);     
    analogWrite(leftMOTORpin, 255 - MOTORspeed);
    
    delay(1000);
    
    analogWrite(rightMOTORpin, 255);
    analogWrite(leftMOTORpin, 255);
    
    delay(2000);
    
  }


bristleSEEKER.ino


    // LED
    int LED = 4;
  
    //Photo Resistors
    int photocellLEFT = 1; //left facing photocell sensor
    int photocellRIGHT = 3; //Turnaround photocell sensor
    
    //Motors
    int leftMOTORpin = 0; // connect leftMotor to pin 0 (PWM pin)
    int rightMOTORpin = 1; // connect rightMotor to pin 1 (PWM pin)
    int rightMOTORspeed;
    int leftMOTORspeed;
    int leftMOTORratio;
    int rightMOTORratio;

    
void setup() {
  
        analogWrite (LED, HIGH); 
      }

void loop(void) {

//here we define the speed of the left and right motors as the ratio of brightness between the
//two photocells. As the photocell on one side gets brighter, it slows down, turning
//the robot in that direction.

        rightMOTORratio = (analogRead(photocellLEFT) / analogRead(photocellRIGHT));
        leftMOTORratio = (analogRead(photocellRIGHT) / analogRead(photocellLEFT));
        
//this part turns our ratio into a usable speed for our motors        

        leftMOTORspeed = (leftMOTORratio * 255);
        rightMOTORspeed = (rightMOTORratio * 255);
        
//and this writes that value to the pin      

        analogWrite(leftMOTORpin, leftMOTORspeed);
        analogWrite(rightMOTORpin, rightMOTORspeed);


  }


Видео работы:


Ссылки:
BristleSwarm: Explorations into Swarm Robotics

По теме:
Kilobot — роевые микророботы
Более 1000 роевых микророботов научили выстраивать сложные фигуры
Swarmanoid
Cамоорганизация роботов без алгоритмов
  • 0
  • 24 февраля 2015, 10:48
  • admin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.