roboforum.ru

Технический форум по робототехнике.

Датчик касания оптический, триангуляция

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

Re: Датчик касания оптический, триангуляция

Сообщение setar » 08 фев 2016, 14:13

затем ключевой момент - лазер вынесен для засветки вертикально вниз
forum107/topic15929-465.html#p344292

Добавлено спустя 37 секунд:
затем вот forum107/topic15929-495.html#p344369

Добавлено спустя 48 секунд:
ну и сейчас пилю
forum107/topic15929-540.html#p346358
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 08 фев 2016, 15:32

ales2k писал(а):Напряжение на постоянку +5v, не парился с включением с ноги, мне это не нужно.
SCL - D12
SDA - D10
Как в конфиге.

Debug 1(пробовал разные)
Serial аппаратный (просто текст выдает, то есть рабочий)
Тип Nano - компиляет, значит переменные установились как надо.

Случайно spi не аппаратный выставлен в конфиге? Лучше конфиги сюда залить, посмотрим.
С докой у нас все плохо :)
А, во, я же с этим чипом игрался, вечером попробую свои конфиги показать.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение ales2k » 08 фев 2016, 15:36

Большой путь вами пройден.

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

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



Конфиг
Config.h
(6.48 КиБ) Скачиваний: 269
board_ArduinoNano.h
(1.77 КиБ) Скачиваний: 238
sensor_ADNS_2620.h
(1.59 КиБ) Скачиваний: 236


Потом скачал поновее, но тоже не заработало Конфиги там почти такие же, но под рукой их нет.
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 08 фев 2016, 18:00

У меня вот тут конфигурация под нану (вроде даже запушил изменения): https://github.com/dccharacter/RF3Sens
А, блин, не запушил :-( Попозже сделаю.

А что значит "не работает"? Видео в программу не выводит?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение ales2k » 08 фев 2016, 18:24

Вообще ничего не выводит ни в одном режиме дебага.
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 08 фев 2016, 18:29

Ну так надо траблшутить. Нана-то живая?
В дебаг_тайп_3 должно сыпать текст в консоль. Вставь там где-нибудь несколько принтлайнов ДО начала работы с датчиком.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение ales2k » 08 фев 2016, 18:59

Нана живая с референсной библиотекой, даже изображение с датчика читает
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 08 фев 2016, 19:08

А что за референсная библиотека? Ты только бблиотеку какую-то подменил или вообще прошивку другую зали и другой визуализатор?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение ales2k » 08 фев 2016, 21:15

Все другое брал. forum107/topic15929-630.html#p347204
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 08 фев 2016, 21:43

Превед "гит наше фсе!"
Кто следит за "Люди, мы думаем о вас"???
ales2k, не могу пока понять в чем дело. Надо пытать реформаторa, типа dccharacter-a...

Добавлено спустя 8 минут 6 секунд:
Смотрю свой старый конфиг, отличия от гит:
Код: Выделить всёРазвернуть
//pin_led
//PB5 D13
#define pin_led_bit         5
#define pin_led_DDR         DDRD
#define pin_led_PORT        PORTD

Код: Выделить всёРазвернуть
//pin_led
//PB5 D13
#define pin_led_bit         5
#define pin_led_DDR         DDRB
#define pin_led_PORT        PORTB

Напомните, почему стало так?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 08 фев 2016, 21:47

привет привет
ну я вот думаю - простейший-то траблшутинг можно было сделать - светодиодом мигнуть или еще что. Что уж совсем с нуля не начинать. У меня-то все работает...
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 08 фев 2016, 21:55

Нет уж, вписался? Помогай, без твоего гита я бы без вопросов помог...
dccharacter писал(а): У меня-то все работает...

Вооооооот, за это я не люблю кошек.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение ales2k » 08 фев 2016, 22:56

Итак не работает этот кусок, подключение верное
while (1) {
temp_byte = ADNS_read(Pixel_Grab);Это отрабатывает
if (temp_byte & Pixel_data_valid) { тут вечный цикл
break;
}
ADNS_read() Всегда возвращает 0. что то с ним не так... будем посмотреть дальше


В то же время простейший код отрабатывает идеально
//-------------------------------------------------------
#define SDIO 12 //значения ставил как у вас и переключал физику, тоже работает.
#define SCLK 10 //
//-------------------------------------------------------
byte DriverRead(byte address)
{
pinMode (SDIO, OUTPUT);
for (byte i=128; i >0 ; i >>= 1)
{
digitalWrite (SCLK, LOW);
delayMicroseconds(10);
digitalWrite (SDIO, (address & i) != 0 ? HIGH : LOW);
delayMicroseconds(10);
digitalWrite (SCLK, HIGH);
delayMicroseconds(10);
}
delayMicroseconds(120);
pinMode (SDIO, INPUT);
byte res = 0;
for (byte i=128; i >0 ; i >>= 1)
{
digitalWrite (SCLK, LOW);
delayMicroseconds(10);
digitalWrite (SCLK, HIGH);
delayMicroseconds(10);
if( digitalRead (SDIO) == HIGH )
{
res |= i;
}
}
delayMicroseconds(100);
return res;
}
//-------------------------------------------------------
void DriverWrite(byte address, byte data)
{
address |= 0x80;
pinMode (SDIO, OUTPUT);
for (byte i = 128; i > 0 ; i >>= 1)
{
digitalWrite (SCLK, LOW);
delayMicroseconds(10);
digitalWrite (SDIO, (address & i) != 0 ? HIGH : LOW);
delayMicroseconds(10);
digitalWrite (SCLK, HIGH);
delayMicroseconds(10);
}
delayMicroseconds(120);
for (byte i = 128; i > 0 ; i >>= 1)
{
digitalWrite (SCLK, LOW);
delayMicroseconds(10);
digitalWrite (SDIO, (data & i) != 0 ? HIGH : LOW);
delayMicroseconds(10);
digitalWrite (SCLK, HIGH);
delayMicroseconds(10);
}
delayMicroseconds(100);
}
//-------------------------------------------------------
void DriverInit()
{
pinMode(SCLK, OUTPUT);
pinMode(SDIO, OUTPUT);
digitalWrite(SCLK, HIGH);
delayMicroseconds(5);
digitalWrite(SCLK, LOW);
delayMicroseconds(1);
digitalWrite(SCLK, HIGH);
delay(1025);
DriverWrite(0x00, 0x01);
delay(3000);
}
//-------------------------------------------------------
int DriverReadFrame(byte *arr, int len)
{
byte *pos=arr;
byte *uBound=arr+len;
unsigned long timeout = millis() + 1000;
byte val;
DriverWrite(0x08, 0x2A);
while( millis() < timeout && pos < uBound)
{
val = DriverRead(0x08);

//Only bother with the next bit if the pixel data is valid.
if( !(val & 64) )
{
continue;
}
//If we encounter a start-of-field indicator, and the cursor isn't at the first pixel,
//then stop. ('Cause the last pixel was the end of the frame.)
if( ( val & 128 ) && ( pos != arr) )
{
break;
}
*pos = val & 63;
pos++;
}
return (pos-arr);
}
//-------------------------------------------------------
void setup()
{
Serial.begin(57600);
DriverInit();
}
//-------------------------------------------------------
void loop()
{/*
byte x = DriverRead(0x02);
byte y = DriverRead(0x03);
if(x || y)
{
Serial.print("X:");
Serial.print(x,DEC);
Serial.print(" Y:");
Serial.println(y,DEC);
}*/

if (Serial.available() > 0)
{
byte c = Serial.read();
if (c == 'F')
{
byte tmp[324];
int len = DriverReadFrame(tmp,324);
int kk=0;
for(int i=0;i<324;i++)
{
Serial.print(tmp[i]);Serial.print(" ");
kk++;
if (kk==18){Serial.println();kk=0;}
}

Serial.println();Serial.println();
Serial.println(len);
}
}
}
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 09 фев 2016, 01:27

Так, вижу ошибку. Если ты пины физически подключал так:
Код: Выделить всёРазвернуть
#define SDIO 12 //значения ставил как у вас и переключал физику, тоже работает.
#define SCLK 10 //

то в твоем board_ArduinoNano.h:
Код: Выделить всёРазвернуть
//pin_nClock (SCK)
//PB4 D12
#define pin_nClock_bit      4
#define pin_nClock_DDR      DDRB
#define pin_nClock_PORT     PORTB

//MOSI
//PB3  D11
#define pin_SDIO_bit        3
#define pin_SDIO_DDR        DDRB
#define pin_SDIO_PORT       PORTB
#define pin_SDIO_PORT_IN    PINB

Т.е. SDIO должен быть на D11, а SCLK на D12

Добавлено спустя 7 минут 58 секунд:
Я все понял, надо схему в док добавить для ардуины нано. Слишком круто все меняется...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 09 фев 2016, 02:23

Я наглухо запутался в гите. Сначала не пушились мои ветки в мой репозиторий. Оказалось, надо сделать git push --all origin -u. Теперь, чтобы достать ветки из репозитория, я, оказывается должен локально создать ветку для каждой ветки в репе и вручную установить трекинг. Серьезно? Это что за ппц такой?

Добавлено спустя 23 минуты:
У меня че-то стало требовать определения функций типа void ADNS_reset(void); Не пойму - я ж собирал уже этот проект этим же мейкфайлом. Че изменилось-то? У нас же не было никаких деклараций никогда, правильно?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Пред.След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 14