Список форумов » Общение на астрономические темы » Обсуждение оборудования / софта / книжек |
Пред. тема | Первое новое сообщение | След. тема Страница 3 из 4 [ Сообщений: 77 ] На страницу Пред. 1, 2, 3, 4 След. |
Начать новую тему | Комментировать |
Электоро фокусер HELP |
---|
Re: Электоро фокусер HELP |
konst/ - Эксперт |
02 мар 2015, 10:00 |
у матери постепенно выбрасывается комп, задумался, а не наложить ли на него свою грязную лапу? На нем даже ком-порт есть, можно соединять напрямую, без екумодовского шнурка. Единственный (но существенный) недостаток - РАЗМЕР. Здоровая конструкция, сцуко, на щёку монти уже так просто не повесить....
|
Последнее сообщение |
Re: Электоро фокусер HELP |
sypai - Администратор |
02 мар 2015, 21:15 |
вас не поймешь. То моя идея с мини компом вас не устраивает, то он лепить допотопный собрался на щеку.
|
Re: Электоро фокусер HELP |
konst/ - Эксперт |
02 мар 2015, 21:34 |
sypai писал(а) вас не поймешь. То моя идея с мини компом вас не устраивает, то он лепить допотопный собрался на щеку. Не понял. Когда меня не устраивала идея с миникомпом? Вопрос - как его на щеку лепить... И что за миникомп? |
Re: Электоро фокусер HELP |
sypai - Администратор |
02 мар 2015, 21:52 |
=() Когда Когда .. вот начинается. Тот самый комп - ягода который.
http://www.dns-shop.ru/catalog/i1002587 ... -8gb-.html И в конце концов есть лэптопы разной величины, всяко лучше ягодных. |
Re: Электоро фокусер HELP |
Игорь - Эксперт |
02 мар 2015, 22:19 |
Что флудим в теме про электрофокусер???
|
Re: Электоро фокусер HELP |
serzg - Эксперт |
10 окт 2015, 12:54 |
Народ! Кто допишет, а то работает только move to\ move in.
http://www.astroclub.kiev.ua/forum/inde ... #msg496230 Для меня это китайская грамота. |
Re: Электоро фокусер HELP |
Игорь - Эксперт |
10 окт 2015, 15:48 |
Что именно дописать? Поподробнее. Проект рабочий.
|
Re: Электоро фокусер HELP |
serzg - Эксперт |
10 окт 2015, 20:12 |
Игорь писал(а) Что именно дописать? Поподробнее. Проект рабочий. Переделать этот манускрипт под А4988 https://github.com/hippieua/Arduino-ASC ... 75_DS18B20 Другой вариант, заиметь DRV8834, но в Воронеже не получилось. |
Re: Электоро фокусер HELP |
Игорь - Эксперт |
10 окт 2015, 20:24 |
ААА, там надо дописать кое что. Сейчас вспомню и подправлю код немного. Но там еще есть косяк, программа управления не все шаги поддерживает.
|
Re: Электоро фокусер HELP |
serzg - Эксперт |
10 окт 2015, 20:38 |
Игорь писал(а) ААА, там надо дописать кое что. Сейчас вспомню и подправлю код немного. Но там еще есть косяк, программа управления не все шаги поддерживает. Игорь! Спасибо. Да все и не надо, 1/16 и всего делов. Ну на всякий случай, для скорости, 1/1. А в идеале надо два варианта. 1. Две кнопки, нажал,- крутится вперед, нажал другую,- крутится назад + скорость. (Недостроенный Добсон). Без Ардуины, ваще песня. 2. Фокусер с компа, понятно, работает, но очень хочется те же две кнопки и индикатор. |
Re: Электоро фокусер HELP |
Игорь - Эксперт |
10 окт 2015, 20:40 |
Re: Электоро фокусер HELP |
serzg - Эксперт |
10 окт 2015, 21:01 |
Игорь писал(а) Соответственно для правильной работы А4988 надо немного изменить прошивку: (Сейчас допишу) Дык из-за чего вся канитель. И еще, 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 |
serzg - Эксперт |
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 |
serzg - Эксперт |
10 окт 2015, 22:14 |
Игорь писал(а) Подправленный код работает? Не а. |
Вернуться к началу |
Начать новую тему | Комментировать |
На страницу Пред. 1, 2, 3, 4 След. Страница 3 из 4 [ Сообщений: 77 ] Пред. тема | Первое новое сообщение | След. тема |
Список форумов » Общение на астрономические темы » Обсуждение оборудования / софта / книжек |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2 |
STG-Mobile Theme © 2008 STG Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group Mobile Style © 2008 STG Рекомендую создать свой форум бесплатно на http://4admins.ru Русская поддержка phpBB |
Полная версия форума |