Форум воронежских родителей
Наши хобби и увлечения => Рукоделие => Тема начата: Золото Акапулько от Марта 25, 2017, 13:57:45
-
Мы тут в Валеркой открыли для себя Алиэкспресс )), и теперь заказываем всякие прикольные штуки, из которых собрали вот такого гусеничного робота. Управляется по bluetooth с планшета или смартфона. Также можно управлять пультом от телевизора или голосом. Можно установить смартфон и наблюдать и управлять удаленно через компьютер или планшет. Камера (смартфон) может поворачиваться и смотреть по сторонам.
(https://mamavrn.ru/my_img/img/2017/03/25/68125.jpg)
(https://mamavrn.ru/my_img/img/2017/03/25/15f7a.jpg)
(https://mamavrn.ru/my_img/img/2017/03/25/47f58.jpg)
Для тех, кто захочет повторить.
Бюджет проекта:
- Гусеничное шасси + редуктор Tamiya https://market.yandex.ru/product--tamiya-educational-construction-70108-gusenichnoe-shassi/11034842 (~700р.)
- кусок фанеры для базы (0р.)
- детский металлический конструктор https://www.votonia.ru/products/konstruktor-desyatoe-korolevstvo-metallicheskiy-samokat-12-det/ (~300р.)
- плата Arduino UNO (https://mamavrn.ru/go.php?url=aHR0cHM6Ly9ydS5hbGlleHByZXNzLmNvbS9pdGVtL1VOTy1SMy1kZXZlbG9wZW50LWJvYXJkLU1FR0EzMjhQLUNIMzQwLUNIMzQwRy1Gb3ItQXJkdWluby1VTk8tUjMtV2l0aG91dC1VU0ItQ2FibGUvMzI2NjQ3ODAzMDAuaHRtbD9zcG09MjExNC4xMDAxMDIwOC4xMDAwMDE0LjE0Lk5vWkdBNSZhbXA7c2NtPTEwMDcuMTMzMzguNzgxMjMuMDAwMDAwMDAwMDAwMDAwJmFtcDtwdmlkPTQ2ZTNhM2JhLWZhNWUtNDQ1My05NTM0LTdiYmVmZDYzMTgxZiZhbXA7dHBwPTE=) (235р.) Мозг дрона.
- плата расширения Motor Shield (https://mamavrn.ru/go.php?url=aHR0cHM6Ly9ydS5hbGlleHByZXNzLmNvbS9pdGVtL0ZyZWVzaGlwcGluZy1MMjkzRC1tb3Rvci1jb250cm9sLXNoaWVsZC1tb3Rvci1kcml2ZS1leHBhbnNpb24tYm9hcmQtRk9SLUFyZHVpbm8tbW90b3Itc2hpZWxkLzMyNTAyODE2NzI4Lmh0bWw/c3BtPTIxMTQuMDMwMTAyMDguMy4yOC5xb1J6OTUmYW1wO3dzX2FiX3Rlc3Q9c2VhcmNod2ViMF8wLHNlYXJjaHdlYjIwMTYwMl8yXzEwMDY1XzEwMDY4XzQzM180MzRfMTAxMzZfMTAxMzdfMTAxMzhfMTAwNjBfMTAwNjJfMTAxNDFfMTAwNTZfMTAwNTVfMTAwNTRfMTAwNTlfMjAxXzEwNTMxXzEwMDk5XzEwNTMwXzEwMTAzXzEwMTAyXzEwMDk2XzEyMF8xMDA1Ml8xMDE0NF8xMDA1M18xMDA1MF8xMDEwN18xMDE0Ml8xMDA1MV8xMDEwNl8xMDE0M18xMDUyNl8xMDUyOV8xMDUyOF8xMDUyM18xMDA4NF8xMDExN18xMDA4M18xMDExOV8xMDA4MF8xMDA4Ml8xMDA4MV8xMDExMF8xMDExMV8xMDExMl8xMDExM18xMDExNF8xMDA3OF8xMDA3OV8xMDA3M18xMDA3MF8xMDEyMl8xMDEyM18xMDEyMF8xMDEyN18xMDEyNF8xMDEyNS0xMDA1MF8xMDEyMCxzZWFyY2h3ZWIyMDE2MDNfNyxhZnN3aXRjaF8xX2FmQ2hhbm5lbCxwcGNTd2l0Y2hfNSxzaW5nbGVfc29ydF8wX2RlZmF1bHQmYW1wO2J0c2lkPTM3OGNiNGNhLTdjYTEtNGY2Yi1iMTZkLWNiYjc1MzUyYTIyOSZhbXA7YWxnb19leHBpZD0xNGM1OTI5My1jMmQ5LTRhYmEtOGIzZi1hYzc5NjQ5OWE0N2QtMyZhbXA7YWxnb19wdmlkPTE0YzU5MjkzLWMyZDktNGFiYS04YjNmLWFjNzk2NDk5YTQ3ZA==) (100р.) Для подключения двигателей.
- аккумулятрный блок (https://mamavrn.ru/go.php?url=aHR0cHM6Ly9ydS5hbGlleHByZXNzLmNvbS9pdGVtL1RvcC1RdWFsaXR5LUhvdC1TYWxlLTFwY3MtQUEtUG93ZXItQmF0dGVyeS1TdG9yYWdlLUNhc2UtUGxhc3RpYy1Cb3gtSG9sZGVyLVdpdGgtNC1TbG90cy8zMjY4NTgwOTMwMy5odG1sP3NwbT0yMTE0LjEwMDEwMjA4LjEwMDAwMTQuMTUucnlOaG9VJmFtcDtzY209MTAwNy4xMzMzOC43ODEyMy4wMDAwMDAwMDAwMDAwMDAmYW1wO3B2aWQ9OWJlMDczNzgtNmY4Ny00MmRmLTk1MjEtZTJjNzA1MmFjMzg1JmFtcDt0cHA9MQ==) на 4 аккумулятора АА (40р.)
- шаговый двигатель (https://mamavrn.ru/go.php?url=aHR0cHM6Ly9ydS5hbGlleHByZXNzLmNvbS9pdGVtL1NtYXJ0LUVsZWN0cm9uaWNzLTI4QllKLTQ4LTVWLTQtUGhhc2UtREMtR2Vhci1TdGVwcGVyLU1vdG9yLVVMTjIwMDMtRHJpdmVyLUJvYXJkLWZvci1BcmR1aW5vLzMyNzA0NjAyNjE4Lmh0bWw/c3BtPTIxMTQuMTAwMTAyMDguMTAwMDAxNC45LmZ1Ym5mbyZhbXA7c2NtPTEwMDcuMTMzMzguNzgxMjMuMDAwMDAwMDAwMDAwMDAwJmFtcDtwdmlkPWFhNzllMGU3LWRjMTItNDQzNC05MjNjLTFkZWQwM2E2NGVlMiZhbXA7dHBwPTE=) (100р.) Для поворота камеры.
- провода и пара светодиодов для фар можно добыть из какой-нибудь старой техники (0р.)
Итого 1475р.
Программа управления на Ардуино:
#include <AFMotor.h>
#include <IRremote.h>
#include <SoftwareSerial.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_Stepper motor3(2048, 2);
IRrecv irrecv(2);
decode_results results;
SoftwareSerial BTSerial(A0, A1);
char vcmd;
String voice;
void setup() {
BTSerial.begin(9600);
pinMode(19, OUTPUT);
motor1.setSpeed(200);
motor2.setSpeed(200);
motor3.setSpeed(200);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
while (BTSerial.available()){
delay(10);
char c = BTSerial.read();
// Вперед
if (c == 'F') {
motor1.run(FORWARD);
motor2.run(FORWARD);
Serial.println(c);break;
}
// Назад
if (c == 'B')
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
Serial.println(c);break;
}
// Влево
if (c == 'L')
{
motor1.run(BACKWARD);
motor2.run(FORWARD);
Serial.println(c);break;
}
// Вправо
if (c == 'R')
{
motor1.run(FORWARD);
motor2.run(BACKWARD);
Serial.println(c);break;
}
// Прямо и влево
if (c == 'G')
{
/*
motor3.step(1024, BACKWARD, INTERLEAVE);
motor3.release();
delay(1000);
Serial.println(c);break;
*/
}
// Прямо и вправо
if (c == 'I')
{ /*
motor3.step(1024, FORWARD, INTERLEAVE);
motor3.release();
delay(1000);
Serial.println(c);break;
*/
}
// Назад и влево
if (c == 'H')
{
motor3.step(1, BACKWARD, SINGLE);
Serial.println(c);break;
}
// Назад и вправо
if (c == 'J')
{
motor3.step(1, FORWARD, SINGLE);
Serial.println(c);break;
}
// Стоп
if (c == 'S')
{
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.release();
Serial.println(c);break;
}
if (c == 'X')
{
digitalWrite(19, HIGH);
Serial.println(c);break;
}
if (c == 'x')
{
digitalWrite(19, LOW);
Serial.println(c);break;
}
if (c == '#') {break;}
voice += c;
}
if (voice.length() > 0) {
Serial.println(voice);
if(voice == "*вперед")
{
motor1.run(FORWARD);
motor2.run(FORWARD);
delay(5000);
}
else if(voice== "*остановись")
{
motor1.run(RELEASE);
motor2.run(RELEASE);
}
else if(voice == "*налево")
{
motor1.run(BACKWARD);
motor2.run(FORWARD);
delay(1000);
}
else if(voice == "*направо") {
motor2.run(BACKWARD);
motor1.run(FORWARD);
delay(1000);
}
else if(voice == "*Включи свет") {digitalWrite(19, HIGH); }
else if(voice == "*Выключи свет") {digitalWrite(19, LOW); }
else if(voice == "*назад")
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
}
else if(voice == "*посмотри направо")
{
motor3.step(1024, FORWARD, INTERLEAVE);
}
else if(voice == "*посмотри налево")
{
motor3.step(1024, BACKWARD, INTERLEAVE);
}
//-----------------------------------------------------------------------//
voice="";}
//Reset the variable after initiating
/*
// Если есть данные
if (BTSerial.available())
{
// Читаем команды и заносим их в переменную. char преобразует код символа команды в символ
vcmd = (char)BTSerial.read();
// Отправляем команду в порт, чтобы можно было их проверить в «Мониторе порта»
Serial.println(vcmd);
// Вперед
if (vcmd == 'F') {
motor1.run(FORWARD);
motor2.run(FORWARD);
}
// Назад
if (vcmd == 'B')
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
}
// Влево
if (vcmd == 'L')
{
motor1.run(BACKWARD);
motor2.run(FORWARD);
}
// Вправо
if (vcmd == 'R')
{
motor1.run(FORWARD);
motor2.run(BACKWARD);
}
// Прямо и влево
if (vcmd == 'G')
{
}
// Прямо и вправо
if (vcmd == 'I')
{
}
// Назад и влево
if (vcmd == 'H')
{
}
// Назад и вправо
if (vcmd == 'J')
{
}
// Стоп
if (vcmd == 'S')
{
motor1.run(RELEASE);
motor2.run(RELEASE);
}
if (vcmd == 'X')
{
digitalWrite(19, HIGH);
}
if (vcmd == 'x')
{
digitalWrite(19, LOW);
}
}
*/
/*
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
//включить свет
if (results.value == 0xFFA857) {
digitalWrite(19, HIGH);
}
//выключить свет
if (results.value == 0xFFE01F) {
digitalWrite(19, LOW);
}
//повернуть голову направо
if (results.value == 0xFF30CF) {
motor3.step(1024, BACKWARD, INTERLEAVE);
}
//повернуть голову налево
if (results.value == 0xFF7A85) {
motor3.step(1024, FORWARD, INTERLEAVE);
}
//вперед
if (results.value == 0xFF18E7) {
motor1.run(FORWARD);
motor2.run(FORWARD);
}
//назад
if (results.value == 0xFF4AB5) {
motor1.run(BACKWARD);
motor2.run(BACKWARD);
}
//стоп
if (results.value == 0xFF38C7) {
motor1.run(RELEASE);
motor2.run(RELEASE);
}
//налево
if (results.value == 0xFF10EF) {
motor1.run(BACKWARD);
motor2.run(FORWARD);
delay(500);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
//направо
if (results.value == 0xFF5AA5) {
motor1.run(FORWARD);
motor2.run(BACKWARD);
delay(500);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
irrecv.resume(); // Receive the next value
}
delay(100);
*/
}
-
Какие вы молодцы и полезное дело и развитие ребёнка.