Author Topic: AM предавател со Arduino  (Read 3861 times)

Offline BorceBT

  • Топ Експерт
  • *****
  • Posts: 1826
  • Gender: Male
    • www.trajkovski.net
AM предавател со Arduino
« Opened on 19.12.2014, Friday, 03:30:21 »
Добив идеа да дизајнирам АМ предавателче со Arduino (само со користење на Arduino а не аналоген предавател контролиран од Arduino) но пред да почнам разгледав дали некој друг веќе има напраено нешто слично. Веднаш забележав дека некој германец веќе имаше направено нешто и го пробав, работеше но не бев премногу задоволен од квалиететот на звукот и од осетливоста на влезниот сигнал па пробав да направам три работи:

  • да го намалам бројот на надворешни компоненти на минимум
  • да го подобрам квалитетот на звукот и засилам високите фрекфенции
  • да го направам поосетлив влезот

Околу првата работа, од надворешни компоненти останаа само еден кондензатор и еден тример потенциометар и нормално Arduino-то.

Во врска со квалитетот на звукот успеав да го преправам кодот да може да работи на повисока фрекфенција на семплирање а и да добиеме уште еден бит прецизност (5 наместо 4).

Влезот го направив поосетлив со вклучување на внатрешниот референтен напон на влезовите со што сега аналогниот (аудио) влез има 5 пати поголема влезна осетливост со што сега може е премногу но сепак подобро повеќе отколку помалку.

Еве како изгледа физичкото поврзување со Arduino Nano (Може да се користи и Arduino Uno):



Кодот (sketch) со кој го програмирате ардуиното е подолу во атачмент.

Како се подесува и користи овој едноставен АМ предавател: Ви треба АМ приемник (радио) подесен на околy 1000KHz (1MHz) и со вклучување на програмираното Arduino треба на приемникот да го побарате сигналот кој се емитува (без вклучен влез нормално е тоа да е тишина). Не заборавете на антената која треба да биде жица приклучена на излезот D3 од Arduino-то. Должината на жицата - што е подолга тоа подобро но да не биде пократка од 1 метар. На влезот доведете аудио сигнал на пример од MP3 плеер или мобилен телефон. Подесете ја јачината на аудио сигналот да биде мала (една третина од максимумот). Додека слушате на радиото подесувајте го тример потенциометарот од 22К за да добиете чист и квалитетен звук на радиото. Можете да експериментирате со посилен или потивок влезен сигнал за да добиете оптимален квалитет на звукот.

Да напоменам дека Arduina-та не се дизајнирани за вакви намени и неговата употреба како комплетен АМ предавател е на самата граница на можностите на вградениот микроконтролер. Ова значи и дека аудио квалитетот е релативно слаб а и дометот е многу мал (во границите на просторијата) но сепак самата можност да се направи овој уред комплетно софтверски е интересна.
Никогаш неможеш да знаеш се, но секогаш можеш да знаеш повеќе.

Offline DX-er

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 6340
  • Gender: Male
    • Докажи дека си човек и речи стоп за убиствата на бебиња! Ако не си човек, требало и тебе да те абортираат :)
Одг: AM предавател со Arduino
« Reply #1 on 19.12.2014, Friday, 07:50:05 »
Браво за проектот!
Борче, дали може да се направи ваков предавател но со некој пик микроконтролер од Микрочип, како на пример PIC18F2550 ?
Чувството кога некој ограничен со размислувањето ке зборува за двојни стандарди/демократија/правила... бљак...

кликни тука за инфо околу форумот.

Offline BorceBT

  • Топ Експерт
  • *****
  • Posts: 1826
  • Gender: Male
    • www.trajkovski.net
Одг: AM предавател со Arduino
« Reply #2 on 19.12.2014, Friday, 12:07:58 »
Pic најчесто имаат побавни периферни уреди (A/D) конвертори и PWM излези и тоа значи дека освен со употреба на поскапите Pic микроконтролери вакво нешто со микроконтролери од истата класа како оној што се користи во Arduino-то не е можно.
Никогаш неможеш да знаеш се, но секогаш можеш да знаеш повеќе.

Offline DX-er

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 6340
  • Gender: Male
    • Докажи дека си човек и речи стоп за убиствата на бебиња! Ако не си човек, требало и тебе да те абортираат :)
Одг: AM предавател со Arduino
« Reply #3 on 21.12.2014, Sunday, 05:08:25 »
Борче, сакам да го направам овој едноставен предавател. Само ме интересираат неколку работи,
Како иде постапката за програмирање на микроконтролерот, дали треба некој програматор?
Колку чини овој микроконтролер кај нас?
Дали микроконтролерот се продава заедно со се плочката или таа посебно ја правиме ?
Дали излезниот RF сигнал е синусоиден или правоаголен?
Ако си во можност да направиш аудио запис од емитуваниот сигнал од предавателот и да го ставиш на форумот.
Благодарам однапред
Чувството кога некој ограничен со размислувањето ке зборува за двојни стандарди/демократија/правила... бљак...

кликни тука за инфо околу форумот.

Offline Zan

  • Експерт
  • ****
  • Posts: 883
Одг: AM предавател со Arduino
« Reply #4 on 21.12.2014, Sunday, 12:13:25 »
За програмирање на ардуино не треба програматор. Се програмира преку USB порт. На самата плочка од ардуиното има USB-to-serial конвертор.
Ова Arduino Nano, како и некои други модели, може да се најдат во Логинг. Цената на овој модел е 2417 ден.

Code: [Select]
http://www.loging.mk/2139/190120/0/ShowProduct/Arduino_Nano
Жан

Offline MarkoMK

  • Топ Експерт
  • *****
  • Posts: 1001
  • Gender: Male
Одг: AM предавател со Arduino
« Reply #5 on 21.12.2014, Sunday, 12:51:44 »
Интересна идеја.. Иначе овие од Логинг претеруваат со цениве.. На ebay сигурно ова е највеќе 10 $
Life is too short to remove USB safely ..

Offline Zan

  • Експерт
  • ****
  • Posts: 883
Одг: AM предавател со Arduino
« Reply #6 on 21.12.2014, Sunday, 13:11:29 »
Кинеска копија е 3 долари  :)

Code: [Select]
http://www.ebay.com/itm/GOOD-USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino-/221619040552?pt=AU_B_I_Electrical_Test_Equipment&hash=item3399863128
Жан

Offline BorceBT

  • Топ Експерт
  • *****
  • Posts: 1826
  • Gender: Male
    • www.trajkovski.net
Одг: AM предавател со Arduino
« Reply #7 on 23.12.2014, Tuesday, 00:12:12 »
Јас го правев со кинеско Arduino Nano 3.0 (3.5 долари) наречено DCCduino NANО и работеше добро. Нормално за поголем домет треба излезен засилувач бидејќи вака фаќа само во собата а квалитетот на звукот не е баш лош, ќе гледам да направам видео за да се види како ова изгледа кога ќе биде "фатено" на АМ приемник.
Никогаш неможеш да знаеш се, но секогаш можеш да знаеш повеќе.

Offline BorceBT

  • Топ Експерт
  • *****
  • Posts: 1826
  • Gender: Male
    • www.trajkovski.net
Одг: AM предавател со Arduino
« Reply #8 on 26.12.2014, Friday, 20:36:46 »
Еве малку потсреден софтвер за малку подобар квалитет на звукот со мала разлика што едниот (слободниот) пин на тримерот го поврзувате на +5V (има +5V излез на Arduino-то). Со тримерот подесувате најдобар квалитет на звукот (најдобра модулација) а и треба малку посилен влез за да се добие оптимална модулација.
Никогаш неможеш да знаеш се, но секогаш можеш да знаеш повеќе.

Offline DX-er

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 6340
  • Gender: Male
    • Докажи дека си човек и речи стоп за убиствата на бебиња! Ако не си човек, требало и тебе да те абортираат :)
Одг: AM предавател со Arduino
« Reply #9 on 24.03.2016, Thursday, 01:38:38 »
Го направив овој предавател но со Arduino Duemilanove и се слуша аудиото на 1000КХз но со слаб квалитет на звукот, многу по слаб. Дали тоа е дека софтверот не е наменет баш за овој модел на ардуино или пак А/Д конверторот му е по слаб?
Чувството кога некој ограничен со размислувањето ке зборува за двојни стандарди/демократија/правила... бљак...

кликни тука за инфо околу форумот.

Offline MilerovEfekt

  • Стручњак
  • ***
  • Posts: 176
Одг: AM предавател со Arduino
« Reply #10 on 24.03.2016, Thursday, 02:26:03 »
Нормално дека е со слаб квалитет :-) Ова е нај bare-bones работа што би можело да се направи. Квалитетот нема поврзаност со верзија на *ардуино* плочка или било што, едноставно е лошо :-)

Offline BorceBT

  • Топ Експерт
  • *****
  • Posts: 1826
  • Gender: Male
    • www.trajkovski.net
Одг: AM предавател со Arduino
« Reply #11 on 24.03.2016, Thursday, 19:34:33 »
Сепак пробај и со друго Arduino за најсигурно.
Никогаш неможеш да знаеш се, но секогаш можеш да знаеш повеќе.

Offline DX-er

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 6340
  • Gender: Male
    • Докажи дека си човек и речи стоп за убиствата на бебиња! Ако не си човек, требало и тебе да те абортираат :)
Одг: AM предавател со Arduino
« Reply #12 on 27.03.2016, Sunday, 15:47:43 »
Еве направив 3 аудио записи од овој АМ (MW) предавател на 1000KHz. Борче дали вака звучи и кај тебе или е подобро? Доколку е подобро да знам барем.

Code: [Select]
https://soundcloud.com/user-893319551/sets/arduino-am-mw-transmitter-1000khz
Другите што го имате направено ставете по некој аудио запис


Дали може да му се смени фрекфенцијата, ако може кој параметар е фрекфенцијата ?

Code: [Select]
// Simple AM Radio Transmitter : Markus Gritsch
// Simplification and improvement: Borce Trajkovski
//                                                     ANT
//                                                    \ | /
//                          ,−−−−−−−−−−−−−−−−.         \|/
//                  5v      | Arduino 16 MHz |          |
//                  ^       |                |          |
//   audio   C1     |       |      TIMER_PIN >−−−−−−−−−−'
 //  input   ||     |       |                |
 //    o−−−−−||−−−−−|−−+−−−−> INPUT_PIN      |
 //         +||     | /     |                |
 //          1uF   |"|  R1  | ATmega328P     |
 //             \ /| |  22k `−−−−−−−−−−−−−−−−'
 //      DC bal  \ |_| trimmer
 //                 |
 //                −-− GND
 //
 
#define INPUT_PIN 0 // ADC input pin
#define TIMER_PIN 3 // PWM output pin, OC2B (PD3)
#define LED_PIN 13  // displays input overdrive
#define SHIFT_BY 6  // 2 ... 7 input attenuator
#define TIMER_TOP 15 // determines the carrier frequency
#define A_MAX TIMER_TOP/2
#define CLR(x,y)(x&=(~(1<<y)))
#define SET(x,y)(x|=(1<<y))
 
void setup(){
  pinMode(TIMER_PIN,OUTPUT);
  pinMode(LED_PIN,OUTPUT);
  // set ADC prescaler to 16 to decrease conversion time (0b100)
  ADCSRA=(ADCSRA|_BV(ADPS2))&~(_BV(ADPS1)|_BV(ADPS0));
  // non−inverting; fast PWM with TOP; no prescaling
  TCCR2A=0b10100011; // COM2A1 COM2A0 COM2B1 COM2B0 − − WGM21 WGM20
  TCCR2B=0b00001001; // FOC2A FOC2B − − WGM22 CS22 CS21 CS20
  // 16E6 / ( OCR2A + 1 ) = 762 kHz @ TIMER_TOP = 20
  OCR2A=TIMER_TOP;   // = 1MHz @ TIMER_TOP = 15
  OCR2B=TIMER_TOP/4; // set carrier amplitude at 50%
}
 
void loop(){
   // about 50 kHz sampling frequency
  int8_t value=(analogRead(INPUT_PIN)>>SHIFT_BY);
  // clipping manage
  if(value>A_MAX){
    value=A_MAX;
    SET(PORTB,5);
  }else{
    CLR(PORTB,5);
  }
  OCR2B=value;
}
Чувството кога некој ограничен со размислувањето ке зборува за двојни стандарди/демократија/правила... бљак...

кликни тука за инфо околу форумот.

Offline DX-er

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 6340
  • Gender: Male
    • Докажи дека си човек и речи стоп за убиствата на бебиња! Ако не си човек, требало и тебе да те абортираат :)
Re: AM предавател со Arduino
« Reply #13 on 28.03.2018, Wednesday, 01:44:26 »
Еве како изгледа сигналот без модулација

Чувството кога некој ограничен со размислувањето ке зборува за двојни стандарди/демократија/правила... бљак...

кликни тука за инфо околу форумот.