ЧПУ пульты

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Тима писал(а):pinmap[port
скорее всего port выходит за рамки индекса листа pinmap....

Попробуй перед этой строчкой (79) написать
print port
print pinmap
только отступ от левого края обязательно должен быть таким же.

ЗЫ меня уже вырубает,если что завтра отвечу... сорри
----------
Не успел :)
ЗЫ Да не, нормально, даже интересно, почему у меня работало, а у тебя нет, только и правда начало отрубать. :)
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

попробовал еще раз и вот, что выкинуло(скопировал еще раз XML-файл):

cnc@cnc-desktop:~$ cd Desktop/мой-станок/
cnc@cnc-desktop:~/Desktop/мой-станок$ halrun -f arduino-vcp.hal
Traceback (most recent call last):
File "arduino.py", line 79, in <module>
c['digital-in-%02d' % pinmap[port]] = b != 0
IndexError: list index out of range

Код: Выделить всё

Component Pins:
Owner   Type  Dir         Value  Name
     3  float IN              0  arduino-vcp.analog-in-00
     3  float IN              0  arduino-vcp.analog-in-00b
     3  float IN              0  arduino-vcp.analog-in-01
     3  float IN              0  arduino-vcp.analog-in-01b
     3  float IN              0  arduino-vcp.analog-in-02
     3  float IN              0  arduino-vcp.analog-in-02b
     3  float IN              0  arduino-vcp.analog-in-03
     3  float IN              0  arduino-vcp.analog-in-03b
     3  float IN              0  arduino-vcp.analog-in-04
     3  float IN              0  arduino-vcp.analog-in-04b
     3  float IN              0  arduino-vcp.analog-in-05
     3  float IN              0  arduino-vcp.analog-in-05b
     3  float OUT             0  arduino-vcp.analog-out-03-f
     3  s32   OUT             0  arduino-vcp.analog-out-03-i
     3  float OUT             0  arduino-vcp.analog-out-05-f
     3  s32   OUT             0  arduino-vcp.analog-out-05-i
     3  float OUT             0  arduino-vcp.analog-out-06-f
     3  s32   OUT             0  arduino-vcp.analog-out-06-i
     3  float OUT             0  arduino-vcp.analog-out-09-f
     3  s32   OUT             0  arduino-vcp.analog-out-09-i
     3  float OUT             0  arduino-vcp.analog-out-10-f
     3  s32   OUT             0  arduino-vcp.analog-out-10-i
     3  float OUT             0  arduino-vcp.analog-out-11-f
     3  s32   OUT             0  arduino-vcp.analog-out-11-i
     3  bit   IN          FALSE  arduino-vcp.digital-in-08
     3  bit   IN          FALSE  arduino-vcp.digital-in-12
     3  bit   IN          FALSE  arduino-vcp.digital-in-13
     3  bit   OUT         FALSE  arduino-vcp.digital-out-02
     3  bit   OUT         FALSE  arduino-vcp.digital-out-04
     3  bit   OUT         FALSE  arduino-vcp.digital-out-07
arduino-vcp.hal:6: Pin 'arduino.analog-in-00' does not exist

З.Ы. Nick, как вкладку в текст делать,чтоб такой длинный текст не вводить?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Ну штука в чем, при запуске компонента arduino возникает ошибка, и он вылетает.
Ошибка появляется в этой строке

Код: Выделить всё

c['digital-in-%02d' % pinmap[port]] = b != 0
IndexError: list index out of range
скорее всего в pinmap нет такого элемента с индексом port.
Напиши перед этой строчкой те два print о которых я говорил, так мы увидим, что в этих переменных и поймем почему он выдает ошибку.
Тима писал(а):З.Ы. Nick, как вкладку в текст делать,чтоб такой длинный текст не вводить?
тэг code и будет как вверху.
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

ПРОДОЛЖАЕМ!
Nick, а проблема не в этом(это в файле arduino.py)?

Код: Выделить всё

PORT = "/dev/ttyUSB0"
Мы ведь номер порта меняли в hal-файле...
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Подправил порт и hal-файл запустился, но обмена данными не происходит.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Тима писал(а):Nick, а проблема не в этом(это в файле arduino.py)?
Не, там потом условие идет, если в строке запуска есть параметр, то используем его:

Код: Выделить всё

PORT = "/dev/ttyUSB0"

if len(sys.argv) > 1:
    PORT = sys.argv[1]
Тима писал(а):Подправил порт и hal-файл запустился, но обмена данными не происходит.
А как проверяешь? Панель pyvcp запустилась?
В консоль ничего дополнительного не выводится?
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Выкинуло вот это:

Код: Выделить всё

cnc@cnc-desktop:~$ cd Desktop/мой-станок/
cnc@cnc-desktop:~/Desktop/мой-станок$ halrun -f arduino-vcp.hal

Waiting for component 'arduino-vcp' to become ready.................
Component Pins:
Owner   Type  Dir         Value  Name
     4  float IN              0  arduino-vcp.analog-in-00
     4  float IN              0  arduino-vcp.analog-in-00b
     4  float IN              0  arduino-vcp.analog-in-01
     4  float IN              0  arduino-vcp.analog-in-01b
     4  float IN              0  arduino-vcp.analog-in-02
     4  float IN              0  arduino-vcp.analog-in-02b
     4  float IN              0  arduino-vcp.analog-in-03
     4  float IN              0  arduino-vcp.analog-in-03b
     4  float IN              0  arduino-vcp.analog-in-04
     4  float IN              0  arduino-vcp.analog-in-04b
     4  float IN              0  arduino-vcp.analog-in-05
     4  float IN              0  arduino-vcp.analog-in-05b
     4  float OUT             0  arduino-vcp.analog-out-03-f
     4  s32   OUT             0  arduino-vcp.analog-out-03-i
     4  float OUT             0  arduino-vcp.analog-out-05-f
     4  s32   OUT             0  arduino-vcp.analog-out-05-i
     4  float OUT             0  arduino-vcp.analog-out-06-f
     4  s32   OUT             0  arduino-vcp.analog-out-06-i
     4  float OUT             0  arduino-vcp.analog-out-09-f
     4  s32   OUT             0  arduino-vcp.analog-out-09-i
     4  float OUT             0  arduino-vcp.analog-out-10-f
     4  s32   OUT             0  arduino-vcp.analog-out-10-i
     4  float OUT             0  arduino-vcp.analog-out-11-f
     4  s32   OUT             0  arduino-vcp.analog-out-11-i
     4  bit   IN          FALSE  arduino-vcp.digital-in-08
     4  bit   IN          FALSE  arduino-vcp.digital-in-12
     4  bit   IN          FALSE  arduino-vcp.digital-in-13
     4  bit   OUT         FALSE  arduino-vcp.digital-out-02
     4  bit   OUT         FALSE  arduino-vcp.digital-out-04
     4  bit   OUT         FALSE  arduino-vcp.digital-out-07

и запустилась панель!
Посадил светодиод через резистор 200 Ом на pin2 относительно GND и поставил галочку в его окошке, не включается.
потом повторил то-же самое с аналоговым выходом, результат тот-же.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

а напиши в консоле после запуска:
halcmd show | grep arduino
надо посмотреть запустился или основной компонент. И кстати, можно еще посмотреть в halmeter меняются ли значения пина arduino.digital-out-02.

ЗЫ Я в электронике не очень разбираюсь и поэтому пихал светодиод без сопротивления, и еще не сразу его нужной стороной воткнул :freak:... У тебя такого не может быть?
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Nick писал(а):У тебя такого не может быть?
Нет, я его полярность сначала проверил подключив к +5в
При попытке запустить повторно панель пишет:

cnc@cnc-desktop:~/Desktop/мой-станок$ halrun -f arduino-vcp.hal
Realtime already running. Use 'halrun -U' to stop existing realtime session.
cnc@cnc-desktop:~/Desktop/мой-станок$
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

выполни halrun -U и запускай заново.
И окошко закрой, если еще не закрыл :)
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Сбросил реал-тайм и перезапустил панель!
Nick писал(а):а напиши в консоле после запуска:
halcmd show | grep arduino
Написал, ничего не происходит!
Nick писал(а):ожно еще посмотреть в halmeter меняются ли значения пина arduino.digital-out-02.
Как это сделать?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Тима писал(а):Написал, ничего не происходит!
Ну тогда просто halcmd show... хотя странно... И это после запуска панельки!!!

запусти halmeter и в нем открой нужный пин.

Кстати, можно все это дописать к твоей конфигурации...

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

sudo nano /etc/inputrc

ищем строчки:

Код: Выделить всё

# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
и стираем #. После этого Ctrl+X, y, и перезапускаем консоль.
Для поиска по набранным командам, начинаем набирать и пользуемся клавишами PageUp PageDown.
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Запустил halmetr, в нем значение меняется.
на ардуинке светодиоды порта не мигают как при передаче данных, а должны если не ошибаюсь!
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Если пин меняется, то это или в скрипте, или в подключении или в ардуине. А скетч правильный залит?

И в обратную сторону работает?
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Nick писал(а):А скетч правильный залит?
Вроде да, все скомпилировалось и загрузилось!
Nick писал(а):И в обратную сторону работает?
Неа, не робит! Подключил к аналоговому входу джойстик,...
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Сначала не компилировалось, пока не сделал так, как Ты советовал здесь:ЧПУ пульты #578
потом скомпилировалось и загрузилось в ардуину!

Вот сам скетч:

Код: Выделить всё

//   HAL userspace component to interface with Arduino board
//   Copyright (C) 2007 Jeff Epler <jepler@unpythonic.net>
//
//   This program is free software; you can redistribute it and/or modify
//   it under the terms of the GNU General Public License as published by
//   the Free Software Foundation; either version 2 of the License, or
//   (at your option) any later version.
//
//   This program is distributed in the hope that it will be useful,
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//   GNU General Public License for more details.
//
//   You should have received a copy of the GNU General Public License
//   along with this program; if not, write to the Free Software
//   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

void setup() {
    Serial.begin(9600);
}   

uint8_t adc=0;
uint8_t firstbyte=0;
uint8_t pinmap[6] = {2,4,7,8,12,13};
uint8_t dacpinmap[6] = {3,5,6,9,10,11};
void loop() {
  while(Serial.available()) {
        uint8_t byte = Serial.read();
        if(((firstbyte & 0x80) == 0x80) && ((byte & 0x80) == 0)) {
            // got a packet
            uint16_t payload = (firstbyte << 7) | byte;
            uint8_t address = (firstbyte >> 4) & 7;
            uint8_t dac = payload & 0xff;
            uint8_t dir = (payload & 0x100) == 0x100;
            uint8_t out = (payload & 0x200) == 0x200;
            if(address < 6) {
                analogWrite(dacpinmap[address], dac);
                digitalWrite(pinmap[address], out);
                pinMode(pinmap[address], dir);
            }
        }
        firstbyte = byte;
    }
    uint16_t v = analogRead(adc) | (adc << 11);
    if(digitalRead(pinmap[adc])) v |= (1<<10);
    Serial.write( byte((v >> 7) | 0x80) );
    Serial.write( byte(v & 0x7f) );
    adc = (adc + 1) % 6;
}
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

О, напиши в конце hal файла start . Может он из-за этого не работает...
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Ничего не происходит! И halmetr не запускает, пишет что команда не найдена!
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

извиняюсь, команду не правильно написал, halmeter запустился!
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Прикрепи еще на всякий случай все получившиеся файлы.
Ответить

Вернуться в «Электроника»