Пред. тема | Первое новое сообщение | След. тема
Страница 3 из 4 [ Сообщений: 77 ]
На страницу Пред.  1, 2, 3, 4  След.
Начать новую тему Комментировать

Электоро фокусер HELP

Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
02 мар 2015, 10:00 Новое сообщение
у матери постепенно выбрасывается комп, задумался, а не наложить ли на него свою грязную лапу? На нем даже ком-порт есть, можно соединять напрямую, без екумодовского шнурка. Единственный (но существенный) недостаток - РАЗМЕР. Здоровая конструкция, сцуко, на щёку монти уже так просто не повесить....
Последнее сообщение


Re: Электоро фокусер HELP

Не в сети - Администратор
Профиль  WWW  ICQ 
02 мар 2015, 21:15 Новое сообщение
вас не поймешь. То моя идея с мини компом вас не устраивает, то он лепить допотопный собрался на щеку. :unknown:


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
02 мар 2015, 21:34 Новое сообщение
sypai писал(а)
вас не поймешь. То моя идея с мини компом вас не устраивает, то он лепить допотопный собрался на щеку. :unknown:


Не понял. Когда меня не устраивала идея с миникомпом? Вопрос - как его на щеку лепить... И что за миникомп?


Re: Электоро фокусер HELP

Не в сети - Администратор
Профиль  WWW  ICQ 
02 мар 2015, 21:52 Новое сообщение
=() Когда Когда .. вот начинается. Тот самый комп - ягода который.
http://www.dns-shop.ru/catalog/i1002587 ... -8gb-.html

И в конце концов есть лэптопы разной величины, всяко лучше ягодных.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
02 мар 2015, 22:19 Новое сообщение
Что флудим в теме про электрофокусер??? :evil:


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 12:54 Новое сообщение
Народ! Кто допишет, а то работает только move to\ move in.
http://www.astroclub.kiev.ua/forum/inde ... #msg496230
Для меня это китайская грамота. :unknown:


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 15:48 Новое сообщение
Что именно дописать? Поподробнее. Проект рабочий.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 20:12 Новое сообщение
Игорь писал(а)
Что именно дописать? Поподробнее. Проект рабочий.

Переделать этот манускрипт под А4988
https://github.com/hippieua/Arduino-ASC ... 75_DS18B20
Другой вариант, заиметь DRV8834, но в Воронеже не получилось.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 20:24 Новое сообщение
ААА, там надо дописать кое что. Сейчас вспомню и подправлю код немного. Но там еще есть косяк, программа управления не все шаги поддерживает.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 20:38 Новое сообщение
Игорь писал(а)
ААА, там надо дописать кое что. Сейчас вспомню и подправлю код немного. Но там еще есть косяк, программа управления не все шаги поддерживает.

Игорь! Спасибо.
Да все и не надо, 1/16 и всего делов. Ну на всякий случай, для скорости, 1/1.
А в идеале надо два варианта.
1. Две кнопки, нажал,- крутится вперед, нажал другую,- крутится назад + скорость. (Недостроенный Добсон). Без Ардуины, ваще песня.
2. Фокусер с компа, понятно, работает, но очень хочется те же две кнопки и индикатор.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 20:40 Новое сообщение
У драйвера DRV8834 режимами микрошага управляют через 2 пина (М0, М1)
Изображение
Изображение

У драйвера A4988 режимами микрошага управляют через 3 пина (MS1, MS2, MS3)
Изображение
Изображение

Соответственно для правильной работы А4988 надо немного изменить прошивку:


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:01 Новое сообщение
Игорь писал(а)
Соответственно для правильной работы А4988 надо немного изменить прошивку:
(Сейчас допишу)

Дык из-за чего вся канитель. :no:
И еще, SLEEP <--> D4, как быть с этими ногами?


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:05 Новое сообщение
Вот переделанный код, переделки отмечены красным

#include <AccelStepper.h> // Stepper Control Library
#include <SerialCommand.h> // Serial Commands Library
#include <Wire.h> // Wire for LM75
#include <LM75.h> // LM75 Library
#include <OneWire.h> //
#include <DallasTemperature.h> // 1W For DS18B20 Temp sensor

#define MS1 8 // Control Driver resolution Выбрать в соответствии со схемой включения
#define MS2 7 // Control Driver resolution Выбрать в соответствии со схемой включения
#define MS3 6 // Control Driver resolution Выбрать в соответствии со схемой включения
#define SLEEP 4 // Control Driver ENABLE \ DISABLE
#define ONE_WIRE_BUS 11
#define DEVICE_RESPONSE "E24.Focuser" // equal to DEVICE_RESPONSE

//////////////////////////////////////////////////////////////////

unsigned long mov = 0; // Current Position
unsigned long set_current_pos; // Desired Position

bool is_mov = false; // IsMoving
bool sleep_state = false; // Sleep
bool TempComp = false; // TempComp disabled by default
bool Revers = false; // Reverse direction

double temperature1; // Sensor #1 Temp
double temperature2; // Sensor #2 Temp
double temperature3; // Sensor #3 Temp
double _temperature; // Control Temp for TempComp

unsigned int spd = 800; // Default Speed pulse per second
unsigned int accel = 400; // Default Acceleration
unsigned int sleep_delay = 0; // Sleep delay in sec 0 disabled
unsigned long last_move_time = 0; // Time for auto sleep

byte res = 4; // Default MicroStep

//////////////////////////////////////////////////////////////////

AccelStepper stepper(1, A2, A3); // pin A2 = step, pin A3 = direction
SerialCommand sCmd; // The SerialCommand object
LM75 sensor;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
Serial.begin(9600);
sensors.begin(); // Turn on temp sensor
Wire.begin();
LM75 sensor;

pinMode(SLEEP, OUTPUT);
digitalWrite(SLEEP, HIGH);

setresolution(); // Set SM resolution
stepper.setMaxSpeed(spd); // Set SM Speed
stepper.setAcceleration(accel); // Set SM Acceleration

sCmd.addCommand("#", HelloHS); // Check DEVICE_RESPONSE

sCmd.addCommand("S", setSpeed); // Speed management
sCmd.addCommand("A", setAccel); // Acceleration management
sCmd.addCommand("B", setRes); // Set SM resolution
sCmd.addCommand("R", setPos); // Set SM position
sCmd.addCommand("C", setSLPTime); // Set sleep delay in sec
sCmd.addCommand("Z", setRevers); // Revers

sCmd.addCommand("M", moveSM); // Move command
sCmd.addCommand("T1", getTemp1); // Read temp #1 sensor
sCmd.addCommand("T2", getTemp2); // Read temp #1 sensor
sCmd.addCommand("T3", getTemp3); // Read temp #1 sensor
sCmd.addCommand("H", Halt); // Halt SM
sCmd.addCommand("I", getIsMov); // Is SM moving true \ false
sCmd.addCommand("P", getPos); // Current Position

sCmd.setDefaultHandler(unrecog); // All other: send ERR

}

void loop()
{
if(is_mov == false)
{
if(millis() % 5000 == 0) // Re-read sensors every 5 sec
{
sensors.requestTemperatures();

temperature1 = sensor.temp();
temperature2 = sensors.getTempCByIndex(0); // Modify to use with 2nd sensor

temperature3 = sensor.temp(); // Modify to use with 3rd sensor
}

if(sleep_delay > 0) // Checks: If sleep delay is on
{
check_time();
}
}

sCmd.readSerial(); // 1st: read input from com port
stepper_run();
}

// # Handshake
void HelloHS()
{
Serial.println(F(DEVICE_RESPONSE));
}
// S Set Speed
void setSpeed()
{
char *arg = sCmd.next();
spd = atoi (arg);
stepper.setMaxSpeed(spd);
Serial.println("S");
}
// A Set Acceleration
void setAccel()
{
char *arg = sCmd.next();
accel = atoi (arg);
stepper.setAcceleration(accel);
Serial.println("A");
}

//B Set Resolution
void setRes()
{
char *arg = sCmd.next();
res = atol(arg);
setresolution();
Serial.println("B");
}

// R Set Position
void setPos()
{
char *arg = sCmd.next();
set_current_pos = atol(arg);
stepper.setCurrentPosition(set_current_pos);
stepper.moveTo(set_current_pos);
Serial.println("R");
}

// C Set Sleep Time
void setSLPTime()
{
char *arg = sCmd.next();
sleep_delay = atol(arg);
Serial.println("C");
}

// Command: Z
void setRevers()
{
char *arg = sCmd.next();
Revers = atoi(arg);
stepper.setPinsInverted(Revers);
Serial.println("Z");
}

// M Command MOVE
void moveSM()
{
char *arg = sCmd.next();
last_move_time = millis();
mov = atol(arg);
stepper.moveTo(mov);
Serial.println("M");
}

// T1 Get Temperature 1
void getTemp1()
{
Serial.print("T:");
Serial.println(temperature1);
}

// T1 Get Temperature 2
void getTemp2()
{
Serial.print("T:");
Serial.println(temperature2);
}

// T1 Get Temperature 3
void getTemp3()
{
Serial.print("T:");
Serial.println(temperature3);
}

// H Halt SM
void Halt()
{
stepper.moveTo(stepper.currentPosition());
Serial.println('H');
}

// I IsMoving
void getIsMov()
{
if (is_mov == 1)
{
Serial.println("I:true");
}
else
{
Serial.println("I:false");
}
}

// P Position
void getPos()
{
Serial.print("P:");
Serial.println(stepper.currentPosition());
}

// All other Command: ERROR
void unrecog(const char *command)
{
Serial.print("ERROR: ");
Serial.println(command);
}

void setresolution(){
switch (res) {
case 1:{
pinMode(MS1, OUTPUT); digitalWrite(MS1, LOW); // Полный шаг
pinMode(MS2, OUTPUT); digitalWrite(MS2, LOW);
pinMode(MS3, OUTPUT); digitalWrite(MS3, LOW);
break;
}
case 2:{
pinMode(MS1, OUTPUT); digitalWrite(MS1, HIGH); // 1/2 шага
pinMode(MS2, OUTPUT); digitalWrite(MS2, LOW);
pinMode(MS3, OUTPUT); digitalWrite(MS3, LOW);
break;
}
case 4:{
pinMode(MS1, OUTPUT); digitalWrite(MS1, LOW); // 1/4 шага
pinMode(MS2, OUTPUT); digitalWrite(MS2, HIGH);
pinMode(MS3, OUTPUT); digitalWrite(MS3, LOW);
break;
}
case 8:{
pinMode(MS1, OUTPUT); digitalWrite(MS1, HIGH); // 1/8 шага
pinMode(MS2, OUTPUT); digitalWrite(MS2, HIGH);
pinMode(MS3, OUTPUT); digitalWrite(MS3, LOW);
break;
}
case 16:{
pinMode(MS1, OUTPUT); digitalWrite(MS1, HIGH); // 1/16 шага
pinMode(MS2, OUTPUT); digitalWrite(MS2, HIGH);
pinMode(MS3, OUTPUT); digitalWrite(MS3, HIGH);
break;
}
}
}

void stepper_run()
{
if (stepper.distanceToGo() != 0)
{
last_move_time = millis();
is_mov = true;
stepper.run();
}
else
{
is_mov = false;
}
}

void check_time()
{
if ((millis() - last_move_time) > sleep_delay*1000 && sleep_state == false)
{
digitalWrite(SLEEP, LOW);
sleep_state = true;
}
else if (millis() - last_move_time < sleep_delay*1000 && sleep_state == true)
{
digitalWrite(SLEEP, HIGH);
sleep_state = false;
}
}


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:11 Новое сообщение
serzg писал(а)
И еще, SLEEP <--> D4, как быть с этими ногами?

Sleep соедини с Reset, по крайней мере так на сайте производителя.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:20 Новое сообщение
С кнопками и LCD дисплеем надо мудрить код серьезней и отлаживать на уже собранной плате. Если надумаю собирать то допишу под кнопки.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:23 Новое сообщение
Игорь писал(а)
С кнопками и LCD дисплеем надо мудрить код серьезней и отлаживать на уже собранной плате. Если надумаю собирать то допишу под кнопки.

Ок.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:25 Новое сообщение
#define MS1 8 // Control Driver resolution Выбрать в соответствии со схемой включения
#define MS2 7 // Control Driver resolution Выбрать в соответствии со схемой включения
#define MS3 6 // Control Driver resolution Выбрать в соответствии со схемой включения

Тут надо правильно подключить выводы драйвера к выводам ардуины, MS1 к выводу 8, MS2 к выводу 7, MS3 к выводу 6. Или поменять на те какие удобно использовать.


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:26 Новое сообщение
Подправленный код работает?


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 21:58 Новое сообщение
Сергей, забыл спросить хоть и особо не имеет значения, на основе какой ардуины делаешь?


Re: Электоро фокусер HELP

Не в сети - Эксперт
Профиль 
10 окт 2015, 22:14 Новое сообщение
Игорь писал(а)
Подправленный код работает?

Не а. :no:
Вернуться к началу

Начать новую тему  Комментировать
На страницу Пред.  1, 2, 3, 4  След.
Страница 3 из 4 [ Сообщений: 77 ]
Пред. тема | Первое новое сообщение | След. тема




Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Найти
Перейти
 
cron
Полная версия форума