Как отправить сигнал 60 кГц с антенны?

ФОН

В Японии есть радиоуправляемые часы. Время синхронизируется по радио 40 кГц (в западной Японии) и 60 кГц (в восточной Японии), которое транслируется с передающих вышек. Сигнал известен как JJY:

https://en.wikipedia.org/wiki/JJY

После землетрясения 2011 года башня на востоке Японии рухнула. Нарушена синхронизация времени на востоке Японии. Значит, кто-то из японцев сделал симуляторы и выложил в интернет.


Я из Гонконга. У меня есть радиоуправляемые часы и часы, купленные в Японии. Я хочу, чтобы мои устройства были синхронизированы. Существуют iOS и Android-приложения JJY-симуляторы. Я пробовал некоторые из них. Этот хорошо работает:

https:// /play.google.com/store/apps/details?id=jp.houryo.jjyemulator&hl=ja

Принцип заключается в том, чтобы использовать время с сервера NTP, эмулируя сигнал JJY, отправляя его через аудиопорт 3,5 мм.


Теперь я хочу реализовать эмулятор на Raspberry-Pi. В Интернете можно найти несколько учебных пособий. Ниже приведен тот, которому я следую:

http://itpro.nikkeibp.co.jp/atcl/column/14/093000080/093000002/?ST=oss&P=1 (японский)

Вместо исходного кода в учебнике я использую этот: https://github.com/snt/rpi_jjy_server


ПРОБЛЕМА

Я сделал схему по учебнику:

Однако большую часть времени мои часы не считывают сигнал. Если есть сигнал, состояние сигнала «низкий», и, в конечном итоге, синхронизация времени не удалась. (Для Android-приложения мои часы могут считывать «высокий» сигнал.)

Примечание. Я использую транзистор Toshiba 2SC1815-GR, резисторы 30 кОм, которые предложены в статье Git-hub. А телефонная линия сделала антенну.

Я попытался использовать батарею 9 В вместо источника питания 5 В Raspberry-Pi. Но это не помогает.

Мои познания в электронике очень ограничены. Пожалуйста, простите меня, если я задал глупые вопросы или сделал глупые ошибки. Может ли кто-нибудь указать, если я сделал что-то неправильно? Или каким способом можно было усилить сигнал с антенны?

Большое спасибо за любую помощь!

Лично я бы просто переконструировал антенну для смартфона. используйте осциллограф, чтобы проверить сигнал и попытаться воспроизвести его. Но моя первая мысль... Антенна выглядит совсем по-другому. Вы пытались подключить 3,5-мм антенну к цепи, чтобы проверить, работает ли она?
Антенна 3,5 мм такая же, как у Raspberry-Pi. Это витые провода внутри одной телефонной линии. И я попробовал использовать 3,5 мм на малине. Это не работает. (На самом деле антенна действительно работает только с одним концом, подключенным к макетной плате?) Осциллограф слишком дорог для меня, так как я только новичок, работаю над этим просто для удовольствия.
Да, провод такой же, но размер тоже имеет значение. И... обычно к электрически связанным антеннам подключается только один провод, а к магнитно-связанным - оба. На втором сайте описана антенна? Потому что я думаю, что вам нужен просто кусок провода, а не катушка ...
Спасибо за ваш комментарий. Я понятия не имею об антеннах с «электрической связью» и «с магнитной связью». Позвольте мне сначала провести небольшое исследование для понимания!
Я думаю, что на этих низких частотах магнитная рамочная антенна работает лучше, см. мой ответ.
В статье говорилось: Найдите виниловую леску размером от 1х см до нескольких метров, сделайте петлю, поместите ее рядом с радиоуправляемыми часами; Поместите один конец на макетную доску. 最も 簡単 の は は gpio で светодиод を する 回路 を 作り 、 、 と トランジスタ の コレクタ の 間 から ビニール 線 (センチ から 数 程度) を て て 、 その 線 を 巻き に と いう もの。 う もの。 う「アンテナ を 電波 時計 の 近く に 置き ます。 ぐるぐる 巻き し た ビニール 線 は 、 テープ で 輪 解け ない よう 止め て おき ((5)。 線 の 一端 を 、 穴 穴 刺さる 穴 刺さる 穴 穴 の の程度の太さに芯線をまとめてください。銅単線を使うともっと楽かもしれません。 Итак, я считаю, что исходная установка должна работать?
Посмотрите на фото, шлейф подключен к аудиовыходу смартфона 2-мя подключениями!
Да. И поэтому тоже выкладываю фото. Я считаю, что они (антенны) ведут себя по-разному.

Ответы (1)

«На самом деле антенна действительно работает только с одним концом, подключенным к макетной плате?» Нет, не этот тип антенны. У вас есть рамочная антенна, и она создает магнитное поле. Теперь вы используете его, как если бы это была электрическая антенна, и это сработало бы, ЕСЛИ бы она была очень длинной, для 60 кГц мы говорим о 1250 метрах (!!!), а не свернутой, как у вас.

Я предлагаю вам подключить открытый конец антенны к +5 В, НО для ограничения тока используйте последовательный резистор номиналом 1 кОм или около того.

Если вы построите это, я думаю, есть хороший шанс, что это сработает. Обратите внимание, что Антенна представляет собой катушку (длинный провод с множеством витков), и оба конца провода соединены!

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Спасибо за ваш ответ. Извините, но мои знания ограничены. Определяет ли физическая форма антенны или способ подключения форму (электрическую/магнитную) антенны?
Антенны, это сложная тема! Антенны излучают электромагнитные волны, то есть как электрические, так и магнитные. Однако для одних типов сильнее магнитное поле, для других электрическое поле. Это также может быть связано с тем, как вы его подключаете. Обычно антенны с односторонним подключением - электрические, а двухсторонние с проводящим соединением (как у вас) - магнитные.
Итак, поскольку я подключаю только один контакт, заставляя антенну работать как электрическую, ограничение тока с помощью резистора 1 кОм сделает сигнал «лучше», не увеличивая длину антенны, верно?
Как насчет того, чтобы сделать антенну магнитной, нужно ли мне модифицировать аппаратное обеспечение или код?
Резистор на 1 кОм необходим для ограничения тока, так как петля вашей антенны, по сути, представляет собой просто длинный провод. Просто сделайте, как я предложил, подключите открытый конец антенны к +5 В через резистор 1 кОм, это все, что вам нужно сделать. Вы используете рамочную антенну, она должна работать как магнитная антенна. Нет необходимости менять свой код.
Я только что попробовал схему, которую вы мне дали. Хотя это выглядит многообещающе, мои часы по-прежнему не считывают сигнал. Есть ли у вас какие-либо идеи? i13.photobucket.com/albums/a298/y2kbugleung/…
Ваша схема теперь выглядит нормально для меня. Вы уверены, что выход GPIO может обеспечить правильный сигнал? Я говорю это, потому что в исходном проекте используется аудиовыход телефона, который является аналоговым выходом. Возможно, часам просто требуется много времени, чтобы получить сигнал времени. Вы уверены, что он находится в режиме приема? Обычно эти часы получают время только один раз в день для экономии заряда батареи.
Мои часы получали сигнал "low" от GPIO, и есть туториал по использованию GPIO в качестве вывода сигнала, я думаю, что это возможно. (Тем не менее, я не могу подтвердить, что есть какой-либо сигнал от GPIO, поскольку у меня нет возможности проверить). Я могу перевести свои часы в режим принудительной синхронизации. «Второй контакт» часов будет указывать на 12 при запуске режима синхронизации и указывать на «H», «L» для высокого и низкого уровня сигнала и «N» для отсутствия сигнала. И у меня есть часы для теста. Тот же результат.
Извините за название. Проект генерирует сигнал 40 кГц, но не 60 кГц. Я прочитал статью, прежде чем делать этот проект. a-chien.blogspot.hk/2013/08/blog-post_2620.html (китайский) Кажется, что компьютер не может генерировать сигнал 40 кГц. Мы делаем гармонию сигнала 13,3 кГц и, следовательно, 40 кГц. (Я не уверен, что я говорю: P) Можете ли вы понять, читая графики в статье? Я не уверен, что это может помочь в этом вопросе. В очередной раз благодарим за помощь!
Из аудиопорта вы обычно не можете получить 40 кГц, так как звук достигает 20 кГц. Я понимаю про 3-ю гармонику 13,3333 кГц, то есть действительно 40 кГц. Но с портом GPIO вы можете получить 40 кГц напрямую. Проблема в том, что мы не знаем, хорош ли ваш сигнал для часов, может быть, он слишком сильный? Обычно эти сигналы очень слабые. Интересный проект, если бы вы только могли заставить его работать :-)
Ах я вижу. Я буду продолжать выяснять решение. Мой друг, который учится в университете, может помочь одолжить мне осциллограф. Я буду держать здесь в курсе. Еще раз спасибо за вашу большую помощь!
Да осциллограф очень поможет! Удачи с вашим проектом.
Извините, я хотел бы спросить о некоторых основных идеях. Как определить, какие резисторы использовать в схеме? И есть ли какая-либо связь между входным напряжением на базовом выводе транзистора и выходным напряжением эмиттера? Спасибо.
Да есть, но это не объяснить в нескольких строчках! Это хорошая отправная точка: en.wikipedia.org/wiki/Bipolar_junction_transistor Значения резисторов не так критичны в вашей схеме (также подойдет в 2 раза больше или меньше), я просто использовал значения, которые я обычно использую, и 9 из 10 раз это достаточно хорошо. Я играю с транзисторами уже 30 лет, поэтому мне больше не нужно об этом думать.
Ура 30 лет! :o Некоторые обновления. Я переключился на использование исходного кода C из японского учебника вместо кода Python. Он использует чип bcm2835 на Raspberry-Pi для создания точного «промежутка» между импульсами. После некоторых испытаний мои часы могут постоянно показывать «низкий» сигнал, а иногда и «высокий». Но, кажется, синхронизация времени еще не может быть завершена. Я думаю, что мне нужно улучшить сигнал. Могу ли я узнать, должен ли я сделать больше петель, использовать более длинный провод или более высокое напряжение, чтобы получить более сильный сигнал? В чем разница между линейной и рамочной антенной? Как насчет добавления алюминиевой фольги?
30 лет, потому что я начал рано в жизни :-) Поскольку ваши часы теперь, кажется, имеют низкий/высокий сигнал, я думаю, что антенна и т. Д. В порядке. Я бы сосредоточился на синхронизирующем сигнале и проверил, что он такой, каким должен быть. Может быть, использовать осциллограф, чтобы убедиться. Я не ожидаю, что замена антенны, добавление фольги и т. д. что-то улучшит.
Я выясняю, помогают ли «Ограничения производительности в реальном времени»: airspayce.com/mikem/bcm2835 Я очень люблю науку с детства. Поскольку студентов в Гонконге распределяют по направлениям «искусство» и «наука», а я ходил на направление «искусство» с друзьями, я не могу поддерживать интерес к своим знаниям. Гонконг — это бизнес-сообщество… Raspberry-Pi — действительно хорошая «игрушка» для меня, чтобы в этом возрасте все освоить :D
Вроде у меня заработало: i13.photobucket.com/albums/a298/y2kbugleung/… Но мне еще нужно усилить сигнал, так как я хочу, чтобы он принимался в пределах 1 - 2 метров. Не могли бы вы научить меня, как это сделать? i13.photobucket.com/albums/a298/y2kbugleung/…
Кстати, я обнаружил кое-что странное. Это программа C, которую я использую: pastebin.com/QLSSv0rz . Она должна излучать сигнал 40 кГц. В Японии на Востоке используется частота 40 кГц, а на Западе — 60 кГц. Но, как вы могли видеть на картинке, которую я разместил в последнем сообщении, часы показывали «W» вместо «E». Можно ли каким-либо образом повлиять на сигнал, излучаемый антенной, и изменить его на 60 кГц?
40 кГц не имеет ничего общего с антенной! Антенна - это просто кусок провода. 40 или 60 кГц определяются в коде RPi. Было трудно найти, но я думаю, что нашел, посмотрите: void gen_pulse(int ms), а точнее: bcm2835_delayMicroseconds(12); их 2, 2 x 12 мкс = 24 мкс и 1/24 мкс = 41,67 кГц, хорошо, не 40 кГц, но достаточно близко. Возможно, официальный передатчик времени также работает на частоте 41,67 кГц. Итак, для 60 кГц: 1/60 кГц = 16,67 мкс/2 = 8,33 мкс. Поэтому, если вы измените bcm2835_delayMicroseconds(12) на bcm2835_delayMicroseconds(8.333), вы должны получить 60 кГц.
Но проверьте, какую частоту на самом деле использует официальный передатчик, так как может также потребоваться bcm2835_delayMicroseconds(8), чтобы было 2 x 8 мкс = 16 мкс: 1/16 мкс = 62,5 кГц.
Если вы хотите увеличить радиус действия вашего передатчика, вы можете уменьшить резистор на 1 кОм, включенный последовательно с антенной, до 470 Ом или даже лучше, сделать рамочную антенну большего размера. Но для этого вам понадобится много провода, я думаю, антенна шириной 50 см и около 10 петель. Так что 5 м провода минимум.
Я считаю, что теоретически это должно быть 40 кГц и 60 кГц jjy.nict.go.jp/jjy/trans/index-e.html Я хочу сказать, что RPi должен посылать сигнал 40 кГц, но часы показывают 60 кГц. Это странно. Вы имеете в виду 50 см в диаметре для антенны? Есть ли какая-нибудь статья, которую я могу прочитать о взаимосвязи между напряжением, диаметром, количеством петель, толщиной провода, формой антенны и т. д. и силой сигнала антенны? Спасибо.
Да, я имею в виду диаметр антенны 50 см, но это только мое предположение! Есть книги об антеннах, на самом деле их много. Но не читайте их, если не хотите стать экспертом по антеннам. Антенна - сложная тема. Я думаю, что в вашем случае лучше всего просто немного поэкспериментировать.
Я попытался сделать антенну диаметром 28 см и 15 петлями. Этот размер является максимальным пределом, который я могу разместить дома. (HK пугает место) Пробовал менять местами номиналы резисторов, длина сигнала вроде не сильно помогает. Учитывая, что я хочу сохранить около 30 см в диаметре, могу ли я просто добавить больше петель, чтобы увеличить длину сигнала? Тем не менее, странно, мои часы все еще показывают «W» (прием сигнала 60 кГц), в то время как я отправляю 40 кГц в коде. При изменении кода на 8,3 мс (отправка 60 кГц) мои часы получают очень слабый сигнал или его нет. Кажется, что отправка сигнала проблематична?
И, как я нашел в Интернете, сигнал должен быть направлен с двух сторон антенны, а не "отверстия". Итак, это размещение должно быть правильным, верно? i13.photobucket.com/albums/a298/y2kbugleung/…
Классная у вас там установка :-) Отлично! Да, сигнал будет выходить спереди и сзади антенны, так что размещение должно быть в порядке. Кроме того, поскольку частота очень низкая, размещение не так критично. На вашем месте я бы поэкспериментировал с 8,3 мс в коде, увеличивал и уменьшал его, чтобы посмотреть, что работает лучше всего. Также хитрость заключается в том, чтобы посмотреть, что работает, например: если работает 7,5 мс - 8,5 мс, сделайте 8,0 мс, что находится прямо посередине.
Я только что еще раз внимательно прочитал учебник. (Я не владею японским языком, поэтому просто пробежался глазами по абзацам). ただし 、 し た 発振 で はあり ませ ん。 パルス 幅 に 若干 の ゆらぎ (ジッター と 言い ます) が ます。 原因 は 、 、 マルチ マルチ タスク タスク だ です です マルチ タスク に に に に に に に に に に 中 に にし なけれ なり ませ ん し 、 、 自体 を 動作 さ せる に 定期 的 な タイマー 割り込み が 発生 し て ます。。。。。。。。。 定期 的 な タイマー 割り込み 発生 し て い ます。。。。。。。。 定期 的 な タイマー が 発生 し て ます。。。。。。Таким образом, сигнал не мог быть чистым 40 кГц, так как 12 мс сна не могли быть достигнуты. @FakeMoustache ты знаком с C? Я видел «Ограничения производительности в реальном времени», но понятия не имею, как их применять. Я считаю, что это должно быть ключевым моментом. Спасибо
NVM, я думаю, что он уже работает с приоритетом «реального времени»: 1479 root rt 0 18192 1464 1136 R 60,5 0,2 0:22,13 waveclock
Нет, я не знаком с C, я использую в основном Python, что намного проще :-) Я также постараюсь дать программе высокий приоритет. В такой многозадачной среде, как Linux, вы можете сделать очень мало. Но также и для быстрого процессора миллисекунда — это много времени.
да это странно. ждать следующую секунду, 697634 мкс ждать следующую минуту, 13000000 мкс Текущее время: 2015/12/09 13:54:00 Текущее время: 2015/12/09 13:54:59 Текущее время: 2015/12/09 13: 55:59 ... Текущее время: 2015/12/09 15:17:37 Текущее время: 2015/12/09 15:18:37 Текущее время: 2015/12/09 15:19:36 Насколько я понимаю , процесс отправки должен длиться 1 минуту, после чего немедленно начнется другой процесс отправки.
Ой? Разве миллисекунда не является «стандартом»? Будет ли это быстрее на одном процессоре и медленнее на другом? :о
Да, конечно, миллисекунда - это миллисекунда, НО Linux не является ОС реального времени, поэтому она не может гарантировать, что она будет ждать 1 мс, когда вы скажете ей подождать 1 мс. Linux сделает все возможное, но это может быть немного больше 1 мс, когда ЦП занят. Критические ко времени системы используют операционные системы реального времени, но они, как правило, не являются многозадачными, поэтому синхронизация может быть почти гарантирована.
Хорошо, позвольте мне обновить статус. После последнего комментария я пошел изучать Raspbian в реальном времени. После многих испытаний код BCM2835 все еще не работает. Но, к счастью, тайваньский gnitnawtw.blogspot.hk/2015/10/piquadcopter-raspberry-pi.html указал мне, что бессмысленно пробовать BCM2835. Как указано на странице airspayce.com/mikem/bcm2835 changelog 1.9, вызов функции задержки стоит 100-200 долларов США. Пока мне просто нужен мой скрипт, чтобы каждый раз задерживать 12us. Я думаю, это объясняет, почему сигнал неточный и выглядит как 60 кГц, а не 40 кГц.
И, как предложил тайваньский автор, вместо этого я попробую это: abyz.co.uk/rpi/pigpio
Меня интересует, будет ли этот использовать как антенну: robot-electronics.co.uk/htm/srf05tech.htm
Нет, это совсем другое! Это ультразвуковой (высокочастотный звук) датчик расстояния. Возможно, вас смутила диаграмма направленности, которая выглядит так, как будто это антенна. Это действительно похожий график, но он показывает мощность звука, а не мощность электромагнитных волн.
После последнего обновления я искал в Интернете и пробовал разные способы добиться 12 us на Raspberry. Однако с ОС это кажется невозможным. И я начал играть с моим новым Arduino. Сегодня получил интернет-модуль, после некоторой модификации программы он наконец-то работает! Ура! Часы могут принимать «высокий» сигнал. Но все же странно, что Arduino излучает сигнал 40 кГц, а часы говорят, что принимают 60 кГц. Мне все еще нужно сделать антенну меньше и длиннее в диапазоне приема. Спасибо за помощь!
Для кого-то на будущее, эта веб-страница содержит программу Arduino: d.hatena.ne.jp/NeoCat/20110328/1301256560
И программа должна быть обновлена, прежде чем она сможет работать. Пожалуйста, выполните поиск по исходной ссылке на этой странице, чтобы найти статью. Пожалуйста, пропустите шаг 6, так как это приведет к сбою программы. см. wiki.jp/system3333/d/…