8 (800) 350-30-16

Собираем BB-8 своими руками. Часть 1

Дата: / Категория: Механика / Автор: DOC_tr

Насмотревшись на разных людей в интернете, которые собирают bb-8 своими руками (ну если быть точным, то только одного, потому что остальные собирали его на основе Sphero), я тоже решил сделать что либо такое подобное. В конце концов любой захочет себе маленького, красивого робота bb-8.

 

В данной статье я разберу как создать шар, и управлять им с помощью смартфона. К следующей статье я постараюсь раскрасить его в оригинальные цвета, и приделать голову. Голову приделать хочу не только для эстетической красоты, но и по той причине, что после поворота простого шара очень проблематично угадать на сколько он повернулся, и в какую сторону он поедет.

И так, приступим.

Все что нам нужно для нашего шарика это

Итого получаем 2600 - 3000 рублей. Для тех, кому жалко денег на самый дорогой ингредиент - глобус, могу предложить сделать его из папье маше. У меня лично ничего не получилось - шар из папье маше был слишком кривой, но вы можете попробовать. 

Как сделать чтобы наш шар катился? Нам для этого всего лишь нужна передвижная платформа, которая будет ездить внутри этого шара, и которая будет перемещать шар в нужном нам направлении.

Диаметр глобуса - 32 см. Так как платформа должна ездить по его дну, то сделаем ее меньше в полтора раза - 20 см.

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

 

После чего собираем двигатели - вставляем колеса в пазы, припаиваем к контактам двигателя провода. Именно припаиваем, так как у них нет разъемов, а в качестве контактов - 2 ушка. Конечно можно и просто примотать провод, но для верности я припаял.

После сборки получается достаточно маленький просвет между колесом и редуктором, поэтому я решил не делать крепления для двигателя, а посадить его на супер клей.

Помимо двигателей нам нужно еще разместить на платформе Arduino UNO, L298N батарейки (6 штук АА) для питания двигателей, крону для питания Arduino, и прилепить bluetooth модуль.

Собираем все это по следующей схеме

Схема получилась достаточно запутанная, но по факту ничего сложного. 6 батареек подключаем к драйверу, 9v к Arduino, и не забываем соединить землю от 6 батареек с землей Arduino. А про подключение всех остальных компонентов вы можете подробно прочитать в статье про драйвер, и статье про bluetooth.

И размещаем на платформе так, чтобы все компоненты поместились и были закреплены. Вот как получилось у меня.

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

А теперь заливаем простенький скетч на нашу Arduino. 

#include <DKParser.h>

Command inputCommands[] = {
Command(1, "j", "h", false)
};
DKParser parser(inputCommands, 1);

void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(9600);
}

int move = 0;
void loop(){
// Двигаемся в зависимости от запомненного положения джойстика.
switch(move){
case 1:
forvard();
break;
case 2:
left();
  break;
case 3:
back();
break;
case 4:
right();
break;
case 0:
stops();
break;
}
// Считываем положение джойстика
Command command = parser.commandAvailable();
switch (command.getId()) {
case 1:{
// Данные приходят вида ([0-9]+),([0-9]+)
// Первое число - градус, второе - удаление джойстика от центра (100 у самого края, 0 джойстик не двигается)
Serial.println(command.getValue());
int angle = getValue(command.getValue(), ',', 0).toInt();
int sped_j = getValue(command.getValue(), ',', 1).toInt();
// если джойстик не двигается, то не идем вне зависимости от угла
if(sped_j <= 10){
move = 0;
break;
}
if(angle >=45 && angle < 135){ // вперед
move = 1;
} if(angle >= 135 && angle < 225){ // влево
move = 2;
} if(angle >= 225 && angle < 315){ // назад
move = 3;
} if(angle >= 315 || angle < 45){ // вправо
move = 4;
}
break;
}
}
}

void stops(){
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}

void forvard(){
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
}

void back(){
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
}

void left(){
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
}

void right(){
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
}

// split
String getValue(String data, char separator, int index){
int found = 0;
int strIndex[] = {0, -1};
int maxIndex = data.length()-1;
for(int i=0; i<=maxIndex && found<=index; i++){
if(data.charAt(i)==separator || i==maxIndex){
found++;
strIndex[0] = strIndex[1]+1;
strIndex[1] = (i == maxIndex) ? i+1 : i;
}
}
return found>index ? data.substring(strIndex[0], strIndex[1]) : "";

Для управления как обычно использовалось приложение Gadget Controller. Более подробно о его использовании вы можете почитать в данной статье.

А теперь приступим непосредственно к корпусу. Берем глобус

Когда я его покупал - думал что экватор (на фотографии можно увидеть, что он выделяется из общего контура) будет мешать. Но, как выяснилось, экватор это просто загнутая бумага, а основа глобуса представляет собой 2 склеенные пластмассовые полусферы. Аккуратно срезаем ножом экватор, и изображение на глобусе отваливается само.

Клей, которым соединены 2 половинки легко режется ножом, и после чего я получил . . .

Помещаем внутрь платформу

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

На этой фотографии его достаточно отчетливо видно в правой части.

Склеим половинки скотчем и попробуем запустить нашего BB-8.

Первая часть работы сделана - у нас теперь есть шар, который может двигаться. К следующей статье я собираюсь доделать его голову, чтобы нормально можно было ориентироваться куда дальше тронется робот, и раскрасить его в соответствующие цвета.

Теги: #l298N, #Bluetooth, #HC-05, #BB-8

Ваша оценка:

Рейтинг: 9.8 (Оценок: 3)

Комментарий:

Copyright © RobOM.ru 2016 г. Все права защищены