roboforum.ruТехнический форум по робототехнике. |
|
|
dccharacter писал(а):времени реакции датчика (условно период главного цикла) и длины проводов до датчика, деленной на 3е8 м/с.
Dmitry__ писал(а):Ку-ку?
dccharacter писал(а):ДАТЧИК НЕ РАБОТАЕТ, НАДО ПИЛИТЬ ДАТЧИК
1 of 10 z: 18.201250
2 of 10 z: 18.219999
3 of 10 z: 18.206249
4 of 10 z: 18.198749
5 of 10 z: 18.203125
6 of 10 z: 18.211875
7 of 10 z: 18.198125
8 of 10 z: 18.216875
9 of 10 z: 18.211250
10 of 10 z: 18.217500
Mean: 18.208499
Standard Deviation: 0.007691
An internal AGC circuit adjusts the shutter value to keep the brightest feature (max pixel) in the mid 50’s.
Shutter Units are clock cycles; default value is 0x0100 HEX . Read Shutter_Upper first, then Shutter_Lower. They should be read consecutively. Thesensor adjusts the shutter to keep the average and maximum pixel values within normal operating ranges. The shutter value may vary with every frame. Each time the shutter changes, it changes by ±1/16 of the current value.
Аппаратный spi идет на помойку, для него нужен +1 лишний пин: sdi, sdo, не может переназначаться на другие пины и он работает медленнее программного
linvinus писал(а):Можно ещё анализировать саму картинку нужно считать 325 значений это будет примерно 300мкс при скорости SPI 4Mbit
Взять средний столбик по горизонтали и вертикали, если пятно в центре то положение правильное.
inline void pixel_grab(uint8_t *buffer, uint16_t nBytes) {
uint8_t temp_byte;
//reset the pixel grab counter
ADNS_write(Pixel_Grab, 0x00);
for (int count = 0; count < nBytes; count++) {
while (1) {
temp_byte = ADNS_read(Pixel_Grab);
if (temp_byte & Pixel_data_valid) {
break;
}
}
*(buffer + count) = temp_byte & Mask_pixel_value; // only n bits are used for data
}
}
в дигиспарк тини нету SCL (USCK) PB7
Pixel Dump Pictures The following images are the output of the Pixel Data com-mand. The data ranges from 0 for complete black, to 63 for com-plete white. An internal AGC circuit adjusts the shutter value to keep the brightest feature
(max pixel) in the mid 50’s.
setar писал(а):граб картинки занимает примерно одну секунду, или больше
...
основное время ожидаем готовности Pixel_data_valid
To dump a complete image, set the LED to forced awake mode, write anything to this register, then read 324 times where the DataValid bit is set. On the 325th read, the StartOfFrame bit will be set indicating that we have completed one frame of pixels and are starting back at pixel 1.
The pixel hardware is armed with any read or write to the Pixel Data register and will output pixel data from the next available frame. So, if you were to write the Pixel Data register, wait 5 seconds then read the Pixel Data register; the reported pixel data was from 5 seconds ago.
Взять средний столбик по горизонтали и вертикали, если пятно в центре то положение правильное.
linvinus писал(а):Dmitry__ , а чего сразу код не запушили на гит?
linvinus писал(а):Кстати для geany есть плагин который подсвечивает что в коде изменено но не запушено в гит.
setar писал(а):dccharacter писал(а):
ДАТЧИК НЕ РАБОТАЕТ, НАДО ПИЛИТЬ ДАТЧИК
работает и не плохо.
linvinus писал(а):Пытаясь понять как ваш датчик работает, для себя определил два момента
linvinus писал(а):Но в документации atiny85 сказано что есть 2х проводной режим USIWM1 =1, USIWM0 =0
linvinus писал(а):Т.е. картинка доступна на следующий ферйм., т.е. 1 сек это что то неправильное.
linvinus писал(а):вот ещё идея, можно использовать аппаратный SPI и (USITC: Toggle Clock Port Pin) софтварный клок, это ускорит загрузку данных, можно 6 тактов поделать что нибудь полезное
setar писал(а):Standard Deviation: 0.007691
dccharacter писал(а):Я не троллю, давай формулу для оценки погрешности!
Ого, linvinus впрягся в датчик, что-то будет
Единственный вариант,я его не исключаю в будущем: Приехало пятно в поле пзс, встали, 3 раза прочитали картинку, рассчитали смещение, отдали марлину.
Внутренними алгоритмами управления лазером тоже нельзя пользоваться, там все завязано на параметр "качество". Прямой зависимости "удерживать 50" там точно нет,
посмотри лог от датчика в тестовых режимах. И да, эти алгоритмы меняются не только от чипа к чипу, но и от ревизии одной модели чипа.
Не очень понял, avr может работать со spi по 1 пину sdi + sdo? Не знал. Но самый большой недостаток avr, что он не может мапить ресурсы на разные пины.
Да там не только в этом пичалька, там пуза между чтениями регистров должна быть 100мкс.
dccharacter писал(а):А оно с внутренним софтом
Дим, ты говорил, что ты хакер? Ответишь за слова?
Кста, если узнать какой проц в ADNS-9800, то можно такую круть сделать, шо пипец, загружая свои прошивки. Дизассемблирую родную прошивку и допилю до датчика касания. Там целых 1.5 K bytes загружаемой памяти и несколько образов bin валяются в инете.
linvinus писал(а):Может все таки такой чип попробуете? http://www.ebay.com/itm/Optical-Flow-Se ... 1282083588
Сейчас этот форум просматривают: Yandex [Bot] и гости: 15