Срочно нужна помощь с объединением скетчей!!!!

roheh
Offline
Зарегистрирован: 09.03.2018

Приветствую вас, уважаемые форумчане!

Очень нужна ваша помощь.
Племянник написал отдельные скетчи (домашняя работа) и нужно их объединить в один.
Срок у нас до понедельника 13 марта.

Сами справиться не можем(

Будем вам очень благодарны!!!

 

Первый скетч.............................................................................................................................
 

/* Encoder Library - TwoKnobs Example
* http://www.pjrc.com/teensy/td_libs_Encoder.html
*
* This example code is in the public domain.
*/

#include <Encoder.h>

// Change these pin numbers to the pins connected to your encoder.
//   Best Performance: both pins have interrupt capability
//   Good Performance: only the first pin has interrupt capability
//   Low Performance:  neither pin has interrupt capability
Encoder knobLeft_ENCO(40, 41);
Encoder knobRight_ENCO(42, 43);
Encoder knobUp_ENCO(34, 35);
Encoder knobDown_ENCO(46, 47);
//   avoid using pins with LEDs attached

void setup_ENCO() {
  Serial.begin(9600);
  Serial.println("TwoKnobs Encoder Test:");
}

long positionLeft  = -999;
long positionRight = -999;
long positionUp  = -999;
long positionDown = -999;

void loop_ENCO() {
  long newLeft, newRight, newUp, newDown;
  newLeft = knobLeft.read();
  newRight = knobRight.read();
  newUp = knobUp.read();
  newDown = knobDown.read();
  if (newLeft != positionLeft || newRight != positionRight || newUp != positionUp || newDown != positionDown) {
    Serial.print("Left = ");
    Serial.print(newLeft);
    Serial.print(", Right = ");
    Serial.print(newRight);
    Serial.print(", Up = ");
    Serial.print(newUp);
    Serial.print(", Down = ");
    Serial.print(newDown);
    Serial.println();
    positionLeft = newLeft;
    positionRight = newRight;
    positionUp = newUp;
    positionDown = newDown;
  }
  // if a character is sent from the serial monitor,
  // reset both back to zero.
  if (Serial.available()) {
    Serial.read();
    Serial.println("Reset both knobs to zero");
    knobLeft.write(0);
    knobRight.write(0);
    knobUp.write(0);
    knobDown.write(0);
  }
}
 
Второй скетч............................................................................................................................
 
#include <Wire.h>

/// дальномер синий

#include <Ultrasonic.h>


Ultrasonic us_2_hc(30, 31);
Ultrasonic us_1_hc(50, 51);

void setup_hc()
{
  Serial.begin(9600);       // start the serial port
}

void loop_hc()
{
  float d_1 = us_1.Ranging(CM);   // get distance
  float d_2 = us_2.Ranging(CM);   // get distance
  
  Serial.print(d_1);
  Serial.print("cm, ");
  Serial.print(d_2);
  Serial.print("cm, ");
   // print the distance
  
  delay(500);                 // arbitrary wait time.
}
Третий скетч............................................................................................................................
 
// библиотека для работы I²C
#include <Wire.h>
// библиотека для работы с модулями IMU
#include <TroykaIMU.h>
 
// создаём объект для работы с гироскопом
Gyroscope gyro_IMU;
// создаём объект для работы с акселерометром
Accelerometer accel_IMU;
// создаём объект для работы с компасом
Compass compass_IMU;
// создаём объект для работы с барометром
Barometer barometer_IMU;
 
// калибровочные значения компаса
// полученные в калибровочной матрице из примера «compassCalibrateMatrix»
const double compassCalibrationBias_IMU[3] = {
  524.21,
  3352.214,
  -1402.236
};
 
const double compassCalibrationMatrix_IMU[3][3] = {
  {1.757, 0.04, -0.028},
  {0.008, 1.767, -0.016},
  {-0.018, 0.077, 1.782}
};
 
void setup_IMU()
{
  // открываем последовательный порт
  Serial.begin(115200);
  // выводим сообщение о начале инициализации
  Serial.println("Begin init...");
  // инициализация гироскопа
  gyro.begin();
  // инициализация акселерометра
  accel.begin();
  // инициализация компаса
  compass.begin();
  // инициализация барометра
  barometer.begin();
  // калибровка компаса
  compass.calibrateMatrix(compassCalibrationMatrix, compassCalibrationBias);
  // выводим сообщение об удачной инициализации
  Serial.println("Initialization completed");
  Serial.println("Gyroscope\t\t\tAccelerometer\t\t\tCompass\t\tBarometer");
}
 
void loop_IMU()
{
  // вывод угловой скорости в градусах в секунду относительно оси X
  Serial.print(gyro.readDegPerSecX());
  Serial.print("\t");
  // вывод угловой скорости в градусах в секунду относительно оси Y
  Serial.print(gyro.readDegPerSecY());
  Serial.print("\t");
  // вывод угловой скорости в градусах в секунду относительно оси Z
  Serial.print(gyro.readDegPerSecZ());
  Serial.print("\t\t");
  // вывод направления и величины ускорения в м/с² по оси X
  Serial.print(accel.readAX());
  Serial.print("\t");
  // вывод направления и величины ускорения в м/с² по оси Y
  Serial.print(accel.readAY());
  Serial.print("\t");
  // вывод направления и величины ускорения в м/с² по оси Z
  Serial.print(accel.readAZ());
  Serial.print("\t\t");
  // выводим азимут относительно оси Z
  Serial.print(compass.readAzimut());
  Serial.print(" Degrees\t");
  // вывод значения абсолютного давления
  Serial.print(barometer.readPressureMillibars());
  Serial.print("\t");
  // вывод значения температуры окружающей среды
  Serial.print(barometer.readTemperatureC());
  Serial.print("\t");
  Serial.println("");
  delay(100);
}
 
Четвертый скетч............................................................................................................................
 
// библиотека для работы I²C
#include <Wire.h>
// библиотеку для модуля VL6180X
#include <SparkFun_VL6180X.h>
// адрес датчика приближения по умолчанию
#define VL6180X_ADDRESS 0x29
// создаём объект для работы с модулем
VL6180x sensor_light(VL6180X_ADDRESS);
 
void setup_light()
{
  // открываем монитор Serial-порта
  Serial.begin(9600);
  // проверяем инициализацию модуля
  while (sensor.VL6180xInit()) {
    Serial.println("Failed to initalize");
    delay(1000);
  }
  // загружаем настройки модуля по умолочнию
  sensor.VL6180xDefautSettings();
  // ждём 1 секунду
  delay(1000);
}
 
void loop_light()
{
  // получаем и выводим значения расстояния до объекта
  // и уровень внешнего освещения
  Serial.print("Light = ");
  Serial.print(sensor.getAmbientLight(GAIN_1));
  Serial.print(" Lx\t\t");
  Serial.print("Distance = ");
  Serial.print(sensor.getDistance() );
  Serial.println(" mm");
  delay(100);
}
 
Пятый скетч............................................................................................................................
 
#include <AFMotor.h>


// создаём объект для работы с датчиком тока
// и передаём ему номер пина выходного сигнала


 // подключаем библиотеку для работы с платой драйвера двигателя
// Подключаем моторы к клеммникам M1, M2, M3, M4
AF_DCMotor motor1_motor(1);
AF_DCMotor motor2_motor(2);
AF_DCMotor motor3_motor(3);
AF_DCMotor motor4_motor(4);
int velocity_motor = 254;


 

void setup_motor()
{
// Задаем скорость вращения моторов (аналог работы PWM)
motor1.setSpeed(velocity);
motor1.run(RELEASE);
motor2.setSpeed(velocity);
motor2.run(RELEASE);
motor3.setSpeed(velocity);
motor3.run(RELEASE);

motor4.setSpeed(velocity);
motor4.run(RELEASE);
}
void loop_motor() 
{
 
int i; // определяем счётчик
motor1.run(FORWARD); // задаем направление движения вперед
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
for (i=0; i<255; i++)
{
motor1.setSpeed(i);
motor2.setSpeed(i);
motor3.setSpeed(i);
motor4.setSpeed(i);
delay(10);
}
motor1.run(RELEASE); // остановка
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
motor1.run(BACKWARD); // задаем направление движения назад
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
for (i=0; i<255; i++)
{
motor1.setSpeed(i);
motor2.setSpeed(i);
motor3.setSpeed(i);
motor4.setSpeed(i);
delay(10);
}
motor1.run(RELEASE); // остановка
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(1000);

}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Эти скетчи не могут быть объединены. Минимум 4 их них нужно переписать, чтобы хотя бы теоретически их можно было объединять с другими.

roheh
Offline
Зарегистрирован: 09.03.2018

 Можете помочь? Я к сожалению совсем в этом не понимаю и за выходные (при всём желании) всего не изучу(

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Зачем же он писал разные... надо было просто один делать сразу. Судя по коду - он понимает, что делать.

roheh
Offline
Зарегистрирован: 09.03.2018

Полностью с Вами сонгласен. Я бы тоже сразу писал один.

Он их просто нашел готовые.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Что же сегодня за день такой - халтурщиков и тунеядцев. Привели четыре примера с Амперки, в которых ни буквы не изменено - мы писали скетчи! А Вы часом не тот самый племянник и есть? 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

roheh пишет:

Племянник написал отдельные скетчи (домашняя работа)

roheh пишет:

Он их просто нашел готовые

ven-til
Offline
Зарегистрирован: 13.02.2018

Ну вообще-то в этом году понедельник у нас 12 марта, а 13 марта в понедельник будет в 2029 году. Так что успеете.

roheh
Offline
Зарегистрирован: 09.03.2018

Так вот откуда они взяты))))) Нет, я об этом даже не в курсе. Я вообще изначально думал, что он их сам писал. Только потом уже начал смотреть и заподозрил, что это возможно не так.

roheh
Offline
Зарегистрирован: 09.03.2018

Извиняюсь, перепутал дату) Понедельник 12го.

roheh
Offline
Зарегистрирован: 09.03.2018

Ответил ven-til, как раз об этом

roheh
Offline
Зарегистрирован: 09.03.2018

Народ, я не прикидываюсь тут бедной овечкой или жертвой. Просто хочу помочь своему парню. 

Я написал то, что знаю и какие-то свои догадки, не более.

Наверняка что-то он мне не договорил, но суть вопроса сейчас в этом задании. С остальным мы потом разбираться будем...
 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

roheh,

Вы вывесили сразу две красные тряпки: "срочно" и "учебное задание". Любого из двух достаточно для того, чтобы в теме ничего кроме глума не было. А уж, когда оба вместе ... Боюсь, что ничего умнее и остроумнее, чем #7, Вы здесь уже не увидите, так что тему можно закрывать. 99% - здесь Вам не обломится.

-----------

Если Вам действительно сильно надо, запостите запрос в разделе Ищу исполнителя. Только не приводите там эти натыренные скетчи, а просто объясните, что нужно сделать. Вполне вероятно, что какой-нибуть нормальный, трудолибивый и умный студент(-ка) поможет Вашему ленивому оболтусу за разумную денюшку. Польза будет всем: Ваш лодырь в очередной раз "обманет кондуктора - заплатит и не поедет", а нормальный мальчик (девочка) получат новый приличный мультиметр или там пару-тройку серв - чего им там нужно.

Это реально хороший совет. Хотите получить результат - не пренебрегайте.

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

roheh пишет:
Наверняка что-то он мне не договорил, но суть вопроса сейчас в этом задании.

... а парень, тем временем, порыл в ночной клуб... ;-)

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Да сама формулировка-то задачи никакая. Есть примеры работы энкодера, дальномера, гироскопа/акселерометра/компаса/барометра, двигателей. Объедините это! Что получиться-то должно? А какая разница! Песец!

roheh
Offline
Зарегистрирован: 09.03.2018

Спасибо за советы.
По поводу натыренных. Говорят, что они там в открытом доступе лежат для общего пользования.
По поводу не обломится. Я спросил как объединить 5 готовых, рабочих скетча в один.
Есть у нас такой вот проект. Я не просил сделать проект с нуля, я не из хотро*опых.
Если бы я сам в этом разбирался, то естественно не стал бы своё время тратить на эту болтавню.
Но по опыту других языков я видел, что объединить несколько кодов не так уж и трудно, если знать синтаксис языка.

roheh
Offline
Зарегистрирован: 09.03.2018

Народ, очень прошу, если у вас нет реально дельного совета, не тратьте своё и моё время впустую.

Спасибо за понимание.

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

roheh пишет:

По поводу натыренных. Говорят, что они там в открытом доступе лежат для общего пользования.

По поводу натыренных...

Натыренные - это не когда взято из free софта. Натырено - это когда взято из free софта, а потом это пытаются "втулить" преподавателю как "клянусь мамой - сам сделал".

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Вы задачу-то сформулируйте, а то объединить...друг за другом их напишите - уже объединение будет.

kalapanga
Offline
Зарегистрирован: 23.10.2016

В краже скетчей Вас ни коим образом не обвиняют, только в некоторой дезинформации местного сообщества и попытке обмана учителя/преподавателя. Но поймите, Ваша задача звучит так: "Вот гвоздь, кусок фанеры, кактус и леденец - объедините мне их!"

И если не секрет, где это у нас задают домашние задания по ардуино, которые срочно делать надо?

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

roheh
Offline
Зарегистрирован: 09.03.2018

Есть вот такой код, он по идее общий на всё это, но выдаёт много ошибок почему-то...
https://yadi.sk/d/gDiQ6xPi3TBxR9

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

roheh пишет:
я видел, что объединить несколько кодов не так уж и трудно, если знать синтаксис языка

Само собой. Возьми Запор, Феррари и Камаз и объедини, чтобы у гибрида была скорость Феррари, грузоподъёмность Камаза и цена Запора ("я Видел, что это не так уж и трудно, если в автомеханике разбираться").

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Вас 28 раз спросить про конечную цель? Вы специально этот вопрос игнорите?

roheh
Offline
Зарегистрирован: 09.03.2018

Робот, который сможет ездить по рельсам и выполнять всякие работы манипулятором, который на него будет установлен в последствии.
Ну и датчики в довесок. Дальномер (расстояние для препятствий) , датчики света, температуры, угловых скоростей, ну и всё такое.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

roheh пишет:
... По поводу натыренных. .... По поводу не обломится.

Вы, кажется пытаетесь мне что-то доказать? Это пожалуйста, сколько угодно :) Я Вам сказал, как оно есть на самом деле - или Вы заказываете за бабки или работа сделана не будет. Вы считаете меня неправым и что-то доказываете? Да, ради бога, доказывайте на здоровье! Сдавать-то в понедельник Вам, а не мне, мне-то пофигу. 

Только не говорите потом (когда придёт понедельник, а ни хрена не сделано), что здесь Вам дельного совета не дали. Дали, просто Вы его отмели и кинулись что-то доказывать. Дело Ваше.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

И всё это сейчас, бесплатно, не отходя от кассы? Неплохие ожидания )))

roheh
Offline
Зарегистрирован: 09.03.2018

Не успеваю всем сразу отвечать

roheh
Offline
Зарегистрирован: 09.03.2018

Мне нечего доказывать. Не люблю обвинений пустых.
А за советы я вам тоже благодарен.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

roheh пишет:
Робот, который сможет ездить по рельсам и выполнять всякие работы манипулятором, который на него будет установлен в последствии. Ну и датчики в довесок. Дальномер (расстояние для препятствий) , датчики света, температуры, угловых скоростей, ну и всё такое.

Хера-се!

От объединения с неясной целью ежа с ужом до такого устройства дистанции такого размера ...

Мужик, это проект для нормально разбирающегося в вопросе человека как минимум на пару недель, а если "по вечерам. после работы", то на месяц и больше. Для человека же, не умеющего скомпилировать скетч - это год как миниму - прокачать знания и умения и только тогда что-то делать.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Нет. Не на всё. Только на два объекта. Я про это и говорю. Даже два скетча кто-то объединить не смог. Кактус и леденец ещё и не начинали присоединять.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Да чтоб тебя такие же ИГЭнутые врачи лечили, которые сдавали икзамены как твой плимяннег. 

kalapanga
Offline
Зарегистрирован: 23.10.2016

roheh пишет:
Робот, который сможет ездить по рельсам и выполнять всякие работы манипулятором, который на него будет установлен в последствии. Ну и датчики в довесок. Дальномер (расстояние для препятствий) , датчики света, температуры, угловых скоростей, ну и всё такое.

Я знал, я знал! :) И всё до понедельника! Аплодисменты, занавес!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

roheh пишет:
Мне нечего доказывать. Не люблю обвинений пустых. А за советы я вам тоже благодарен.

А Вас никто ни в чём не обвинял. Абсолютно. Слово "натыренный" так здесь терминология такая. Скетч взятый из интернета - "тянутый" или "тыренный". Вы здесь первый день, потому не знаете. Если бы прежде, чем постить, почитали бы форум, то знали бы.

roheh
Offline
Зарегистрирован: 09.03.2018

Ладно мужики. И на том спасибо) Передам.

roheh
Offline
Зарегистрирован: 09.03.2018

Было бы у меня столько времени, я бы из интереса уже и сам бы попытался изучить мат часть))
А так, буду знать на будущее)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

roheh пишет:
Было бы у меня столько времени, я бы из интереса уже и сам бы попытался изучить мат часть)) А так, буду знать на будущее)

Было бы у меня только времени, выучился бы на стоматолога :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

roheh пишет:
я бы из интереса уже и сам бы попытался изучить мат часть
Да я б тоже попытался, тока в лом. Языком молоть - оно ж не программы писать!

roheh
Offline
Зарегистрирован: 09.03.2018

Это да))))

roheh
Offline
Зарегистрирован: 09.03.2018

За вознаграждение кто-нибудь готов сделать это проект грамотно и всрок?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

roheh пишет:
Было бы у меня столько времени, я бы из интереса уже и сам бы попытался изучить мат часть)) А так, буду знать на будущее)

Был бы у меня такой кот, я и не женился бы никогда https://www.youtube.com/watch?v=_-eZVy28i_0

ПС: Бог избавь меня от таких заказов и особенно заказчиков.

mixail844
Offline
Зарегистрирован: 30.04.2012

я обьеденил,незачто



/* Encoder Library - TwoKnobs Example
* http://www.pjrc.com/teensy/td_libs_Encoder.html
*
* This example code is in the public domain.
*/

#include <Encoder.h>

// Change these pin numbers to the pins connected to your encoder.
//   Best Performance: both pins have interrupt capability
//   Good Performance: only the first pin has interrupt capability
//   Low Performance:  neither pin has interrupt capability
Encoder knobLeft_ENCO(40, 41);
Encoder knobRight_ENCO(42, 43);
Encoder knobUp_ENCO(34, 35);
Encoder knobDown_ENCO(46, 47);
//   avoid using pins with LEDs attached

void setup_ENCO() {
  Serial.begin(9600);
  Serial.println("TwoKnobs Encoder Test:");
}

long positionLeft  = -999;
long positionRight = -999;
long positionUp  = -999;
long positionDown = -999;

void loop_ENCO() {
  long newLeft, newRight, newUp, newDown;
  newLeft = knobLeft.read();
  newRight = knobRight.read();
  newUp = knobUp.read();
  newDown = knobDown.read();
  if (newLeft != positionLeft || newRight != positionRight || newUp != positionUp || newDown != positionDown) {
    Serial.print("Left = ");
    Serial.print(newLeft);
    Serial.print(", Right = ");
    Serial.print(newRight);
    Serial.print(", Up = ");
    Serial.print(newUp);
    Serial.print(", Down = ");
    Serial.print(newDown);
    Serial.println();
    positionLeft = newLeft;
    positionRight = newRight;
    positionUp = newUp;
    positionDown = newDown;
  }
  // if a character is sent from the serial monitor,
  // reset both back to zero.
  if (Serial.available()) {
    Serial.read();
    Serial.println("Reset both knobs to zero");
    knobLeft.write(0);
    knobRight.write(0);
    knobUp.write(0);
    knobDown.write(0);
  }
}
  
#include <Wire.h>

/// дальномер синий

#include <Ultrasonic.h>


Ultrasonic us_2_hc(30, 31);
Ultrasonic us_1_hc(50, 51);

void setup_hc()
{
  Serial.begin(9600);       // start the serial port
}

void loop_hc()
{
  float d_1 = us_1.Ranging(CM);   // get distance
  float d_2 = us_2.Ranging(CM);   // get distance
  
  Serial.print(d_1);
  Serial.print("cm, ");
  Serial.print(d_2);
  Serial.print("cm, ");
   // print the distance
  
  delay(500);                 // arbitrary wait time.
} 
// библиотека для работы I²C
#include <Wire.h>
// библиотека для работы с модулями IMU
#include <TroykaIMU.h>
 
// создаём объект для работы с гироскопом
Gyroscope gyro_IMU;
// создаём объект для работы с акселерометром
Accelerometer accel_IMU;
// создаём объект для работы с компасом
Compass compass_IMU;
// создаём объект для работы с барометром
Barometer barometer_IMU;
 
// калибровочные значения компаса
// полученные в калибровочной матрице из примера «compassCalibrateMatrix»
const double compassCalibrationBias_IMU[3] = {
  524.21,
  3352.214,
  -1402.236
};
 
const double compassCalibrationMatrix_IMU[3][3] = {
  {1.757, 0.04, -0.028},
  {0.008, 1.767, -0.016},
  {-0.018, 0.077, 1.782}
};
 
void setup_IMU()
{
  // открываем последовательный порт
  Serial.begin(115200);
  // выводим сообщение о начале инициализации
  Serial.println("Begin init...");
  // инициализация гироскопа
  gyro.begin();
  // инициализация акселерометра
  accel.begin();
  // инициализация компаса
  compass.begin();
  // инициализация барометра
  barometer.begin();
  // калибровка компаса
  compass.calibrateMatrix(compassCalibrationMatrix, compassCalibrationBias);
  // выводим сообщение об удачной инициализации
  Serial.println("Initialization completed");
  Serial.println("Gyroscope\t\t\tAccelerometer\t\t\tCompass\t\tBarometer");
}
 
void loop_IMU()
{
  // вывод угловой скорости в градусах в секунду относительно оси X
  Serial.print(gyro.readDegPerSecX());
  Serial.print("\t");
  // вывод угловой скорости в градусах в секунду относительно оси Y
  Serial.print(gyro.readDegPerSecY());
  Serial.print("\t");
  // вывод угловой скорости в градусах в секунду относительно оси Z
  Serial.print(gyro.readDegPerSecZ());
  Serial.print("\t\t");
  // вывод направления и величины ускорения в м/с² по оси X
  Serial.print(accel.readAX());
  Serial.print("\t");
  // вывод направления и величины ускорения в м/с² по оси Y
  Serial.print(accel.readAY());
  Serial.print("\t");
  // вывод направления и величины ускорения в м/с² по оси Z
  Serial.print(accel.readAZ());
  Serial.print("\t\t");
  // выводим азимут относительно оси Z
  Serial.print(compass.readAzimut());
  Serial.print(" Degrees\t");
  // вывод значения абсолютного давления
  Serial.print(barometer.readPressureMillibars());
  Serial.print("\t");
  // вывод значения температуры окружающей среды
  Serial.print(barometer.readTemperatureC());
  Serial.print("\t");
  Serial.println("");
  delay(100);
}
  
// библиотека для работы I²C
#include <Wire.h>
// библиотеку для модуля VL6180X
#include <SparkFun_VL6180X.h>
// адрес датчика приближения по умолчанию
#define VL6180X_ADDRESS 0x29
// создаём объект для работы с модулем
VL6180x sensor_light(VL6180X_ADDRESS);
 
void setup_light()
{
  // открываем монитор Serial-порта
  Serial.begin(9600);
  // проверяем инициализацию модуля
  while (sensor.VL6180xInit()) {
    Serial.println("Failed to initalize");
    delay(1000);
  }
  // загружаем настройки модуля по умолочнию
  sensor.VL6180xDefautSettings();
  // ждём 1 секунду
  delay(1000);
}
 
void loop_light()
{
  // получаем и выводим значения расстояния до объекта
  // и уровень внешнего освещения
  Serial.print("Light = ");
  Serial.print(sensor.getAmbientLight(GAIN_1));
  Serial.print(" Lx\t\t");
  Serial.print("Distance = ");
  Serial.print(sensor.getDistance() );
  Serial.println(" mm");
  delay(100);
}
  
#include <AFMotor.h>


// создаём объект для работы с датчиком тока
// и передаём ему номер пина выходного сигнала


 // подключаем библиотеку для работы с платой драйвера двигателя
// Подключаем моторы к клеммникам M1, M2, M3, M4
AF_DCMotor motor1_motor(1);
AF_DCMotor motor2_motor(2);
AF_DCMotor motor3_motor(3);
AF_DCMotor motor4_motor(4);
int velocity_motor = 254;


 

void setup_motor()
{
// Задаем скорость вращения моторов (аналог работы PWM)
motor1.setSpeed(velocity);
motor1.run(RELEASE);
motor2.setSpeed(velocity);
motor2.run(RELEASE);
motor3.setSpeed(velocity);
motor3.run(RELEASE);

motor4.setSpeed(velocity);
motor4.run(RELEASE);
}
void loop_motor() 
{
 
int i; // определяем счётчик
motor1.run(FORWARD); // задаем направление движения вперед
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
for (i=0; i<255; i++)
{
motor1.setSpeed(i);
motor2.setSpeed(i);
motor3.setSpeed(i);
motor4.setSpeed(i);
delay(10);
}
motor1.run(RELEASE); // остановка
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
motor1.run(BACKWARD); // задаем направление движения назад
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
for (i=0; i<255; i++)
{
motor1.setSpeed(i);
motor2.setSpeed(i);
motor3.setSpeed(i);
motor4.setSpeed(i);
delay(10);
}
motor1.run(RELEASE); // остановка
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(1000);

}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

roheh пишет:
За вознаграждение кто-нибудь готов сделать это проект грамотно и всрок?
Я же Вам дал ссылку на раздел форума, где делают за вознаграждение! И сказал. что здесь будет только глум. Какие у Вас основания мне не верить? Чем дольше Вы тут сидите, тем больше глотаете глума, и тем меньше времени остаётся на работу. Но ... не верите - дело Ваше.

roheh
Offline
Зарегистрирован: 09.03.2018

Охереть как остроумно

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Отучи же меня говорить....