LOCAL TIME

UTC TIME

Vedere Panoramica

Imagini Live de pe ISS - Statia Spatiala Internationala



Live streaming video from ISS by YO2LDK

Translate

miercuri, 16 decembrie 2015

External button (rotary encoder) for VFO - SDR# and HDSDR



External button (rotary encoder) for VFO - SDR#  and HDSDR






  Software Defined Radio (SDR) are tot mai multi adepti, chiar si radioamatorii mai "oldies" sunt atrasi de aceasta noua tehnica in receptia si emisia radio.
 Softurile cele mai utilizate momentan, sunt SDR# (Sharp) si HDSDR, ambele cu plusuri si minusuri ddr, in continuua perfectionare.
 Personal, prefer SDR Sharp, deoarece parca decodeaza (demoduleaza) mai bine pe partea de audio si in plus, se pot adauga o multitudine de plugins-uri pentru a face mai confortabila receptia si/sau decodarea.
  Deoarece utilizez destul de frecvent aceste softuri, si utilizarea mouseului nu da acelasi feeling ca in cazul transceiverelor, m-am gandit sa imi fac un buton extern pentru VFO.  Am vazut destule "adaptari' legate de mouse, de tastatura, dar nu m-a atras nici o varianta; de aceea am cautat pe net cu ce as putea realiza ce-mi doresc si am optat pentru modulul de la Digispark, echipat cu un ATTINY85, care sa stie sa execute comenzi multiple de tastatura.





mai exista si aceasta varianta:





 adaptarea se poate face cu doua butoane push pull  dar cum am mentionat, am ales varianta rotativa, cu un encoder digital








cele doua combinate pentru teste, arata cam asa:




 HDSDR foloseste pentru schimbarea frecventei combinatii de taste ca CTRL Page UP/Down; CTRL sageata sus/jos/stanga/dreapta plus o multitudine de alte combinatii pentru schimbarea modului de lucru,largimii de banda, filtre, etc.
  Apasand pe switch-ul encoderului, se poate schimba de pe VFO A pe VFO B.
Se mai pot face imbunatatiri, poate pe parcurs.

  Din pacate, SDR# este foarte, adica foarte foarte sarac in asa ceva si chiar daca l-am rugat pe Youssef - creatorul softului- sa activeze aceste shortcut-uri, nu am primit un raspuns favorabil.
  Totusi, am gasit un artificiu sa pot realiza ce mi-am propus, pentru aceasta este necesar sa pozitionati cursorul mouse-ului pe unitatile pe care doriti sa le modificati (zeci, sute Hz; Khz, zeci, sute Khz, Mhz) si rotind de ecoder, veti avea un VFO clasic, dar pe USB (portul, nu modul de lucru) ..

 mai jos se poate vedea putin cam cum lucreaza, din pacate antena de HF am dezactivat-o, pentru schimbarea mufelor; in scurte efectul este mult mai bun, dar sunt multumit si in VHF.











 Codul sursa poate fi gasit AICI :

  Selectati versiunea 1.1, cu mici modificari, ca sa functioneze cu ambele
Evident, se pot adauga cateva butoane in plus, pentru comenzi cum ar fi modul de lucru, start/stop recording, etc. dar necesita un modul un pic mai scump, cu mai multe porturi I/O, sper sa pot cumpara in viitorul apropiat un modul Trinket Pro, care se incadreaza perfect pentru asta.





   Succes si 73 ! 






5 comentarii:

yo5pjb spunea...

Frumos proiect, dar am o singura observatie.
Nu e nici un detaliu pentru cineva care ar vrea sa-l reproduca.
Cei care au deja experienta cu microcontrollerele si encoderele ar putea sa-l reproduca si la fel de bine cum ar putea sa-l faca de la zero.

O sa incerc sa aduc putina lumina in speranta ca mesajul meu nu va fi blocat.

S-a folosit un modul Arduino de la Digispark (Digistump?): http://digistump.com/products/1 , ce pare sa fie o clona de Trinket de la Adafruit.
Nu stiu daca este modelul pentru 3.3v sau 5v, dar nu cred ca e asa important.

Avem un rotary encoder, nu stim ce model este, nu stim ce rezolutie are.
Asadar putem presupune ca este un "Keyes KY-040", adica unul din categoria usor de gasit, ieftin si de o calitate indoielnica.
Nu stim cum este legat la modulul Arduino, dar putem deduce din codul sursa: pinul 0 si pinul 2.
Dupa ce legam encoderul la modulul Arduino (observatie: este posibil sa avem nevoie si de niste condensatori ca sa scapam de bouncing: https://bigdanzblog.wordpress.com/2014/08/16/using-a-ky040-rotary-encoder-with-arduino/ )
Avem codul sursa care trebuie sa-l compilam si sa-l scriem pe modulul Arduino (folosind Ardino IDE / Arduino Studio), dar asta nu e tot, ne mai trebuie niste drivere de Windows pentru USB (https://learn.adafruit.com/introducing-trinket/starting-the-bootloader)

Sper ca am reusit sa mai dau indicii utile celor interesati de proiect.

73,
Sorin

yo2ldk spunea...

multumesc pentru precizari, nu vad de ce crezi ca as bloca mesaje, in afara de faptul daca ai crede ca ai scris ceva rautacios.. :)
Evident, reproducerea este libera, de aceea am si postat codul si principiul este foarte simplu dar am cautat asa ceva si nu am gasit pe web or github
da, cum spuneai schema e foarte simpla, se poate deduce clar din cod, modulul este Digispark, este un singur model de 5V deci nu clona si nu Trinket, doar libraria am folosit-o pe cea de la ei, deoarece cea de la digi nu are tastele speciale (modifiers) si desi le-am adaugat, nu aveam stabilitate la frecventa, asa ca am ales varianta care a functionat ok.
O fotografie face mai mult decat o mie de cuvinte, deci da, encoderul asa cum se vede, este unul uzual si ieftin, de fapt, asta era ideea sa realizez ceva care imi indeplinea conditiile si sa fie cat mai accesibil ptr mine si cat mai multi.. Am un encoder optic de 600 DPI si merge super fain in aceasta configuratie dar, il pastrez pentru un DDS.
Iar driverele, e clar, pentru cei care nu le au sau nu stiu ca trebuie sa le puna, Windows-ul le spune sa faca acest pas.
Cum am mai precizat, ideea era ptr ceva cat mai simplu si ieftin dar, se poate folosi un modul mai scump cu mai multe intrari pentru mai multe butoane, un encoder optic cu o rezolutie de macar 400 , etc.
In acest fel pretul se apropie de ceva profesional si pe care acasa nu l-am face , ca acesta:

http://www.amazon.com/PowerMate-Multi-Media-Control-Bluetooth-Connectivity/dp/B00IRDRL4K

73!

yo2ldk spunea...
Acest comentariu a fost eliminat de autor.
Anonim spunea...

He buscado por la red y he encontrado lo mismo en la página de KD2KOG, comparo el código y me encuentro que son casi idénticos, hay algunas diferencias, pero creo que su código esta copiado, ha puesto en las lineas 88 y 93 lo mismo que KD2KOG en las lineas 98 y 103, pero se le ha olvidado añadir el comentario de KD2KOG, según su código, mandamos al SDR las pulsaciones 0,0 en los dos casos, eso no hace nada,según KD2KOG el código a enviar lo teníamos que buscar nosotros. Con eso se demuestra que es una copia en la que se han quitado los comentarios para que no pareciera el mismo. La unica diferencia es que usted ha usado el switch del encoder.

yo2ldk spunea...

Gracias por tu comentario!
   como se ve desde la fecha de esta publicación, el original es mía y KD2KOG copiar este proyecto y se ha apropiado de más, y pedir dinero para ello.
Salí del código plena y libremente, pero cuando vi lo que hizo, he cambiado y 4 dígitos (aunque demasiado tarde) para que aquellos que lo deseen podrán requerir la presentación de dinero de kd2kog o, de forma gratuita, de mí!
Yo tenía esta idea en primer lugar, he buscado en Internet si alguien no me atormentan porque no son principiante avanzado en la programación, pero no he encontrado en cualquier lugar, así que tuve que hacerlo.
Ahora, de repente, no se hicieron incluso la fábrica ...
para mí es todo gratis, reclamo, y me inspiré en otras aplicaciones, sin embargo, he perdido muchas horas para ajustarlo a lo que necesitan los jamones.
  Por lo tanto, si necesita el código completo, escríbeme y voy a enviar a firmar sin ningún problema!

   73!