Страница 49 из 66
Re: ЧПУ пульты
Добавлено: 18 ноя 2012, 19:52
2cme
Тима писал(а):что ты хочешь отображать на цветном экране на пульте?
Правильный вопрос.
Тима писал(а):О режимах я тоже писал! 3 режима управления: комп, джойстик, штурвал! При работе станка по г-коду на пульте будет только отображение координат, скорости шпинделя и режима работы(т.е. "от компа"), кнопки работать не будут, кроме Е-СТОП!
В режиме "джойстик", работают кнопки и джойстик, в режиме "штурвал" - тонкая подгонка работают кнопки, штурвал и помимо координат отображаются режим работы и шаг энкодера! Для данной задачи думаю хватит и моего экрана.
Польт должен быть простым (чтобы не перегружать восприятие оператора) и эффективным, а главное надежным (один из важных параметров, т.к. порой заготовка стоит дорого как собственно и уже выполненные тех операции).
Re: ЧПУ пульты
Добавлено: 28 янв 2013, 20:55
Тима
Так, продолжаем мучения!
Приехала ардуина НАНО, на нем проверил все, что пробовал на меге2560... ВСЕ РОБИТ!!!
Теперь надо отвязать выхода ардуины, привязать их данные к переменным и попробовать вывести через них координаты на экран!
Наверное буду пробовать завтра в ночную!
Re: ЧПУ пульты
Добавлено: 29 янв 2013, 22:57
Тима
Как и писалось выше, мучения продолжаются!
Подключил свой экран к ардуино-нано, все(почти) работает!
Сейчас пытаюсь написать новый скрипт на питоне, чтоб создать компоненты(для начала один), которые отображались бы в емс, и чтоб их можно было кинуть на экран.
пробую как написано здесь:
ЧПУ пульты #802 ЕМС выкидывает ошибку.
Прошу помочь ГУРУ питона и объяснить, как создать компонент для ЕМС в питоне???
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:09
Nick
Ошибку в студию!
Возьми как пример:
Код: Выделить всё
#!/usr/bin/python
import hal, time
h = hal.component("passthrough") # создаем компонент
h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) # добавляем к нему пины
h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) # и еще 1 пин
h.ready() # говорим, что компонент готов
try: # основной цикл
while 1: # бесконечный цикл до ошибки
time.sleep(1) # ждем 1 сек (можно меньше)
h['out'] = h['in'] # назначаем значения пинов
except KeyboardInterrupt: # обработка исключений
raise SystemExit
Все отсюда :
http://www.linuxcnc.org/docs/2.4/html/h ... odule.html
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:15
Тима
На твой скрипт пишет так:
Почему-то скопировать текст не получается
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:21
nkp
Тима писал(а):создать компонент для ЕМС в питоне???
и
выше в теме уже обсуждали
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:26
Тима
nkp писал(а):и выше в теме уже обсуждали
Уже пробовал, пишу в питоне, как указано выше в теме. Указываю в хал ЕМС запуск питоновского файла, запускаю - выдает ошибку!
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:34
nkp
Тима писал(а):выдает ошибку!
так ищи ее
не найдешь - выкладывай сюда - вместе поищем

Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:35
Nick
Надо вверху файла написать: # -*- coding: utf8 -*-
Это все из-за русских буков в файле.
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:36
Тима
nkp писал(а):не найдешь - выкладывай сюда - вместе поищем
Так выложил постом выше! Скопировать текст не получилось, сделал скриншот! Или я что-то не то выложил?
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:40
Тима
Теперь так:
Код: Выделить всё
Debug file information:
Can not find -sec TASK -var TASK_LD_PRELOAD -num 1
Can not find -sec DISPLAY -var DISPLAY_LD_PRELOAD -num 1
Waiting for component 'arduino' to become ready.............................................................................................................................................................................................................................................................................................................
мой-станок.hal:101: python exited without becoming ready
Stopping realtime threads
RTAPI: ERROR: could not open shared memory (errno=2)
/usr/bin/emc: строка 412: 12920 Ошибка сегментирования $HALCMD stop
Unloading hal components
RTAPI: ERROR: could not open shared memory (errno=2)
/usr/bin/emc: строка 412: 12929 Ошибка сегментирования $HALCMD unload all
RTAPI: ERROR: could not open shared memory (errno=2)
RTAPI: ERROR: could not open shared memory (errno=2)
RTAPI: ERROR: could not open shared memory (errno=2)
RTAPI: ERROR: could not open shared memory (errno=2)
RTAPI: ERROR: could not open shared memory (errno=2)
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:46
nkp
я просто не понял - а вклинился
так ты загружаешь вот этот код? :
Код: Выделить всё
#!/usr/bin/python
import hal, time
h = hal.component("passthrough") # создаем компонент
h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) # добавляем к нему пины
h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) # и еще 1 пин
h.ready() # говорим, что компонент готов
try: # основной цикл
while 1: # бесконечный цикл до ошибки
time.sleep(1) # ждем 1 сек (можно меньше)
h['out'] = h['in'] # назначаем значения пинов
except KeyboardInterrupt: # обработка исключений
raise SystemExit
тогда файл должен называться "passthrough.py"
и в хал прописывать соответственно
loadusr тра-та-та --------------- passthrough.py
если я совсем не о том - то пойду спать

Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:49
Тима
погоди спать! кроме Вас мне помочь некому, а я в ночную работаю и мучиться мне до утра!!!
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:51
Тима
nkp писал(а):файл должен называться "passthrough.py"
и в хал прописывать соответственно
loadusr тра-та-та --------------- passthrough.py
Спасибо!!! Все получилось! Теперь буду пробовать передавать ардуине!
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:54
nkp
Тима писал(а):Теперь буду пробовать передавать ардуине!
только много ей сразу не передавай - растяни до утра
удачи!!
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 00:59
Тима
nkp писал(а):только много ей сразу не передавай
Ну, это если она мне отдастся...

Re: ЧПУ пульты
Добавлено: 30 янв 2013, 05:28
Тима
Мужики, уже мозги вскипают
Вот скетч для ардуины:
Код: Выделить всё
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int in=0;
int ledPin=13;
void setup()
{
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}
void loop()
{
if (Serial.available() )
{
in = Serial.read();
lcd.setCursor(4, 1);
lcd.print("X = " );
lcd.print(in);
delay(10);
if (in=='1')
{
digitalWrite(ledPin, HIGH);
}
if (in=='0')
{
digitalWrite(ledPin, LOW);
}
}
}
Согласно ему при вводе в через монитор порта символа "1", должен включится светодиод пина 13 и вывезти на экран "Х=1", а при вводе "0" светодиод должен погаснуть и на экран вывезти "Х=0"
Со светодиодом все работает, а вот на экран выводит хрен знает что...
Т.е. шлем в порт "1" - загорается светодиод и на экран выводит "Х=49", шлем "0" - светодиод гаснет и выводит "Х=48"...
пробовал и другие цифры, на "2" выводит 50, на "3" - 51 итд
Че за

...
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 05:52
Fisher
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 17:18
Nick
Может с выводом что-то не так? Может он тупо как байт выводит число?
О, может ему надо base написать:
lcd.print(data, BASE)
Parameters
lcd: a variable of type LiquidCrystal
data: the data to print (char, byte, int, long, or string)
BASE (optional): the base in which to print numbers: BIN for binary (base 2), DEC for decimal (base 10), OCT for octal (base 8), HEX for hexadecimal (base 16).
http://arduino.cc/en/Reference/LiquidCrystalPrint
Или это не та функция lcd?
Кстати, можно для начала для проверки брать из порта переменную и посылать ее обратно, а там проверять.
Re: ЧПУ пульты
Добавлено: 30 янв 2013, 18:49
Тима
Если написать lcd.print(data, DEC) выводит 48.0000000 вместо 48
Кстати, пробовал передать координату Х... выводит что-то непонятное, причем значение меняется если изменить таймслип. К примеру при 0.001 выводит 135.0000000 и значение не меняется при изменении координаты. Если поставить 1, выводит 97.0000000
Тихо шифером шурша, едет крыша неспеша...
