Форум ModelldepO  

Вернуться   Форум ModelldepO > Моделизм > Электрика и DCC > Arduino
Ответ
 
Опции темы Опции просмотра
Старый 28.05.2020, 20:55   #1
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию Автоматика... без автоматики.

Имеитсо Z21 и имеется схема, разложенная на фанере временно, но надолго, из геолайна.

Стрелки все цифровые, управление - z21.

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

Гудят там перед стартом, объявления на станции и т.д. Захотелось, так сказать, экскрементов эксперементов.

Но обратную связь делать не охота, тк это времянка, геолайн и тд.

Какие будут мысли у уважаемого обчества?
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 28.05.2020, 21:43   #2
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Но обратную связь делать не охота, тк это времянка, геолайн и тд.

Какие будут мысли у уважаемого обчества?
Программа с точно рассчитанными временными интервалами. Интервалы подбираются экспериментально.

Примерный алгоритм:
1. Подготовить маршрут (переводим стрелки)
2. Запустить объявление
3. Погудеть и отправиться, скорость например 80, ждем 125 секунд, скорость 0. Поезд, сделав требуемое количество кругов, остановился на нужном пути станции. Плавный разгон и торможение - на совести декодера (CV3 и 4).
провести аналогичные операции с другим составом.

На Arduino собираетесь управлять? С этим я никогда не имел дело.

У меня на макете аналогичная задача решена с помощью скриптов JMRI, но на макете есть датчики, и скрипты руководствуются ими, а не интервалами (хотя интервалы в виде команды wait(1000 ms) тоже практикуются).

Без ОСа как-то некрасиво... Кстати геолайн не приговор - для него вроде есть герконы, вставляются в призму, провода в модуль ОС и вперед!
Alex_S вне форума  
Вверх
Старый 28.05.2020, 21:58   #3
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
Примерный алгоритм:
Да, так и сделал.

Цитата:
Сообщение от Alex_S Посмотреть сообщение
На Arduino собираетесь управлять?
Не, есть же z21.

---------- Сообщение добавлено в 23:58 ---------- Предыдущие сообщение было в 23:47 ----------

Ну в общем скрипты и программы использовать не стал, так как подумал, что они наложат некторые ограничения, а хочется низкоуровневой свободы.

Стал смотреть, на чем бы запрограммировать все это, и нашел язык Processing.

Процессинг - язык с философией ардуино. Тока для компов, а не для микроконтроллеров.

Более того, язык Wiring ардуиновский - это разновидность этого процессинга.

Из плюсов: простота кода даже для неуча типа меня, миллион библиотек на все случаи жизни, кросплатформенность. Те за 2 минуты можно сваять прогу для винды, мака, андроида и линукса одновременно.

Нашел библиотеку UDP, шоб мак коннектить прямо к зэтке по вайфаю.

И написал функции для управления макетом для удобства.

Код переключает маршрут (2 стрелки), гудит, запускает лок, ждет секунды, пока лок не вернется туда же, переключает маршрут, запускает второй лок. Обратной связи нет.

Код:
Скрытый текст
Arduino код:

// =======================================================================
// Програмная автоматизация для z21  
// Накрасноглазил: 
/*
____________________   ________._______________  _______  ________ 
\______   \______   \ /   __   \   ____/\   _  \ \   _  \/   __   \
 |    |  _/|       _/ \____    /____  \ /  /_\  \/  /_\  \____    /
 |    |   \|    |   \    /    //       \\  \_/   \  \_/   \ /    / 
 |______  /|____|_  /   /____//______  / \_____  /\_____  //____/  
        \/        \/                 \/        \/       \/         
*/


//========================================================================
import hypermedia.net.*; // import UDP library

// скачать UDP библиотеку: http://ubaa.net/shared/processing/udp/udp.zip

// Variables:
UDP udp;  // определяем UDP объект
String ip       "192.168.0.111";  // адрес нашей z21, смотрим в софтине на айпаде
int port        21105;    // порт z21 для PC
int times =1// кол-во циклов 

void setup() {
  
udp = new UDPthis21105 ); //21105 - z21 port for PC client
  //udp.log( true );         // раскомментить, если хотим видеть лог UDP
  
udp.listentrue ); 
  
println("z21 comm started..." );

  
set_track_power(true); // Питание на рельсы

}//end of setup

//process events
void draw() { // аналог функции loop() в ардуино

  
  // CONTROL HERE ==================================
   
println("Cycle: "+times);
   
   
set_turnout(30true); //переключаем стрелку с адресом 30 true-вбок, false - прямо
   
delay(500);
   
set_turnout(35false); 
   
   
//  гудок
   
set_loco_func(7222); //(адрес лока - 72, номер функции 0-24, 0/1/2 - вкл/выкл/пуш_баттон)(адрес лока, номер функции 0-24, 0/1/2 - вкл/выкл/пуш_баттон) 
   
delay(2000);
   
   
set_loco_drive(67false60); //V100 - запускаем лок с адресом 67, false/true-назад/вперед, 60 шагов (0-126)
   
delay(43430);  //43200- 43600 ждем 43,43 секунды 
   
set_loco_drive(67false0); // тормозим
   
delay(15000);
   
   
// TO are 35 and 30
   
set_turnout(30false); переключаем маршрут для V180
   delay
(500);
   
set_turnout(35true);
   
   
set_loco_drive(71false100); //V180 
   
delay(44000);  //
   
set_loco_drive(71false0);
   
delay(15000);
   
   

  
// ================================================
  
times=times+1;
//end of draw


// FUNCTIONS: ================================================================================================================================================================
// Power ON/OFF: false-off, true-on
void set_track_power(boolean onoff) {
  
byte[] buffer = new byte[7];
  
buffer[0] = byte(0x07); 
  
buffer[1] = byte(0x00); 
  
buffer[2] = byte(0x40); 
  
buffer[3] = byte(0x00); 
  
buffer[4] = byte(0x21); 
  if (
onoff) {//on
    
buffer[5] = byte(0x81); 
    
buffer[6] = byte(0xA0);
  } else {
//off
    
buffer[5] = byte(0x80); 
    
buffer[6] = byte(0xA1);
  }
  
udp.send(bufferipport );
// end of set_track_power


// Function to set the turnout: address = 1-255, state: 0-straight, 1-aside. 
void set_turnout(int addressboolean state) {
  
//LAN_X_SET_TURNOUT packet:
  
byte[] to_packet = new byte[9];
  
to_packet[0] = byte(0x09); //DataLen
  
to_packet[1] = byte(0x00); //DataLen
  
to_packet[2] = byte(0x40); //LAN_X_ header
  
to_packet[3] = byte(0x00); //LAN_X_ header
  
to_packet[4] = byte(0x53); //LAN_X_SET_TURNOUT X-Header
  
to_packet[5] = byte(0x00); //FAdr_MSB1
  
to_packet[6] = byte(address-1); //FAdr_LSB - addr =(address z21 - 1)
  
if (state==trueto_packet[7] = byte(unbinary("10000001")); //
  
if (state==falseto_packet[7] = byte(unbinary("10000000")); //
  
to_packet[8] = byte(to_packet[4]^to_packet[5]^to_packet[6]^to_packet[7]); //XOR-Byte 

  
udp.send(to_packetipport );
}
// end of set_turnout///////////////////


// LAN_X_SET_LOCO_DRIVE 
// Addess 1-100, direction: false-backward, true - forward, steps = 0-126
void set_loco_drive(int addressboolean directionint steps) {

  
byte[] packet = new byte[10];
  
packet[0] = byte(0x0A); //DataLen
  
packet[1] = byte(0x00); //DataLen
  
packet[2] = byte(0x40); //LAN_X_ header
  
packet[3] = byte(0x00); //LAN_X_ header
  
packet[4] = byte(0xE4); //LAN_X_SET_TURNOUT X-Header
  
packet[5] = byte(0x13); // DB0: 0x1S, where S = 0,2,3 => 14,28,128
  
packet[6] = byte(0x00); // DB1: Adr_MSB 
  
packet[7] = byte(address); // DB2: Adr_LSB 

  
byte DB3 0
  if (
direction==falseDB3 byte(unbinary("00000000")); //false-backward
  
if (direction==trueDB3 byte(unbinary("10000000")); 

  if (
steps!=0DB3=byte(DB3+steps+1);

  
packet[8] = byte(DB3); // DB3: RVVVVVVV, where R - direction, 1=forward. 
  
packet[9] = byte(packet[4]^packet[5]^packet[6]^packet[7]^packet[8]); //XOR-Byte 
  
udp.send(packetipport );
// end of set_loco_drive///////////////////////


void set_loco_func(int addressint funcint state ) {// state 0-off, 1-on, 2-toggle 

  
byte[] packet = new byte[10];
  
packet[0] = byte(0x0A); //DataLen
  
packet[1] = byte(0x00); //DataLen
  
packet[2] = byte(0x40); //LAN_X_ header
  
packet[3] = byte(0x00); //LAN_X_ header
  
packet[4] = byte(0xE4); //X-Header
  
packet[5] = byte(0xF8); // DB0: 0xF8
  
packet[6] = byte(0x00); // DB1: Adr_MSB 
  
packet[7] = byte(address); // DB2: Adr_LSB 

  
if (state==0) { // OFF
    
packet[8] = byte(func);//DB3
  
}
  if (
state==1) {//01 - ON
    
packet[8] = byte(64+func);//DB3
  
}
  
    if (
state==2) {//10 - toggle
    
packet[8] = byte(128+func);//DB3
  
}

  
packet[9] = byte(packet[4]^packet[5]^packet[6]^packet[7]^packet[8]); //XOR-Byte - контрольная сумма
  
udp.send(packetipport );
// end of set_loco_funk///////////////////////

void set_broadcastflags() {
  
byte[] packet = new byte[8];
  
packet[0] = byte(0x08); //DataLen
  
packet[1] = byte(0x00); //DataLen
  
packet[2] = byte(0x50); //LAN_X_ header
  
packet[3] = byte(0x00); //LAN_X_ header
  
packet[4] = byte(0x00); //LAN_X_SET_TURNOUT X-Header
  
packet[5] = byte(0x00); // DB0: 0x1S, where S = 0,2,3 => 14,28,128
  
packet[6] = byte(0x00); // DB1: Adr_MSB 
  
packet[7] = byte(0x01); // DB2: Adr_LSB 

  
udp.send(packetipport );
// end of set_loco_funk///////////////////////

/** 
 * on key pressed event:
 * send the current key value over the network
 */
void keyPressed() {
  
//set_loco_drive(67, false, 0);
  
exit(); 
  
//println(key);
}//end keypressed

/**
 * To perform any action on datagram reception, you need to implement this 
 * handler in your code. This method will be automatically called by the UDP 
 * object each time he receive a nonnull message.
 * By default, this method have just one argument (the received message as 
 * byte[] array), but in addition, two arguments (representing in order the 
 * sender IP address and his port) can be set like below.
 */
//void receive( byte[] data ) {             // <-- default handler
void receivebyte[] dataString ipint port ) {    // <-- extended handler
  // get the "real" message =
  // forget the ";\n" at the end <-- !!! only for a communication with Pd !!!
  //data = subset(data, 0, data.length-2);
  //String message = new String( data );

  // print the result
  //println( "receive: \""+message+"\" from "+ip+" on port "+port );
  //println( "receive: \""+data+"\" from "+ip+" on port "+port );



Кто захочет попробовать, тут скачать сам процессинг, тут библиотека UDP. Принцип установки всего такой же, как Arduino IDE.

Перед запуском кода подключиться к z21 по вайфаю на всякий случай отключить файрвол.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
3 пользователя(ей) сказали cпасибо:
Старый 28.05.2020, 22:13   #4
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Не, есть же z21.
тему создали в подразделе Ардуино, поэтому и спросил.
Цитата:
Сообщение от BR95009 Посмотреть сообщение
а хочется низкоуровневой свободы.
я выбрал JMRI чтобы не привязываться к конкретной КС, т.е. мои скрипты не опускаются до уровня протокола комп <=> КС. К тому же у меня Экос, он работает по TCP, и протокол дюже замороченный
Alex_S вне форума  
Вверх
Старый 28.05.2020, 22:19   #5
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
мои скрипты не опускаются до уровня протокола комп <=> КС
А там можно в скриптах запросить у станции потребление в миллиамперах и по этому условию выполнить какое нить действие?

---------- Сообщение добавлено в 00:19 ---------- Предыдущие сообщение было в 00:16 ----------

Цитата:
Сообщение от Alex_S Посмотреть сообщение
тему создали в подразделе Ардуино,
Ну, видимо таки придется датчики колхозить, но беспроводные и под призму геолайна.

Хотя без них оба состава проездили 20 циклов, при этом уход составит 5 см у одного и 3 см у другого, что терпимо. Те можно еще со временем задержки поиграть.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 28.05.2020, 22:21   #6
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
А там можно в скриптах запросить у станции потребление в миллиамперах и по этому условию выполнить какое нить действие?
Там можно все, что позволяет протокол КС.
Alex_S вне форума  
Вверх
Старый 28.05.2020, 22:21   #7
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
Кстати геолайн не приговор
Да они у меня к токовым датчикам подключаются. Но это же времянка. Хочется простоты.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 28.05.2020, 22:26   #8
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
проездили 20 циклов, при этом уход составит 5 см у одного и 3 см у другого, что терпимо.
Терпимо, а если при повторе программы точно такой же результат - повод "подкрутить" задержки.
А если иметь хотя бы один датчик, можно будет периодически по нему синхронизироваться.
Alex_S вне форума  
Вверх
Старый 28.05.2020, 22:39   #9
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
А если иметь хотя бы один датчик, можно будет периодически по нему синхронизироваться.
В эту сторону и смотрю. Штуки 3-5 мобильных и беспроводных.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 28.05.2020, 23:23   #10
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Штуки 3-5 мобильных и беспроводных.
жуть берет, когда ради бинарной команды (по сути один бит - есть поезд или нет) приходится городить обвес с беспроводными устройствами приема и передачи. Одно хорошо - хоть питание можно с рельс взять, раз токовые сенсоры не планируются...
Alex_S вне форума  
Вверх
Старый 29.05.2020, 13:42   #11
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

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

Написал кусок кода для считывания миллиампер с зэтки.

Соответственно, перед остановкой локомотива проверяем амперы. Если значение выше порогового для движения этого лока, то останавливаем лок и продолжаем алгоритм. Если ниже, то стоп алгоритм и сигнал тревоги.

Например в состоянии покоя амперы не выше 360 мач. При движении выше 400 (410-430).

Код чтения ампер со станции в функции-обработчике пакетов от станции:
Скрытый текст
Arduino код:
void receivebyte[] dataString ipint port ) {    // <-- extended handle

// Получаем значение ампер с  z21

  
if (data[2]== byte(0x84))// проверяем, что полученный пакет это LAN_SYSTEMSTATE_DATACHANGED
  
{    
    
int byteH data[9]<0?256+data[9]:data[9]; // конвертируем старший байт со знаком в целое без знака 
    
int byteL data[8]<0?256+data[8]:data[8]; // конвертируем младший байт со знаком в целое без знака 
    
int amp = (byteH<<8)+byteL// делаем из двух байтов одно целое и записываем в amp
    
println"Фильтрованные милиамперы="+amp); // выводим в лог
  
}
// конец функции обработчика 
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
2 пользователя(ей) сказали cпасибо:
Старый 29.05.2020, 14:16   #12
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Код чтения ампер со станции в функции-обработчике пакетов от станции:
Класс!
А это только с Z21 работает? С аналогами, прикидывающимися зеткой (я про DR5000) ваш код работать будет?

оффтопик
Alex_S вне форума  
Вверх
Старый 29.05.2020, 15:24   #13
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
А это только с Z21 работает? С аналогами, прикидывающимися зеткой (я про DR5000) ваш код работать будет?
Дык с ней и работает. Это я так, для упрощения z21 пишу. А так то у меня dr5000.

---------- Сообщение добавлено в 17:12 ---------- Предыдущие сообщение было в 17:10 ----------

оффтопик

---------- Сообщение добавлено в 17:24 ---------- Предыдущие сообщение было в 17:12 ----------

Вот что получается:
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
3 пользователя(ей) сказали cпасибо:
Старый 29.05.2020, 15:46   #14
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Вот что получается:
Неплохо. Это без датчиков ОС, только по таймерам программы?

А где эти плюшки?
Цитата:
Сообщение от BR95009 Посмотреть сообщение
Гудят там перед стартом, объявления на станции и т.д.
На этом вашем Processing это легко сделать или?...
Alex_S вне форума  
Вверх
Старый 29.05.2020, 16:19   #15
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
Неплохо. Это без датчиков ОС, только по таймерам программы?
Конечно.


Цитата:
Сообщение от Alex_S Посмотреть сообщение
А где эти плюшки?
Просто закоментировал, что бы время видео сократить.

Цитата:
Сообщение от Alex_S Посмотреть сообщение
На этом вашем Processing это легко сделать или?...
Конечно, они же в коде выше есть.
Скрытый текст

Arduino код:
   //  гудок
   
set_loco_func(7222); //(адрес лока - 72, номер функции 0-24, 0/1/2 - выкл/вкл/переключить)(адрес лока, номер функции 0-24, 0/1/2 - вкл/выкл/пуш_баттон) 
   
delay(2000); 




---------- Сообщение добавлено в 18:19 ---------- Предыдущие сообщение было в 18:01 ----------

Возникла крамольная мысля. Что бы не городить обратную связь.

Сделать механический прерыватель, который даст нагрузку на миллиампер в 300.

Лок наезжает, прога получает инфо, что датчег сработал, анализируя скачок нагрузки и останавливает лок.

В принципе, тк мне на маршрут нужно только одно срабатывание, и я знаю, куда приедет лок, так можно много датчиков наделать.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 29.05.2020, 16:38   #16
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Конечно, они же в коде выше есть.
А, звуки в декодерах... Я имел ввиду mp3 или wav файлы на том устройстве, где работает интерпретатор Processing (или исполняется компилированная прога).

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Возникла крамольная мысля. Что бы не городить обратную связь.
Сделать механический прерыватель, который даст нагрузку на миллиампер в 300.
Лок наезжает, прога получает инфо, что датчег сработал, анализируя скачок нагрузки и останавливает лок.
А КС шлет udp с нагрузкой постоянно, по запросу вашей проги или по скачку нагрузки???
Alex_S вне форума  
Вверх
Старый 29.05.2020, 16:44   #17
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
по запросу вашей проги
По запросу.

---------- Сообщение добавлено в 18:44 ---------- Предыдущие сообщение было в 18:41 ----------

Цитата:
Сообщение от Alex_S Посмотреть сообщение
А, звуки в декодерах... Я имел ввиду mp3 или wav файлы на том устройстве, где работает интерпретатор Processing (или исполняется компилированная прога).
Ну это вообще без проблем.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 29.05.2020, 17:03   #18
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
По запросу.
Ого. Простенькой линейной программулькой тут не обойтись.
А состояние датчиков и пр. в протоколе Z21 тоже надо поллить программой или Z21 сама шлет при изменении состояния?
Alex_S вне форума  
Вверх
Старый 29.05.2020, 17:17   #19
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
Z21 сама шлет при изменении состояния?
Сама шлет.

---------- Сообщение добавлено в 19:17 ---------- Предыдущие сообщение было в 19:13 ----------

Цитата:
Сообщение от Alex_S Посмотреть сообщение
Ого. Простенькой линейной программулькой тут не обойтись.
Да не, не только по запросу. Можно выставить броадкаст флаг, что бы она слала это автоматом при изменении.

0x00000100
Changes of the Z21 system status are sent automatically.
Z21 Broadcast messages see 2.18 LAN_SYSTEMSTATE_DATACHANGED

Вообще, что бы настроить, что она должна слать сама, достаточно выставить соответсвующие броадкаст флаги командой LAN_SET_BROADCASTFLAGS.

Я ее тоже в виде функции оформил в коде сверху.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Пользователь сказал cпасибо:
Старый 01.06.2020, 10:55   #20
Harman
Заглянувший
 
Аватар для Harman
 
Регистрация: 09.08.2009
Адрес: Донецк
Сообщений: 63
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 5
Поблагодарили 71 раз(а) в 16 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (71)
По умолчанию

Зачем всё так усложнять? Ардуино, пару герконов на станции (на каждый путь) и магниты на локах. Все будет работать, не надо ничего чудить.
Harman вне форума  
Вверх
Старый 01.06.2020, 12:25   #21
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Harman Посмотреть сообщение
Зачем всё так усложнять?
Хочется найти простое решение для нафанерных покатушек. Без проводов и модификации локов.

Подключил и все. Пока попытаюсь отслеживать таки по скачку нагрузки(хотя это конечно так себе вариант) и токовый датчег в рельсе геолайн с беспроводным модулем. Второй модуль - приемник - напрямую через дуню подключен к юсб компа.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 01.06.2020, 14:45   #22
Harman
Заглянувший
 
Аватар для Harman
 
Регистрация: 09.08.2009
Адрес: Донецк
Сообщений: 63
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 5
Поблагодарили 71 раз(а) в 16 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (71)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Хочется найти простое решение
Противоречит:

Цитата:
Сообщение от BR95009 Посмотреть сообщение
беспроводным модулем
Цитата:
Сообщение от BR95009 Посмотреть сообщение
Второй модуль - приемник - напрямую через дуню подключен к юсб компа
"Модификация лока" в виде "магнита на жвачке" куда проще чем задействовать ПК для "фанерных покатушек". Беспроводные модули с датчиком тока потребуют куда больше проводов чем геркон.
Harman вне форума  
Вверх
Старый 01.06.2020, 15:20   #23
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,837
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 972
Поблагодарили 2,652 раз(а) в 1,569 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
1 Всего
Репутация: репутация неоспорима (2678)
По умолчанию

Цитата:
Сообщение от Harman Посмотреть сообщение
Беспроводные модули с датчиком тока потребуют куда больше проводов чем геркон.
Это смотря как считать.
Потому как если считать не в количестве, а в метраже, то потребуется много меньше.
Alexmit вне форума  
Вверх
Старый 01.06.2020, 16:29   #24
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (9364)
По умолчанию

Цитата:
Сообщение от Harman Посмотреть сообщение
Противоречит:
Я поясню: хочется простое решение не в смысле разработки, а в смысле использования. Воткнул и забыл, шоб провода не тянуть, рельсы не изолировать, жвачку не покупать. А вот как раз разработка такого решения не пугает, и даже наоборот, притягивает.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума  
Вверх
Старый 01.06.2020, 18:35   #25
pandrey
Местный
 
Аватар для pandrey
 
Регистрация: 12.01.2010
Адрес: Геленджик
Сообщений: 2,773
Сказал(а) 'не согласен(а)'!: 28
Сказали 'не согласен'! 10 раз(а) в 9 сообщениях
Сказал(а) спасибо: 7,165
Поблагодарили 5,542 раз(а) в 1,369 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
1 Всего
Репутация: репутация неоспорима (5582)
С Днём Варенья!
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Я поясню: хочется простое решение не в смысле разработки, а в смысле использования. Воткнул и забыл, шоб провода не тянуть, рельсы не изолировать, жвачку не покупать. А вот как раз разработка такого решения не пугает, и даже наоборот, притягивает.
Учитывая, что без обратки, хотя бы минимальной, организовать автоматику невозможно(утверждение, хоть и спорное, но весьма приближенное к реальности), получаем задачу:
Во-первых, создать некое устройство, которое поместится в геолайне, которое будет питаться от рельс, которое будет использовать рельсы для передачи данных.
Во-вторых, создать устройство, читающее с рельс показания датчиков и передающее данные командной станции.

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

В теории возможно! Ардуинщикам, думается, под силу. Нужно знания + время.
pandrey вне форума  
Вверх
Пользователь сказал cпасибо:
Ответ

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Софт автоматики для Z21 t1000a Roco Z21 12 15.03.2015 13:28
Вопрос по устройству автоматики в цифре Will Электрика и DCC 27 05.12.2013 17:29
работает ли автоматика СЦБ на РЖД Arendatr Флейм 64 23.09.2013 13:31
Автоматика светофоров svizard Электрика и DCC 7 19.11.2008 18:04


Текущее время: 02:43. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -