Este artículo describe al mismo tiempo un proyecto y una experiencia para la escucha remota bastante interesante. Con la ayuda de un amplificador y un auricular, describimos el modo de transmitir sonidos a través de paredes. Estos sonidos tanto pueden ser una grabación de un CD como los sonidos captados por un micrófono oculto.

Los sistemas de transmisión de señales por inducción son utilizados en espionaje, pues eliminan, la necesidad de un hilo entre el lugar en que está el micrófono y el lugar en que el espía con el auricular.

De esta forma, descubierto el micrófono, es difícil encontrar el lugar en que puede estar el espía.

Nuestra experiencia muestra cómo funciona este sistema de escucha o transmisión por anillo inductivo, pudiendo ser implementado de manera simple para demostraciones o aún para un sistema de sonido remoto de equipo de sonido.

La idea básica es aplicar la salida de un amplificador a una gran bobina, de modo que produzca un campo magnético fuerte que pueda ser captado a una buena distancia.

Para un amplificador potente, y un sistema sensible de captación, esta distancia puede sobrepasar los 3 metros.

Para nuestro caso, como el sistema es bastante simple tendremos un alcance menor, pero como paredes son mucho más finas que eso, la señal podrá atravesarlas con facilidad.

Podremos transmitir música a través de la pared o incluso elaborar un sistema de comunicaciones inalámbricas con un par de receptores y transmisores.

 

Como funciona

El principio de funcionamiento es fácil de entender: aplicando la señal de salida de un amplificador a una bobina hecha con algunas espiras de hilo común, tenemos la creación de fuerte campo magnético con las mismas características de la corriente que circularía en un altavoz.

Como esta corriente corresponde a los sonidos amplificados, el campo transporta esta información y puede atravesar objetos como paredes y pisos.

Para captar la señal, todo lo que necesitamos es una segunda bobina con muchas espiras de hilo fino esmaltado.

El campo magnético creado por la bobina transmisora al cortar las espiras de la bobina receptora induce corrientes con las mismas características del sonido original.

Tenemos dos posibilidades para recuperar el sonido original: podemos conectar esta bobina a un simple auricular (que debe ser del tipo sensible de cristal o piezoeléctrico) o bien a la entrada de un amplificador.

 

Montaje

En la figura 1 tenemos el diagrama completo del sistema con auricular de cristal.

 

Figura 1 - Diagrama del sistema
Figura 1 - Diagrama del sistema

 

 

En la figura 2 mostramos el aspecto del montaje.

 

Figura 2 - Aspecto del montaje
Figura 2 - Aspecto del montaje

 

 

La bobina L1 está formada por 5 a 10 vueltas de hilo común con diámetro que puede variar entre 40 cm de 2 m.

Esta bobina se conecta a la salida del amplificador, que si tiene más de 1 W debe tener un resistor de 10 ohms x 10 W conectado en serie, como muestra la figura 3.

 

Figura 3 - Conexión de una resistor de protección
Figura 3 - Conexión de una resistor de protección

 

 

La bobina receptora es un transformador de alimentación común o de salida de viejos aparatos valvulados del que se ha retirado el número.

En el caso del transformador de fuerza, hacemos la conexión del auricular en el devanado primario.

Es muy importante que el auricular sea de alta impedancia, ya que otros tipos de auriculares no funcionarán.

En la figura 4 mostramos el modo de utilizar el sistema en una comunicación a través de una pared.

 

Figura 3 - Comunicación a través de la pared
Figura 3 - Comunicación a través de la pared

 

 

L1 - 5 a 10 vueltas de hilo común - ver texto

L2 - bobina de transformador - ver texto

X1 - Auriculares de cristal

R1 - Resistor de 10 ohms x 10 W

 

Varios:

Hilos, soldadura, caja para montaje del receptor, etc.

 

18.924MBMemory Usage44.94msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.20
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.5.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "SCRIPT_NAME" => "/index.php" "RE...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1750533615 "last" => 1750533615...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.36KB) (248μs)
  • afterInitialise (1.14MB) (3.34ms)
  • afterRoute (179.16KB) (841μs)
  • beforeRenderComponent com_content (100.7KB) (402μs)
  • Before Access::preloadComponents (all components) (33.45KB) (176μs)
  • After Access::preloadComponents (all components) (107.06KB) (456μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (8μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (25.28ms)
  • Before Access::getAssetRules (id:3399 name:com_content.article.10346) (514.65KB) (953μs)
  • After Access::getAssetRules (id:3399 name:com_content.article.10346) (7.38KB) (40μs)
  • afterRenderComponent com_content (382.05KB) (5.92ms)
  • afterDispatch (2.25KB) (43μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (1.6ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (325μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (97μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (1.12ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (584μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (67μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (216μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (51μs)
  • afterRender (257.75KB) (3.09ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (56.25%)
    25.28ms
    1 x afterRenderComponent com_content (382.05KB) (13.17%)
    5.92ms
    1 x afterInitialise (1.14MB) (7.43%)
    3.34ms
    1 x afterRender (257.75KB) (6.87%)
    3.09ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (3.56%)
    1.60ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (2.49%)
    1.12ms
    1 x Before Access::getAssetRules (id:3399 name:com_content.article.10346) (514.65KB) (2.12%)
    953μs
    1 x afterRoute (179.16KB) (1.87%)
    841μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.3%)
    584μs
    1 x After Access::preloadComponents (all components) (107.06KB) (1.01%)
    456μs
    1 x beforeRenderComponent com_content (100.7KB) (0.89%)
    402μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.72%)
    325μs
    1 x afterLoad (85.36KB) (0.55%)
    248μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.48%)
    216μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.39%)
    176μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.22%)
    97μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.15%)
    67μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.11%)
    51μs
    1 x afterDispatch (2.25KB) (0.1%)
    43μs
    1 x After Access::getAssetRules (id:3399 name:com_content.article.10346) (7.38KB) (0.09%)
    40μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    8μs
21 statements were executed, 5 of which were duplicates, 16 unique13.82ms1.58MB
  • SELECT @@SESSION.sql_mode;29μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 171μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `incbmx_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)161μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`50μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `incbmx_usergroups` AS `a` LEFT JOIN `incbmx_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest75μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`252μs20.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)299μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 010.62ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`265μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '10346'144μs48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)152μs22.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`215μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `incbmx_contentitem_tag_map` AS `m` INNER JOIN `incbmx_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)242μs3.98KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`172μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM incbmx_fields AS a LEFT JOIN `incbmx_languages` AS l ON l.lang_code = a.language LEFT JOIN incbmx_users AS uc ON uc.id=a.checked_out LEFT JOIN incbmx_viewlevels AS ag ON ag.id = a.access LEFT JOIN incbmx_users AS ua ON ua.id = a.created_user_id LEFT JOIN incbmx_fields_groups AS g ON g.id = a.group_id LEFT JOIN `incbmx_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC372μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`170μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1145μs1.89KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `incbmx_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)88μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context65μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)164μs22.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `incbmx_scheduler_tasks` AS `a` WHERE `a`.`state` = 168μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy