На главную страницу | Новости | FAQ | Ссылки | Для детей | Контакты

ARDUINO ROBOTS
Arduino для начинающих электронщиков. Модули и проекты на базе Arduino. Разработка роботов


Ультразвуковой картограф на основе Arduino


Это устройство предназначено для построения карты местности, точнее закрытого помещения (комнаты, например) вместе с находящимися в нем предметами. Конечно, на уровне пола. Короче, это надо для того, чтобы автономный робот мог определять свой дальнейший путь.

Ультразвуковой картограф на основе Arduino

Основа устройства - ультразвуковой датчик расстояния. Принцип его работы в том, что он генерирует звуковые волны в диапазоне недоступным для слуха, а потом измеряет расстояние. Расстояние определяется по време, которое необходимое для того, чтобы эти волны дошли до какого-либо препятствия и вернулись обратно. Тот же принцип используется летучими мышами при полетах ночью.

Необходимые материалы:

- Arduino Uno ;

- ультразвуковой датчик HC-04 ;

- серово-привод Tower Pro SG90 или любой другой;

- MatLab для получения данных с последовательного порта и их визуализации.

Код программы для ардуины


 #include 
 #include 
 #define TRIGGER_PIN  12 
 #define ECHO_PIN     11  
 #define MAX_DISTANCE 200 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
Servo myservo;  
int pos = 0;   
int it = 10;

void setup() {
  myservo.attach(9); 
  Serial.begin(9600);
  delay(3000);
}

void loop() {
  int i = 0;
  int t = 0;
  int a = 0;
  for (i = 0; i < 180; i ++)
  {
    unsigned int uS = sonar.ping();
    myservo.write(i);
    delay(20);
    for (t = 0; t < it; t++)
    {
      uS = sonar.ping();
      a = uS/US_ROUNDTRIP_CM + a;
      delay(30);
    }
    
    a = a / (it-1);
    t = 0;
    Serial.println(a); 
    a = 0;
  }
}

Код программы для матлаб для обработки данных


theta = 0:(pi/180):pi;
s = serial('COM10');
s.BaudRate=9600
fopen(s)
i = 0;
inc = 1;
while i<180
   A = fgets(s);
   num(i+1) = str2num(A);
   i = i+1;
end
fclose(s)
j = 1
while j<181
    tab(j,1) = (j-1)*inc
    tab(j,2) = num(j)
    tab(j,3) = num(j)*cosd((j-1)*inc)
    tab(j,4) = num(j)*sind((j-1)*inc)
    j = j+1
end
%figure
%polar(theta,num)
plot(tab(:,3),tab(:,4))

Результат работы:

Ультразвуковой картограф на основе Arduino

На языке оригинала:


https://www.hackster.io/Satyavrat/ultrasonic-map-maker-using-an-arduino-yun-37c72e




Платы ARDUINO по низкой цене

Нажми на изображение, чтобы заказать в интернет-магазине:


arduino NANO купить дешево arduino UNO купить дешево arduino UNO R3 ORIG купить дешево arduino MEGA купить дешево arduino DUE купить дешево



Now 30.06.22 5:16:22, Your IP: 3.215.79.204; arduino.zl3p.com/projects/map-maker