Форум ModelldepO

Форум ModelldepO (http://forum.modelldepo.ru/index.php)
-   Arduino (http://forum.modelldepo.ru/forumdisplay.php?f=220)
-   -   A21 - ком. станция с поддержкой Z21 на 4A без пайки. (http://forum.modelldepo.ru/showthread.php?t=18339)

Andrew78 21.03.2017 11:21

Посмотрел, в описании есть мак адрес, но он совпадает с прописанным в стандартном примере, но вечером перепроверю еще раз.

BNSF9399 21.03.2017 11:40

Цитата:

Сообщение от Tolyan (Сообщение 296011)
А то по умолчанию все локи в обратную сторону в отличие от роковской КС

Ну если я правильно понял немецкий
Цитата:

27.02.2016 Änderung Dekodierung DCC14 und DCC28
Invertierung Fahrtrichtung DCC Decoder DIRF
то так и должно быть.

Цитата:

Сообщение от Tolyan (Сообщение 296011)
как прграммно сделать реверс?

надо "ковырять" библиотеку Z21.cpp
Как я понял, гдето тут
Код:

                  case LAN_X_SET_LOCO:
                        if (packet[5] == LAN_X_SET_LOCO_FUNCTION) {  //DB0
                          //LAN_X_SET_LOCO_FUNCTION  Adr_MSB        Adr_LSB            Type (EIN/AUS/UM)      Funktion
                          if (notifyz21LocoFkt)
                                notifyz21LocoFkt(word(packet[6] & 0x3F, packet[7]), packet[8] >> 5, packet[8] & B00011111);
                          //uint16_t Adr, uint8_t type, uint8_t fkt
                        }
                        else {  //DB0
                                  //Debug.print("X_SET_LOCO_DRIVE ");
                                  byte steps = 14;
                                  if ((packet[5] & 0x03) == 3)
                                        steps = 128;
                                  else if ((packet[5] & 0x03) == 2)
                                        steps = 28;
                                if (notifyz21LocoSpeed)
                                        notifyz21LocoSpeed(word(packet[6] & 0x3F, packet[7]), packet[8],steps);
                        }
                        break;

Если точнее, то в седьмом бите пятого пакета задается направление
Ну и класс, который это все обрабатывает
Код:

void z21Class::setLocoStateFull (int Adr, byte steps, byte speed, byte F0, byte F1, byte F2, byte F3, bool bc)
{
        byte data[9];
        data[0] = LAN_X_LOCO_INFO;  //0xEF X-HEADER
        data[1] = (Adr >> 8) & 0x3F;
        data[2] = Adr & 0xFF;
        data[3] = steps & B111;                //steps
        if (data[3] == 3)  //nicht vorhanden!
                data[3] = 4;
        data[4] = speed;        //DSSS SSSS
        data[5] = F0;    //F0, F4, F3, F2, F1
        data[6] = F1;    //F5 - F12; Funktion F5 ist bit0 (LSB)
        data[7] = F2;  //F13-F20
        data[8] = F3;  //F21-F28
        if (bc)  //BC?
                EthSend(0, 14, LAN_X_Header, data, true, Z21bcAll_s | Z21bcNetAll_s);  //Send Power und Funktions to all active Apps
        else EthSend (0, 14, LAN_X_Header, data, true, Z21bcNone);  //Send Power und Funktions to all active Apps
}

можно попробовать тут в data[4] инвертировать седьмой бит.

BR95009 21.03.2017 12:59

Цитата:

Сообщение от BNSF9399 (Сообщение 297281)
можно попробовать тут в data[4] инвертировать седьмой бит.

Ага, должно работать.

Tolyan 23.03.2017 11:34

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

BNSF9399 12.05.2017 11:03

С JMRI ни кто не запускал? Весь мозг разрушил уже. Стрелки управляются нормально, а локи не хотят ехать ни как...

BNSF9399 16.05.2017 10:39

Вложений: 2
Для информации решившим повторить данный вариант. На Arduino UNO он не будет работать.
"Проблема" заключается в том, что UNO для Ethernet использует пины 11-13, которые нужны для мотор шилда.
Вложение 143678
MEGA для Ethernet использует 20-22 пины.
Вложение 143679

Alexmit 16.05.2017 17:37

Цитата:

Сообщение от BNSF9399 (Сообщение 300950)
MEGA для Ethernet использует 20-22 пины.

Только не 20-ые, а 50-ые.

BNSF9399 16.05.2017 19:41

Цитата:

Сообщение от Alexmit (Сообщение 300976)
а 50-ые.

точно, на номера ножек смотрел.

AleksSF 09.06.2017 11:16

Цитата:

Сообщение от BNSF9399 (Сообщение 300950)
MEGA для Ethernet использует 50-52 пины.

Подключается ко всем полноформатным версиям главного модуля Arduino. Обмен данными между основным модулем Arduino и двумя узлами Ethernet шилд W5100 происходит через интерфейс SPI.
Подключение к UNO.
Использованы контакты цифровых сигналов, выполняющие следующие функции:
11 – MOSI,
12 – MISO,
13 – SCK,
10 – SS для Ethernet контроллера,
4 – SS для карты памяти.
Подключение к Mega.
В передаче сигналов участвует соединитель ICSP из шести контактов. Цифровые контакты выполняют следующие функции:
50 – MISO,
51 – MOSI,
52 – SCK,
10 – slave select для Ethernet контроллера,
4 – slave select для карты памяти.
Контакт 53, формирующий сигнал SS (Slave Select) не используется.
Для корректной работы SPI-шины он должен быть переведен в режим выхода. Изменения в программе при работе с главным модулем Mega: pinMode (10, OUTPUT) поменять на pinMode (53, OUTPUT). Активный уровень сигнала SS – низкий. Использовать контакты цифровых сигналов 10 и 4 в схемах с W5100 для другого применения нельзя.
Карта microSD и контроллер Ethernet разделяют одну шину SPI и не могут работать одновременно – их нужно переключать во время работы.
Полная статья: https://arduino-kit.ru/userfiles/ima...ield_W5100.pdf
Только непонятно, а как MEGA соединяется с Ethernet шилдом, ведь эти пины за ее габаритами.

BNSF9399 09.06.2017 12:11

Цитата:

Сообщение от AleksSF (Сообщение 302237)
как MEGA соединяется с Ethernet шилдом

также, как и UNO, через ICSP разъем
http://xrc.ru/arduino_mega_-_Poisk_v...9_12-09-38.png
http://xrc.ru/arduino_uno_-_Poisk_v_...9_12-10-21.png
http://xrc.ru/arduino_w5100_-_Poisk_...9_12-10-45.png

AleksSF 20.06.2017 23:35

Цитата:

Сообщение от BNSF9399 (Сообщение 302241)
Сообщение от AleksSF
как MEGA соединяется с Ethernet шилдом

Цитата:

Сообщение от BNSF9399 (Сообщение 302241)
также, как и UNO, через ICSP разъем

Пришлось поэкспериментировать. Не нравится мне бутерброд, хочу сделать что-то типа мастер-платы, чтобы на нее можно было добавлять отдельными модулями всякие штуки из схемы Гатова, а может и еще чего. Провозился целый вечер, но нашел. Чтобы шилд W5100 работал нужно соединить его с Мегой ICSP разъемом (6 проводов) и еще Пин 10 и 3.3 V
Мотор шилд соединяется Пинами +5V GND A0 3 и 12 (5 проводов).

BNSF9399 21.06.2017 11:27

Цитата:

Сообщение от AleksSF (Сообщение 302729)
ICSP разъемом (6 проводов) и еще Пин 10 и 3.3 V

ну безусловно, питание то нужно.

Цитата:

Сообщение от AleksSF (Сообщение 302729)
добавлять отдельными модулями всякие штуки из схемы Гатова

бредборд чем не нравится? или даже макетка с бредбородом?

AleksSF 21.06.2017 13:18

Цитата:

Сообщение от BNSF9399 (Сообщение 302743)
бредборд чем не нравится? или даже макетка с бредбородом?

Может быть как вариант. Это пока планы.

Alexmit 21.06.2017 15:54

Цитата:

Сообщение от AleksSF (Сообщение 302729)
Не нравится мне бутерброд,

Просто вы не умеете их готовить.
Берёте вот такую плату:
http://amperka.ru/product/arduino-mega-proto-shield
Распиливаете аккуратно на две части, на большом куске делаете вырез под LAN разъём и припаиваете штырьки.
И вот к этим двум платкам можете припаивать что захотите.
А делать сетевой шилд на выносе имеет смысл только при использовании нестандартных модулей.
Например: http://robotdyn.ru/catalog/communica...3_3v_5v_rj_45/

BNSF9399 21.06.2017 16:35

Цитата:

Сообщение от Alexmit (Сообщение 302758)
Берёте вот такую плату:

да нет смысла в этом. Из гатовских что можно добавить? локонет, экспресс нет, s88.
для этого вполне достаточно макетки с бредбордом установленной поверх "бутерброда"
https://images-na.ssl-images-amazon....PL._SY355_.jpg

AleksSF 21.06.2017 16:43

Цитата:

Сообщение от Alexmit (Сообщение 302758)
А делать сетевой шилд на выносе имеет смысл только при использовании нестандартных модулей.
Например: http://robotdyn.ru/catalog/communica...3_3v_5v_rj_45/

У меня как раз такой есть в запасе. Тоже видимо пойдет в дело.

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

Цитата:

Сообщение от BNSF9399 (Сообщение 302760)
да нет смысла в этом.

Да я не говорю, что есть большой смысл. Просто мне хочется использовать оригинальный Гатовский скетч. А там немного по другому идет распиновка. Кроме того в данном варианте платы стоят: 1.Мега, 2.W5100, 3.Мотор. А я хочу W5100 поменять на модуль W5500, а он в виде маленькой платы модуля. И весь бутерброд падает маслом вниз.

BNSF9399 21.06.2017 16:52

Вложений: 2
в гатовском варианте - покупаейте большую макетку и на ней все собираете.
Также, нужно будет купить http://amperka.ru/product/arduino-mega-proto-shield и отпилить от нее "заднюю" часть, чтобы через нее подключение делать, ну и бутер маслом вниз :)
Вложение 144610Вложение 144611
Хотя... Если гатовский скетч с моторшилом и всем обвесом собирать... Да не, нормально, можно :)

AleksSF 21.06.2017 17:21

Цитата:

Сообщение от BNSF9399 (Сообщение 302764)
в гатовском варианте - покупаейте большую макетку и на ней все собираете.

Я примерно так и хочу. Только я хочу, чтобы любой модуль можно было легко поменять на новый или модифицированный.

BNSF9399 21.06.2017 21:53

Цитата:

Сообщение от AleksSF (Сообщение 302765)
чтобы любой модуль

любой - это какой? если откинуть то что уже есть.
WiFi на esp01 - нужно обвес паять, если брать шилд - то у него нет "ответных" разъемов (только штыри)
RS485 - платы делают только слэйв, а у Гатова мастер.
локонет и s88 - вообще не делают....
да и не думаю, что Гатов будет под другое железо дописывать/переписывать.

AleksSF 21.06.2017 22:24

Цитата:

Сообщение от BNSF9399 (Сообщение 302776)
любой - это какой? если откинуть то что уже есть.

Я имею ввиду, что модуль самопальный. Сделал один, потом переделал.

Alexmit 21.06.2017 23:01

Цитата:

Сообщение от BNSF9399 (Сообщение 302776)
RS485 - платы делают только слэйв, а у Гатова мастер.

Если именно RS485, то делают. http://amperka.ru/product/troyka-rs485

BNSF9399 22.06.2017 01:59

Цитата:

Сообщение от Alexmit (Сообщение 302782)
то делают

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

BNSF9399 22.06.2017 02:06

Вложений: 3
Цитата:

Сообщение от AleksSF (Сообщение 302779)
Я имею ввиду, что модуль самопальный. Сделал один, потом переделал.

это уже за рамки данной темы выходит :) "Без пайки".
Что мешает собирать также в "бутер"?

AleksSF 22.06.2017 02:14

Цитата:

Сообщение от BNSF9399 (Сообщение 302787)
"Без пайки"

Да я про пайку ничего не говорил. Я просто написал какие пины в каком шильде залействованы. А как использовать эту информацию, или не использовать ее вообще, пусть каждый решает сам.

Garri 22.06.2017 09:28

Цитата:

Сообщение от BNSF9399 (Сообщение 302764)
в гатовском варианте - покупаейте большую макетку и на ней все собираете.
:)

Я в понедельник сходил купил макетку, сначала собирался сделать плату, но руки все не доходят, у жены всегда найдется для меня чем занять, то это надо сделать, то это. .. :cry: воощем решил сделать на макетке, вчера прикинул как расположить детали. Единственно, что я смотрю, Вам удалось туда вставить разъёмы, но один ряд сдвинут, надо подумать.


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

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