Realbikers Club  

Вернуться   Realbikers Club > Техническая сторона вопроса > Теория

Ответ
Опции темы Опции просмотра
Непрочитано 22.09.2015, 16:31   #21
felix
Форумчанин
 
Аватар для felix
 
Регистрация: 08.10.2008
Адрес: Украина, Сумы
Возраст: 30
Сообщений: 1,399
По умолчанию

Примерный вариант системы получается таким:
Видео
*****

*****
__________________
Новые велокомпоненты

одноногая илита
felix вне форума   Ответить с цитированием
Непрочитано 22.09.2015, 16:45   #22
felix
Форумчанин
 
Аватар для felix
 
Регистрация: 08.10.2008
Адрес: Украина, Сумы
Возраст: 30
Сообщений: 1,399
По умолчанию

прошивка выглядит так

#include (Servo.h) //подключаем библиотеку Servo.h для работы с сервоприводом. Вместо () должны быть <>

Servo motor; //создаем инстанцию нашего сервопривода
const int b1 = 7; //константе b1 присваиваем значение 7, на порте 7 будет висеть button 1
const int b2 = 4; //константе b2 присваиваем значение 4, на порте 4 будет висеть button 2
int bs1 = 0; //переменная для хранения состояния кнопки button1
int bs2 = 0; //переменная для хранения состояния кнопки button2
int a = 90; //переменная угла поворота сервопривода. Для начала ставим его по центру (90°)

void setup()
{
Serial.begin(9600); //открываем последовательный порт для мониторинга на компе работы программы
pinMode(b1, INPUT); //инициализуерм пин кнопки 1 как вход
pinMode(b2, INPUT); //инициализуерм пин кнопки 2 как вход
motor.attach(10); //указываем на каком пине сидит серва
motor.write(a); //ставим ее изначально на 90°
delay(50); //ждем 50миллисекунд для поворота вала
Serial.println(a); //выдаем в последовательный порт значение текущего угла
}

void loop()
{
bs1 = digitalRead(b1); //проверяем состояние кнопки 1
bs2 = digitalRead(b2); //проверяем состояние кнопки 2

if (bs1 == HIGH && a < 180) { //если кнопка 1 нажата и угол сервы меньше 180°
a = a + 15; //увеличиваем угол на 15° (позже будет подобран нужный шаг)
motor.attach(10); //аттачим серву на пин 10
motor.write(a); //поворачиваем серву
delay(500); //ждем пол секунды
Serial.println(a); //подаем в порт инфу где мы сейчас
motor.detach(); //отрубаем серву (экономим энергию)
}
else { //если кнопка 1 не была нажата - проверяем кнопку 2
if (bs2 == HIGH && a > 0) { //если кнопка 2 нажата и угол сервы больше 0°
motor.attach(10); //врубаем серву на порт10
a = a - 15; //уменьшаем угол на 15°
motor.write(a); //поварачиваем серву
delay(500); // ждем пол секунды
Serial.println(a); //пишем в порт инфу
motor.detach(); //отключаем серву
}
}
}
__________________
Новые велокомпоненты

одноногая илита
felix вне форума   Ответить с цитированием
Непрочитано 22.09.2015, 16:54   #23
felix
Форумчанин
 
Аватар для felix
 
Регистрация: 08.10.2008
Адрес: Украина, Сумы
Возраст: 30
Сообщений: 1,399
По умолчанию

кто нормально шарит в С - предлагайте свои идеи по исправлению\изменению софтины. Т.к. я уже лет 7-8 на С ничего не писал

зы: хорошо что вместе с макеткой приобрел и плату внешнего питания. Если питать серву напрямую от ардуины, то она просаживает напряжение на плате и плата уходит в ребут. В итоге успевает выполнится только начало программы и серва без остановки ползет в одну сторону.
зы2:при подключении отдельного питания ничего не изменилось. Пришлось час курить инет, пока на офф сайте ардуины в разделе сервопривода не попалась на глаза очень важная строчка "Be sure to connect the grounds of the Arduino and external power supply together." Соеденив GND внешнего питания и ардуины серва начала делать то, что я от нее просил.

Поидее без велосипеда сделано все, что было нужно. Теперь нужно это как-то закрепить на байке и тестить.
__________________
Новые велокомпоненты

одноногая илита
felix вне форума   Ответить с цитированием
Непрочитано 21.10.2015, 12:17   #24
Michael
Форумчанин
 
Регистрация: 16.10.2008
Сообщений: 19
По умолчанию

Прикольная идея
Еще датчик скорости, и можно сделать коробку-автомат
Aрдуино вещь хорошая, но годится только для прототипов. Для реального использования проще и дешевле взять микроконтроллер. В этом случае должно хватить даже attiny13
Michael вне форума   Ответить с цитированием
Непрочитано 22.10.2015, 15:08   #25
felix
Форумчанин
 
Аватар для felix
 
Регистрация: 08.10.2008
Адрес: Украина, Сумы
Возраст: 30
Сообщений: 1,399
По умолчанию

Цитата:
Сообщение от Michael Посмотреть сообщение
Прикольная идея
Еще датчик скорости, и можно сделать коробку-автомат
Aрдуино вещь хорошая, но годится только для прототипов. Для реального использования проще и дешевле взять микроконтроллер. В этом случае должно хватить даже attiny13
С одним датчиком скорости ничего толкового не будет. Нужен еще датчик каденса, как минимум. А по-нормальному так еще и гироскоп.
Про аттини вкурсе. Если будет остро стоять вопрос экономии места\энергии - тогда возможно. А так особого смысла не вижу. Pro mini занимает очень мало место и удобна в работе (подключении\прошивке). А если сковырнуть светодиод и изучить вопрос энергосбережения, то ее можно доработать до ооооочень малого потребления тока. От 1-2 18650 будет работать месяцами. В этой схеме главный прожора - сервопривод.

зы: сейчас докуплю кнопки и парочку аккумов 18650. По приезду кнопок займусь изготовлением манетки. Где у нас есть 3d печать уже подсказали (спасибо DimonM27).
__________________
Новые велокомпоненты

одноногая илита
felix вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.

Быстрый переход


Часовой пояс GMT +2, время: 19:09.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot