roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 фев 2025, 18:44

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 213 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 08 июн 2012, 06:26 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
какие сенсоры применяются? какое питание? если питание паразитное - на время преобразования надо его подключать, и ожидать завершения преобразования. не помню сколько миллисекунд - надо штудировать даташтиты...

вот, нашел в разделе POWERING...:
Цитата:
..., it is necessary to provide a strong pullup on the 1-wire bus whenever temperature conversions are taking place or data is being copied from the scratchpad to EEPROM. This can be accomplished by using a MOSFET to pull the bus directly to the rail as shown in Figure 4. The 1-wire bus must be switched to the strong pullup within 10 µs (max) after a Convert T [44h] or Copy Scratchpad [48h] command is issued, and the bus must be held high by the pullup for the duration of the conversion (tconv) or data transfer (twr = 10 ms).


и еще (CONVERT T[0x44]):
Цитата:
If the DS18S20 is powered by an external supply, the master can issue read time slots after the Convert T command and the DS18S20 will respond by transmitting 0 while the temperature conversion is in progress and 1 when the conversion is done.
- так сделано у меня

Цитата:
In parasite power mode this notification technique cannot be used since the bus is pulled high by the strong pullup during the conversion.
- а в этом случае смотрим параметры по переменному току:Temperature Conversion Time (tCONV)=750ms
и тогда 1w_convert будет выглядеть как-то так:
Код:
\ запуск преобразования,
  : 1w_convert ( i-- )
        1w_select
        CONVERT_T
        1w-c!
        strong-pullup high
        750 ms pause
        strong-pullup low
        ;

соответственно надо будет определиться с пином strong-pullup и не забыть настроить его на вывод.
and so forth.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 08 июн 2012, 19:59 
Не в сети

Зарегистрирован: 26 дек 2011, 23:04
Сообщения: 35
chu писал(а):
какие сенсоры применяются? какое питание? если питание паразитное - на время преобразования надо его подключать, и ожидать завершения преобразования. не помню сколько миллисекунд - надо штудировать даташтиты...
......

Йес! Заработало!!! :Yahoo!:
Дал питание и уря!
Сорри, за тупость. :oops:
Скоро (надеюсь) мне пришлют ещё пару-тройку железяк (кста, из Новосиба ;) ). В составе GSM/GPRS, Micro SD, RFID считыватель карт (125 КГц), ...
Будет чем заняться. :)
ЗЫ
СПАСИБО!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 08 июн 2012, 21:02 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
ilya73 писал(а):
Йес! Заработало!!! :Yahoo!:
Дал питание и уря!
:beer:
ilya73 писал(а):
ещё пару-тройку железяк ... GSM/GPRS, Micro SD, RFID считыватель карт (125 КГц), ...
я бы тожа хотел поиграть :roll:
go forth


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 08 июн 2012, 21:49 
Не в сети

Зарегистрирован: 26 дек 2011, 23:04
Сообщения: 35
chu писал(а):
я бы тожа хотел поиграть :roll:
go forth

Дистанционно поиграемся!? ;)
Потребуется обмен между двумя *дуинами (мастер-слаэйв), есть идеи?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 16 июн 2012, 06:28 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
ilya73 писал(а):
Потребуется обмен между двумя *дуинами (мастер-слаэйв), есть идеи?

Навыки телепатии у меня отсутствуют напрочь, поэтому с обменом полная неясность.
Для обмена на "рабочем столе" подойдут любые штатные проводные интерфейсы: i2c, spi, usart , да хоть тот же 1-проводной можно приспособить для прикола (ну или ножки сэкономить), только ведомого дописать...Для обмена "в комнате" - можно делать беспроводные IR инфракрасный или какой RF радиочастотный. Для обмена "в поле" - RF или проводной RS-485... а можно и с оптоволокном чего нибудь изобрести, из плюсов - высокая скорость и помехозащищенность, из минусов - дорагааа...и не мобильно.
and so forth
вот, погуглил, симпатичная фигулька Perfect High Quality New NRF24L01 2.4GHz Wireless Transceiver Module Arduino
http://www1.buyincoins.com/details/perf ... -9036.html
и по цене...и на форумах обсуждается...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 17 июн 2012, 22:13 
Не в сети

Зарегистрирован: 26 дек 2011, 23:04
Сообщения: 35
Получил посылку из Новосиба! :Yahoo!:
Первым делом принялся (попытался) за датчик http://www.seeedstudio.com/wiki/Grove_- ... Sensor_Pro или я где согрешил или железяка мёртвая. Курю мануалы, но пока "0" результата.
Может глянешь на "тестовый" код!?
Код:

\ pb0 - data
marker =dht=
PORTC 0  portpin: dht1

variable _result
create dht11_dat 5 allot


: read_dht11_dat ( -- n )
8 0 do
begin dht1 pin_high? [ 30 us/ ] literal ?delay until
dht1 pin_high?
   if 1 7 i - lshift _result dup @ or ! then
begin dht1 pin_low?  until
loop
_result @
;



: test
cr ." Start!"
dht1 pin_output
dht1 high
\ dht1 pin_pullup_on
2500 ms
dht1 low
23 ms
dht1 high
[ 40 us/ ] literal ?delay
dht1 pin_input
[ 40 us/ ] literal ?delay
   begin ." dht11 start condition 1 not met!" cr  dht1 pin_low? 1000 ms until
   [ 80 us/ ] literal ?delay
   begin ." dht11 start condition 2 not met!" cr  dht1 pin_high? until
   [ 80 us/ ] literal ?delay
cr ." Start recive data!"
5 0 do read_dht11_dat dup  cr ." dat=" . dht11_dat i + c! loop
dht1 pin_output
dht1 high
cr ." The end!"
;

Ну не вижу я реакции от датчика. :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 20 июн 2012, 05:23 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
Посмотрел на тестовый код, да. Ты его аккуратно переписал с Сишного, вижу.
Ну и даташит на DHT11 скачал - тоже глянул. Первый вопрос - подтягивающий резистор есть?
Цитата:
When the connecting cable is shorter than 20 metres, a 5K pull-up resistor is recommended; when the connecting cable is longer than 20 metres, choose a appropriate pull-up resistor as needed.

у меги конечно же есть pullap резисторы но они порядка 20К-100К, и могут не обеспечивать необходимой крутизны фронтов сигналов.

Ну и тоже код набросал
Код:

: dht11_pin_init \ пин - в состоянии высокого импеданса ( отключен)
        dht11_pin over over pin_input low ;

: dht11_start
       
        dht11_pin pin_output  \ подаем сигнал старта
        20 ms pause           \ не менее 18 миллисекунд,
        dht11_pin pin_input   \ чтобы DHT11 распознал сигнал

      \ проверяем - точно высокий? ( на всякий случай )
        begin
            dht11_pin pin_high?
        until

      \ теперь ждем ответа
        begin
            dht11_pin pin_low?   \ около 80us
        until
       
        begin
            dht11_pin pin_high?  \ около 80us
        until
        ;

\ прочитать один бит
: dht@bit ( c -- c' )

        begin
             dht11_pin pin_low?
        until
      \ start to transmit 1 bit data (50us)
        begin
             dht11_pin pin_high?
        until

\ длительность нуля - 26-28 мкс
\ длительность единицы - 70 мкс

        [ 40 us/ ] literal ?delay
        dht11_pin  pin_high? if 1 or then 1 lshift \ старшим битом вперед
        ;

\ принять последовательность бит
\ n1 - сколько бит принять, n2 - принятые биты
: dht>bits ( n1 -- n2 )
        0 swap
        0 ?do  dht@bit loop
        ;

\ проверка контрольной суммы ( все данные на стеке )
\ при успехе ?=-1 (true)
: dht?chksum ( n1 n2 c -- n1 n2 ? )

        >r over over
        dup $ff and swap >< $ff and + $ff and
        swap
        dup $ff and swap >< $ff and + $ff and
        +   $ff and r>  xor 0=
        ;

\
: dht11@ dht11_start   ( -- n1 n2 ? )
         $10 dht>bits  \ 16 bit humidity data
         $10 dht>bits  \ 16 bit temperature data
         $8  dht>bits  \  8 bit checksum
         dht?chksum
         ;
\
\ dht11_pin_init dht11@
\


я не стал класть данные в память, как в примерах на си, изза этого пришлось пожонглировать данными на стеке при проверке контрольной суммы - но для фортеров это дажа по кайфу.
код не проверял, вроде должен работать...
да, и принятые данные не обрабатывал...
не забудь про pullup resistor
go forth


Последний раз редактировалось chu 25 июн 2012, 22:22, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 21 июн 2012, 05:28 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
Погорячился я вчера с проверкой контрольной суммы - слишком много телодвижения на стеке - паранойя, аднака...
сегодня исправился:
Код:
: dht?chksum   ( n1 n2 c -- n1 n2 ? )
            >r  over over
            dup >< + swap
            dup >< + +
            $ff and
            r>  xor  0=
           ;

на примере, приведенном по твоей ссылке, проверил в SPF4 оба варианта проверки - работают адназначна.
go forth


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 21 июн 2012, 18:47 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
ilya73 писал(а):
... пришлют ещё пару-тройку железяк (кста, из Новосиба ;) ).

кста, не отсюда ли http://devicter.ru/ ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 21 июн 2012, 22:32 
Не в сети

Зарегистрирован: 26 дек 2011, 23:04
Сообщения: 35
chu писал(а):
Посмотрел на тестовый код, да. Ты его аккуратно переписал с Сишного, вижу.
Ну и даташит на DHT11 скачал - тоже глянул. Первый вопрос - подтягивающий резистор есть?
...
кста, не отсюда ли http://devicter.ru/ ?

go forth


Пошёл по "проторенной" дорожке. :roll:
Резистор имеется - ибо мой девайс идёт с "обвязкой" и заказывал именно там.
Спасибо за отклик!
Думал дачик дохлый и переключился на другой интересный модуль RFID считыватель карт.
В результате "халатности" убил amforth, завтра повезу домой перепрошивать.
Кста, "убил" переполнением стека!?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 25 июн 2012, 20:06 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
упсс...
накосячил в коде слова чтения одного бита от DHT11. :oops:
прошу простить :sorry:
исправляюсь:
Код:
\ прочитать один бит
: dht@bit ( c -- c' )

        1 lshift \ старшим битом вперед
        begin
             dht11_pin pin_low?
        until
      \ start to transmit 1 bit data (50us)
        begin
             dht11_pin pin_high?
        until

\ длительность нуля - 26-28 мкс
\ длительность единицы - 70 мкс

        [ 40 /us ] literal ?delay
        dht11_pin  pin_high? if 1 or then
        ;

невнимательность, да. к сожалению - обычное дело. :pardon:
и потестить сразу же, как это предполагает практика форта, не на чем ( нет такой железки) хорошо хоть так заметил, не прошло и пол-года...
а ведь я предлагался (фрилансером) в эту контору с предложением сотрудничества ( тем более у них на сайтике пригласительная объява есть)
предлагал им свои услуги по:
- сборка прошивок amforth'а для различных мег по ихней номенклатуре;
- написание либ (драйверов) для всех ихних "шильдов";
- техподдержка по amforth'у;
- etc.
вышел какой-то тип, даже не представился ( видима менеджер, ага), минут через десять моих пояснений у него произошло переполнение буфера, в глазах появилась глубина(пустота) ( ну точно - менеджер, нифига не технарь. программисты , те хоть иногда говорят: "форт? нахер он кому нужен, фортран этот!") так и расстались... недельки через три я позвонил - хотя бы внятное "нет" услышать - результат тот же самый: "му-хрю". пнятно, недосуг ему, занимается развитием бизнеса и продвижением рынка, не иначе, ну и ладно...
moving forth
PS. еще раз прошу пардону за косяк


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 26 июн 2012, 23:26 
Не в сети

Зарегистрирован: 26 дек 2011, 23:04
Сообщения: 35
off
Да, манагеры - они такие!
В пред-предыдущей конторе, эти му..чудаки умудрялись впарить то, чего ещё не было в прототипе :o !!!

Скорее всего мой DHT11 - дохлый! :( Нет ответа - хоть ты тресни. На днях попробую расковырять его и прозвонить.
Хрен с ним.

Тут есть другая тема - софтверный USART.
Попробовал считыватель RFID карт - работает, но он вешается на аппаратный USART.
А вот у "нормальных" людей :D , есть такая штука http://arduiniana.org/libraries/newsoftserial/
Пытаюсь поковырять. Подключайся! :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 27 июн 2012, 17:57 
Не в сети
Аватара пользователя

Зарегистрирован: 23 сен 2010, 09:16
Сообщения: 77
прог. языки: Forth
ilya73 писал(а):
off
Скорее всего мой DHT11 - дохлый! :( Нет ответа - хоть ты тресни. На днях попробую расковырять его и прозвонить.

не нада пока ковырять датчик.настройки пина (dht11_pin_init) проверял? чего говорит dht11_start? если система не зависает - отклик от датчика есть. попробуй на другом пине - мог спалить буфер меги. еще можно в dht11_start воткнуть включение/выключение светодиодов.

Добавлено спустя 53 минуты 1 секунду:
ilya73 писал(а):
off
Тут есть другая тема - софтверный USART.
Попробовал считыватель RFID карт - работает, но он вешается на аппаратный USART.

твою ссылку посмотрел, особо вникать не стал - хрен с ними.
тут инфа полезнее http://www.seeedstudio.com/wiki/Grove_- ... FID_Reader
и её вполне достаточно, единственное, чего я не понял - сколько информационных байт передает считываетль - пять или десять?
и еще раз - 10 ASCII Data Characters – Card number info
Цитата:
Note: The 10 ASCII characters grouped as 5 hex data needs to be further processed as you may find that the 5 hex data is not equal to the number marked on the tags in Decimal. Actually the tag number is equal to the later 4 bytes in decimal. For example, the card number is 62E3086CED, the corresponding number marked on the tag should be 3808980205 which is the Decimal format of E3086CED
- нихрена не понятный формат, нид хелп.

смотрим далее:
1. работает в двух режимах, нам интересен usart;
2. достаточно одной линии - Tx(это от ридера, соответственны мы принимаем);
3. оч. полезная картинка - Output Time sequence .

предварительный вывод - удобно использовать прерывания, видимо по изменению уровня ( к сожалению, в моей меге32 такой режим отсутствует, впрочем, считывателя у меня тоже нет), но можно использовать и выделенные пины int0/int1

далее, возникают два варианта:
1. прерывание только по старт-биту, затем прием информационных битов
с использованием ?delay;
2. прерывание (старт-бит) по изменению уровня, прием информационных битов
по прерываниям от таймера

нада определяться...
and so forth


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 28 июн 2012, 00:35 
Не в сети

Зарегистрирован: 26 дек 2011, 23:04
Сообщения: 35
chu писал(а):
настройки пина (dht11_pin_init) проверял? чего говорит dht11_start? если система не зависает - отклик от датчика есть. попробуй на другом пине - мог спалить буфер меги. еще можно в dht11_start воткнуть включение/выключение светодиодов.
......

и её вполне достаточно, единственное, чего я не понял - сколько информационных байт передает считываетль - пять или десять?

предварительный вывод - удобно использовать прерывания, видимо по изменению уровня ( к сожалению, в моей меге32 такой режим отсутствует, впрочем, считывателя у меня тоже нет), но можно использовать и выделенные пины int0/int1

далее, возникают два варианта:
1. прерывание только по старт-биту, затем прием информационных битов
с использованием ?delay;
2. прерывание (старт-бит) по изменению уровня, прием информационных битов
по прерываниям от таймера

нада определяться...
and so forth


Порт проверял (менял), но увы - нет отклика.
Нет низкого уровня от датчика, впадаем в бесконечный цикл.
Код:
\ теперь ждем ответа
        begin
            dht11_pin pin_low?   \ около 80us
        until

Выберу время и распотрошу его.


RFID
Передаёт 10-ть + сумма + старт+стоп.
Кста, с внешними прерываниями уже побаловался - прикольно!
В принципе склоняюсь к первому варианту, а там посмотрим.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форт-система
СообщениеДобавлено: 30 июн 2012, 00:27 
Не в сети

Зарегистрирован: 26 дек 2011, 23:04
Сообщения: 35
Вчера проверил ds307.frt - работает!!!
Но, есть предложение (для стандартизации) вынести слова: rstr>lcd и time? в отдельную либу!?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 213 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 15  След.

Часовой пояс: UTC + 4 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO