Страница 31 из 66
Re: ЧПУ пульты
Добавлено: 30 окт 2012, 00:13
Nick
Тима писал(а):pinmap[port
скорее всего port выходит за рамки индекса листа pinmap....
Попробуй перед этой строчкой (79) написать
print port
print pinmap
только отступ от левого края обязательно должен быть таким же.
ЗЫ меня уже вырубает,если что завтра отвечу... сорри
----------
Не успел
ЗЫ Да не, нормально, даже интересно, почему у меня работало, а у тебя нет, только и правда начало отрубать.

Re: ЧПУ пульты
Добавлено: 30 окт 2012, 00:20
Тима
попробовал еще раз и вот, что выкинуло(скопировал еще раз 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, как вкладку в текст делать,чтоб такой длинный текст не вводить?
Re: ЧПУ пульты
Добавлено: 30 окт 2012, 10:27
Nick
Ну штука в чем, при запуске компонента arduino возникает ошибка, и он вылетает.
Ошибка появляется в этой строке
Код: Выделить всё
c['digital-in-%02d' % pinmap[port]] = b != 0
IndexError: list index out of range
скорее всего в pinmap нет такого элемента с индексом port.
Напиши перед этой строчкой те два print о которых я говорил, так мы увидим, что в этих переменных и поймем почему он выдает ошибку.
Тима писал(а):З.Ы. Nick, как вкладку в текст делать,чтоб такой длинный текст не вводить?
тэг code и будет как вверху.
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 19:05
Тима
ПРОДОЛЖАЕМ!
Nick, а проблема не в этом(это в файле arduino.py)?
Мы ведь номер порта меняли в hal-файле...
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 19:24
Тима
Подправил порт и hal-файл запустился, но обмена данными не происходит.
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 19:26
Nick
Тима писал(а):Nick, а проблема не в этом(это в файле arduino.py)?
Не, там потом условие идет, если в строке запуска есть параметр, то используем его:
Код: Выделить всё
PORT = "/dev/ttyUSB0"
if len(sys.argv) > 1:
PORT = sys.argv[1]
Тима писал(а):Подправил порт и hal-файл запустился, но обмена данными не происходит.
А как проверяешь? Панель pyvcp запустилась?
В консоль ничего дополнительного не выводится?
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 19:32
Тима
Выкинуло вот это:
Код: Выделить всё
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 и поставил галочку в его окошке, не включается.
потом повторил то-же самое с аналоговым выходом, результат тот-же.
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:00
Nick
а напиши в консоле после запуска:
halcmd show | grep arduino
надо посмотреть запустился или основной компонент. И кстати, можно еще посмотреть в halmeter меняются ли значения пина arduino.digital-out-02.
ЗЫ Я в электронике не очень разбираюсь и поэтому пихал светодиод без сопротивления, и еще не сразу его нужной стороной воткнул

... У тебя такого не может быть?
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:08
Тима
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/мой-станок$
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:21
Nick
выполни halrun -U и запускай заново.
И окошко закрой, если еще не закрыл

Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:26
Тима
Сбросил реал-тайм и перезапустил панель!
Nick писал(а):а напиши в консоле после запуска:
halcmd show | grep arduino
Написал, ничего не происходит!
Nick писал(а):ожно еще посмотреть в halmeter меняются ли значения пина arduino.digital-out-02.
Как это сделать?
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:31
Nick
Тима писал(а):Написал, ничего не происходит!
Ну тогда просто halcmd show... хотя странно... И это после запуска панельки!!!
запусти halmeter и в нем открой нужный пин.
Кстати, можно все это дописать к твоей конфигурации...
PS при работе с консолью очень удобно пользоваться поиском по набранным командам. (не знаю почему он по умолчанию отключен) для того, чтобы включить нужно поменять один файл:
sudo nano /etc/inputrc
ищем строчки:
Код: Выделить всё
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
и стираем #. После этого Ctrl+X, y, и перезапускаем консоль.
Для поиска по набранным командам, начинаем набирать и пользуемся клавишами PageUp PageDown.
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:35
Тима
Запустил halmetr, в нем значение меняется.
на ардуинке светодиоды порта не мигают как при передаче данных, а должны если не ошибаюсь!
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:38
Nick
Если пин меняется, то это или в скрипте, или в подключении или в ардуине. А скетч правильный залит?
И в обратную сторону работает?
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:48
Тима
Nick писал(а):А скетч правильный залит?
Вроде да, все скомпилировалось и загрузилось!
Nick писал(а):И в обратную сторону работает?
Неа, не робит! Подключил к аналоговому входу джойстик,...
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:51
Тима
Сначала не компилировалось, пока не сделал так, как Ты советовал здесь:
ЧПУ пульты #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;
}
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 20:58
Nick
О, напиши в конце hal файла start . Может он из-за этого не работает...
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 21:05
Тима
Ничего не происходит! И halmetr не запускает, пишет что команда не найдена!
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 21:10
Тима
извиняюсь, команду не правильно написал, halmeter запустился!
Re: ЧПУ пульты
Добавлено: 01 ноя 2012, 21:12
Nick
Прикрепи еще на всякий случай все получившиеся файлы.