Viss ir labi!

It is currently Wed Dec 13, 2017 8:31 pm

All times are UTC




Post new topic Reply to topic  [ 13 posts ] 
Author Message
 Post subject: Elektronikas projektiņi ar paša rokām
PostPosted: Tue Mar 17, 2015 9:02 pm 
Offline

Joined: Mon Apr 16, 2012 12:47 pm
Posts: 87
Šajā topikā variet droši mest iekšā ja vēlieties padalīties arī ar saviem projektiņiem.

TV PULTS OMEI UN OPIM

Bija pienācis laiks ka šāda lieta ir nepieciešama tāpēc nolēmu pats uzmeistarot.
Cilvēkiem cienījamā vecumā nereti gadās saspaidīt uz pults neīstās pogas un tas rada problēmas.
Nolēmu uztaisīt pulti, uz kuras ir tikai 5 pogas: Power, CHANEL+,CHANEL-,VOLUME+,VOLUME-. Vēl pultij jābūt pietiekami lielai, lai viegli nospiest pogas.
Projektam nepieciešamās lietas: kastīte (~2 eiro), 5 kārtīgas spiedpogas(0.70 centi*5), Arduino pro mini(~2 eiro.), IR diode.
Kastīte un pogas pirku tepat ormix.lv un arduino klonu no ebay no ķīniešiem. Bet diodi izlodēju no vecas nestrādājošas pults.
Pults izmaksas aptuveni:7.50 euro.
Image
Image
Protams darbam vajadzīgs dators ar ko programmēt arduino.
Un manā gadījumā vēl bija vajadzīgs USB adapteris uz ttl, ar ko ieprogrammēt arduino pro mini.
Image
Bet var ari pirkt un izmantot jebkuru citu arduino ar jau iebūvētu USB.
Tiem kas nezin, kas ir arduino var palasīt http://www.arduino.cc/
Īsumā sakot arduino ir mazas platītes ar atmel mikrokontrolieri, kuru var saprogrammēt ar arduino programmu.
Arduino galvenā priekšorocība, ka pašam nav jālodē tas viss un ir peejamas daudz bibliotēkas in programu piemēri dažādiem risinājumiem.
Vienīgais mīnuss, ka arduino vide "noēd" mikrokontroliera resursus un tas ir nedaudz lēnāks, bet DIY projektiņos jau mēs to nejūtam:)
Vispār par IR jeb infra sarkano datu pāraidi var palasīt kautvai te.
https://learn.sparkfun.com/tutorials/ir-communication
Īsi sakot signāls tiek pārraidīts 38 Hz frekvencē ar noteiktiem impulsiem.
Nospiežot tautiņu tiek nosūtīts vesels impulsu kopums ar noteiktām laika atstarpēm.
To visu var saglabāt datu masīvā, ko var nosaukt par RAW formāta kodiem.
Tādējādi ja ir vecā pults tad var "nokopēt" jebkuru pulti. Priotams ja IR diode strādā 38 Hz frekvencē, bet pieņemu ka 99% pultis izmanto šo frekvenci jo tas drošvien ir pieņemts standarts.

Tagad par lietu. Visu sadalīju 3 etapos:1) IR kodu noskaidrošana, 2) Shēmas uzzīmēšana un lodēšana 3) Programmēšana.
------------------------
1.IR kodu noskaidrošana.
------------------------
Ir divi varianti vai nu mēģinēt vajadzīgos IR RAW kodus atrast google vai izmantot IR uztvērējdiodi mēģināt nolasīt kodus izmantojot esošo pulti un to pašu arduino.
Ja izdodas kodus atrast google tad var iet pie 2 punkta.
Ja nē tad jādabū IR uztvērējdode. Var nopirkt pa 2 eiro,bet es to izlodēju ārā no saplīsuša DVD pleijera.
IR uztvērējdiodei ir 3 kājas:zeme(GND), barošana(VCC) un dati. Diodes ražotāja aprakta lapā jāskatās kura ir kura kāja, jo dažādiem ražotājiem atšķiras.
Vēl liela uzmanība jāpievērš barošanas spriegumam, ir 5V vai 3,3V kā manā gadījumā, lai zin pie kura slēgt arduino.
Shēma te.
Image
Image
Te arduino kods, kas saglaba RAW kodu un izvada uz sereālo monitoru arduino programmā. Šis koda gabals gan nav mans rasktīts.
Code:
#define sprint Serial.print
#define sprintln Serial.println
#include <IRremote.h>

#define IR_RCVR_PIN 11
IRrecv ir_receiver(IR_RCVR_PIN);
decode_results results;

void setup() {
    Serial.begin(9600);
    ir_receiver.enableIRIn(); // Start the receiver
}

void loop() {
   if (ir_receiver.decode(&results)) {
    dump(&results);
    ir_receiver.resume(); // Receive the next value
   }
}

int c = 1;

void dump(decode_results *results) {
   int count = results->rawlen;
   sprintln(c);
   c++;
   sprintln("For IR Scope: ");
   for (int i = 1; i < count; i++) {
       sprint("0x");
       sprint((unsigned int)results->rawbuf[i], HEX);
    sprint(" ");
   }

   sprintln("");
   sprintln("For Arduino sketch: ");
   sprint("unsigned int raw[");
   sprint(count, DEC);
   sprint("] = {");
   for (int i = 1; i < count; i++) {
       sprint("0x");
       sprint((unsigned int)results->rawbuf[i], HEX);
       sprint(",");
    }
    sprint("};");
    sprintln("");
    sprint("irsend.sendRaw(raw,");
    sprint(count, DEC);
    sprint(",38);");
    sprintln("");
    sprintln("");
}

------------------------
2.Shēmas uzzīmēšana un lodēšana
-----------------------
Tālāk izštukoju shēmu, pie kurām pieciem piniem slēgšu pogas. Sorrī, ka shēm zīmēta paintā, vēl neesmu apguvis shēmu zīmēšanas programmas:) Varbūt variet ieteikt kādu!
Image
Image
Image
Image
------------------------
3.Programmēšana
------------------------
Tālāk notiek programmēšana.
Code:
#include <IRremote.h>

IRsend irsend;
//power
unsigned int S_pwr[68]={4600,4350,700,1550,650,1550,650,1600,650,450,650,450,650,450,650,450,700,400,700,1550,650,
1550,650,1600,650,450,650,450,650,450,700,450,650,450,650,450,650,1550,700,450,650,450,650,450,650,450,650,450,700,
400,650,1600,650,450,650,1550,650,1600,650,1550,650,1550,700,1550,650,1550,650};
// channel up
unsigned int S_pup[68]={4600,4350,700,1500,700,1500,700,1550,700,450,650,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,450,
650,450,700,400,700,400,700,400,700,400,700,1550,700,400,700,400,700,1550,650,450,700,400,700,400,700,1550,650,450,
650,1600,650,1550,650,450,700,1500,700,1500,700,1550,650};
// channel down
unsigned int S_pdown[68]={4650,4300,700,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,1550,700,400,700,
400,700,400,700,450,700,400,700,400,700,400,700,450,650,450,650,1550,700,400,700,450,650,400,700,1550,700,1500,700,
1550,700,1500,700,400,700,1550,650,1550,700,1500,700};
// volume up
unsigned int S_vup[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,
700,1550,650,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,
400,700,450,700,400,700,400,700,400,700,450,650,450,650,450,650,1550,700,1500,700,1550,700,1500,700,1550,650};
// volume down
unsigned int S_vdown[68]={4600,4350,700,1550,650,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,700,1500,
700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,450,650,1550,700,400,700,
400,700,450,700,400,700,400,700,400,700,1550,700,400,700,1500,700,1500,700,1550,700,1500,700};

const int butpin_pwr = 9;     // izslegsanas pogas pin
const int butpin_pup = 8;     // kanals +  pin
const int butpin_pdown = 7;     // kanals - pin
const int butpin_vup = 6;     // skalak  pin
const int butpin_vdown = 5;     // klusak pin

const int ledpin =  3;      // IR LED pin

// mainigie
int pwr_state = 0;
int pup_state = 0;
int pdown_state = 0;
int vup_state = 0;
int vdown_state = 0;

void setup()
{
  pinMode(ledpin, OUTPUT);
  pinMode(butpin_pwr, INPUT);
  pinMode(butpin_pup, INPUT);
  pinMode(butpin_pdown, INPUT);
  pinMode(butpin_vup, INPUT);
  pinMode(butpin_vdown, INPUT);   
}

void loop() {
  // power
  pwr_state = digitalRead(butpin_pwr);
  if (pwr_state == HIGH) {
     irsend.sendRaw(S_pwr,68,38);
     delay(2000);
  }
  // program up
  pup_state = digitalRead(butpin_pup);
  if (pup_state == HIGH) {
     irsend.sendRaw(S_pup,68,38);
     delay(1000);
  }
  // program down
  pdown_state = digitalRead(butpin_pdown);
  if (pdown_state == HIGH) {
     irsend.sendRaw(S_pdown,68,38);
     delay(1000);
  }
  // volume up
  vup_state = digitalRead(butpin_vup);
  if (vup_state == HIGH) {
     irsend.sendRaw(S_vup,68,38);
     delay(100);
  }
  // volume down
  vdown_state = digitalRead(butpin_vdown);
  if (vdown_state == HIGH) {
     irsend.sendRaw(S_vdown,68,38);
     delay(100);
  } 
}

TV ir samsung.
Un man pašam par lielu brīnumu pults arī strādā :)
Image


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Tue Mar 17, 2015 9:54 pm 
Offline
User avatar

Joined: Tue Jan 20, 2015 8:02 pm
Posts: 5
Super!
Vēl varētu būt opcija tikai ar ātrajām pogām "Panorāma", "Ugunsgrēks", "Vienkārši Marija".. :)


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Wed Mar 18, 2015 9:49 am 
Offline

Joined: Mon Apr 09, 2012 12:24 pm
Posts: 77
Lūk šī ir vērtīga štelle.
Man galvā maļas doma uzmeistarot vājredzīgam cilvēkam draudzīgu mp3 atskaņotāju, kurā varētu salādēt kaudzi audiogrāmatu un lai to varētu lietot arī cilvēks kuram redze jau pašvaka un ar šitādām megapogām var ērti baudīt audiopriekus. Nezinu, cik ātri pats tādam projektam nobriedīšu. Ja būtu kāds zinošs entuziasts, kas gribētu iesaistīties tāda projekta uzcepšanā ar zināšanām un entuziasmu, tad varbūt tas ātrāk arī realizētos.


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Wed Mar 18, 2015 12:30 pm 
Offline

Joined: Mon Apr 16, 2012 12:47 pm
Posts: 87
Janka wrote:
Lūk šī ir vērtīga štelle.
Man galvā maļas doma uzmeistarot vājredzīgam cilvēkam draudzīgu mp3 atskaņotāju, kurā varētu salādēt kaudzi audiogrāmatu un lai to varētu lietot arī cilvēks kuram redze jau pašvaka un ar šitādām megapogām var ērti baudīt audiopriekus. Nezinu, cik ātri pats tādam projektam nobriedīšu. Ja būtu kāds zinošs entuziasts, kas gribētu iesaistīties tāda projekta uzcepšanā ar zināšanām un entuziasmu, tad varbūt tas ātrāk arī realizētos.

Cik google uz ātro palūrēju,vienkāršākais variants ir tādi audi Arduino MP3 shield, spraužas tieši uz arduino uno plates. Tas shield ebay ap 15$ grozās.
http://www.geeetech.com/wiki/index.php/Arduino_MP3_shield_board_with_TF_card
Es ieteiktu sākt ar to ka vispirms izštukot, cik pogas vajag, ko katra darīs, vai būs vajadzīgs katkāds displejs jeb bez displeja utt. Pēc tam vari pasūtīt arduino uno un to mp3 shieldu ebay, pārējās lietas var sapirkties tepat.


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Wed Mar 18, 2015 3:46 pm 
Offline

Joined: Mon Apr 09, 2012 12:24 pm
Posts: 77
Jā, šitas MP3 shield board būs ērtāks. Sākumā domāju mož pietiku ar WTV020-SD, bet tam skaņas kvalitāte ir ierobežota.
Šobrīd īsti nevaru saprast tādu lietu, vai uz šī mp3 shield dēļa + arduino varēs uzturēt tādu funkciju, kā audiofaila pauzes saglabāšana atmiņā, kamēr visa uzparikte tiks atslēgta no barošanas. Jebšu arī, lai nostopējot audiofailu konkrētā vietā un nākamreiz ieslēdzot grib atsākt klausīties no tās pašas vietas tam būs visu laiku jāuzturās pie rozetes vai bačas... Ja to pauzi var uzturēt, tad varētu būt 6 pogās:
1 - on/off
2 - pause/play
3 - next file
4 - prev file
5 - next folder
6 - prev folder
Displejs droši vien elementārākajam variantam nebūs nepieciešams. Skaņas regulēšana arī, jo stereo izeju domāts laist uz parastajām datortumbiņām, kurās arī varēs regulēt skaņu.
Būs vien jāpasūta tas shields un jāķeras klāt.


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Wed Mar 18, 2015 8:39 pm 
Offline
Site Admin
User avatar

Joined: Sat Jun 12, 2010 6:03 pm
Posts: 286
Location: Mālpils
Super! Paldies par interesanto topiku.
:pray:

_________________
Man nav laika tādām muļķībām!


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Wed Mar 18, 2015 8:54 pm 
Offline

Joined: Sun Feb 10, 2013 7:12 pm
Posts: 19
MP3 plejierim nevajag nekādu arduino. Paņem nopērc vislētāko mp3 plejieri, iemet tādā kastē kā iepriekš minētā tv pults, un pie mp3 plejiera elektronikas plates pogu vietās pielodē vadus, ko aizvelk uz lielāka izmēra pogām. Starp citu līdzīgi var izdarīt arī ar TV pulti, ja vien tai var pielodēties klāt.


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Thu Mar 19, 2015 8:23 am 
Offline

Joined: Mon Apr 09, 2012 12:24 pm
Posts: 77
ar vislētāko pleyeri problēmas tādas, ka viņš nedod izvēli pa folderiem, bet gan tikai visus failus no visiem fodleriem jāpārtin pēc kārtas. Nedaudz advancētāks pleyerīts dos folderu izvēli, bet arī uz to būs jāiet caur MENU, kas vecam vai vājredzīgam cilvēkam jau būs lieks čakars. Es gan vēl šobrīd nezinu vai un kā to varēs izdarīt ar arduino, bet ceru, ka tur to var atrisināt tādā viedā, kā pašam šķitīs ērtāk.
Pogu pārlodēšana - es laikam nejūtos pārliecināts, ka šitās podziņas es pats spētu pārlodēt :iono:

Image


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Thu Mar 19, 2015 10:05 am 
Offline

Joined: Mon Apr 16, 2012 12:47 pm
Posts: 87
http://www.arduino.cc/en/Reference/EEPROM
Atmegai (Arduino) ir EEPROM atmiņa, kas saglabājas arī pēc strāvas izlēgšanas. Viens ierobežojums, var pārrakstīt 100000 reizes :)
Domāju, ka izlēdzot tai EEPROM jāsaglabā 2 mainīgie: pilns audio faila ceļš un laiks, kurā sekundē ir apstādināts.
Pēc ieslēgšanas jānolasa abi mainīfie no EEPROM un ja tur ir faila nosaukums un ja fails eksistē tad jaatskaņo tas fails no konkrētās sekundes.
Tam sheildam drošvien ir kautkādas play_file() funkcijas, kur failu atskaņot.
Es protams tagad tikai fantazēju, jo praktiski vēl neesmu ar EEPROM ņēmies.


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Thu Mar 19, 2015 8:06 pm 
Offline

Joined: Sun Feb 10, 2013 7:12 pm
Posts: 19
Janka wrote:
ar vislētāko pleyeri problēmas tādas, ka viņš nedod izvēli pa folderiem, bet gan tikai visus failus no visiem fodleriem jāpārtin pēc kārtas. Nedaudz advancētāks pleyerīts dos folderu izvēli, bet arī uz to būs jāiet caur MENU, kas vecam vai vājredzīgam cilvēkam jau būs lieks čakars. Es gan vēl šobrīd nezinu vai un kā to varēs izdarīt ar arduino, bet ceru, ka tur to var atrisināt tādā viedā, kā pašam šķitīs ērtāk.
Pogu pārlodēšana - es laikam nejūtos pārliecināts, ka šitās podziņas es pats spētu pārlodēt :iono:

Man ir vecs Creative Zen mp3 plejieris bez displeja, kuram ir poga "next folder". Domāju, ka tā nav baigā ekstra. Par cik displeja tam verķim nav, līdz ar to nav arī menu.
Ja jau arduino vadiņus māki pielodēt, tad arī mp3 plejiera platei vadus varēsi pielikt. Galvenais nekarsēt lodāmuru vairāk par 350 grādiem, citādi, ilgi to turot pie plates, platei celiņi sāks krist nost.

Ar īpašām fīčām apveltītu mp3 plejieri manuprāt būtu jātaisa izmantojot kādu raspberry pi.

Starp citu vai pults arduino tev visu laiku ir pievienots pie baterijas? Ja jā, tad drīz vien tā beigsies. :giggle:
Iesaku papētīt kādu shēmu, kur, nospiežot pogu, arduino tiek nobarots caur kādu no pogu ieejas kājām (ja šo triku nezinam, tad palasam par iekšējiem "pull-up" rezisotriem) nevis V+ kā parasti. Kad tas piešķiļas, tad pats ieslēdz barošanu caur V+ (ar papildus trazistoru) un nosūta infrasarkano signālu. Kad viss izdarīts, tad pats sevi atkal atslēdz. Šādi baterija tiks tērēta tikai tad, kad nospiesta poga, un kalpos ilgi jo ilgi.

Shēmu zīmēšanai iesaku http://www.cadsoftusa.com/download-eagle/

Katrā ziņā prieks par tēmas autora ideju un realizāciju.


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Mon Mar 23, 2015 8:15 am 
Offline

Joined: Mon Apr 16, 2012 12:47 pm
Posts: 87
Paldies kabis par ieteikmiem!
Jā, barošana pultij ir pieslēgta visu laiku. Bez tam arduino visu laiku deg LED uz plates.
Tas man arī ienāca prātā cik tad ilgi krona nonstopā spēs darbināt mikreni :)
Kad biju uztaisījis visu, tad es arī aizdomājos ka drošvien būs vajadzīga versija nr.2 kur būs iekšā power save lietas.
Bet es izlēmu sākumā uztaisīt versiju kas strādā, un tad domāt par uzlabojumiem.

Ja pogu pielsēdz ar pull up resistoru shēmu tad jālasa pinam nevis HIGHT steists bet LOW steits, pareizi?
Cik lasīju ka mikrenē ir arī iekšēji pullup resitori, kurus var ielsēgt.
Es biju iedomājies, ka jāizmanto viena no tām 5 sleep modēm. Līdzīgi kā šajā linkā.
http://www.engblaze.com/hush-little-microprocessor-avr-and-arduino-sleep-mode-basics/

Vari mazliet detalizētāk pastātīt to ideju par tranzistora izmantošanu šajā gadījumā? Kādu tur vajag NPN vai PNP? Kur slēdz bāzi, kur kolektoru, ur emiteru?


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Sat Mar 28, 2015 5:18 pm 
Offline

Joined: Wed Oct 31, 2012 7:17 am
Posts: 1
O, jā, tēma tiešām interesanta!
Par pulti - ideja ir lieliska, vecie cilvēki tiešām maldās pultīs ar daudzajām pogām. Tomēr dažas norādes no manas puses. Pirmkārt, tās pogas (ja vien ko nejaucu) ir drausmīgi sūdi, tās ir jāmet ārā tikko tās ir uzražotas. Jāņem tādas, kurām kontaktu veidojošais disks ir uz atsperes, kas nodrošina nospiestai pogai konstantu spēku, kas savieno kontaktus. Ja tiešām nekļūdos, šādu pogu reiz sadauzīju, jo tā nestrādāja normāli un tai iekšā vnk uz kustīgās daļas metāla ripiņa, kas taisīja viltus nostrādes reizes ja pogu nospieda par vāju. Un spiest tādu arī nav patīkami, jo tā vienā brīdī vnk atduras bez kāda klikšķa. Pults konstrukcija diezgan nekārtīga, lietai, kura tiks ikdienā cilāta tomēr jābūt kārtīgai bez iespējas kam kustēties un pēc laika nolūzt. Īsti nav skaidrs kā dēļ vnk neieliki īstās pults plati tajā korpusā, plus varētu barot no divām AA bačenēm, kuras varētu mainīt neatverot korpusu, tajā pašā ormihā ir tādi korpusi. Plus, jā, energoefektivitāte, par ko pultij jau ir padomāts. Tu jau vari vnk darīt tā, ka no visām pogu kājām liec diodes uz Arduino barošanu, attiecīgi, Arduino ieslēdzas tikai pie nospiestas pogas, paskatās kura poga tad ir nospiesta un sūta kodu kamēr poga ir nospiesta.

_________________
Visu tumšu.


Top
 Profile  
 
 Post subject: Re: Elektronikas projektiņi ar paša rokām
PostPosted: Sun Mar 29, 2015 9:13 pm 
Offline

Joined: Sun Feb 10, 2013 7:12 pm
Posts: 19
Kodolšķiltavai par barošanu taisnība. Tev droši vien būs jāņem 3xAA parastās baterijas, kas dod 3x1,5=4,5V vai 4xAA lādējamās baterijas, kas dod 4x1,2=4,8V un no šī sprieguma jānobaro arduino čips bez sprieguma regulatora.
Katrai arduino kājai iekšā ir šāda shēma:
Image
Var izmantot iekšējo diodi (shēmā augšējā), lai nobarotu pašu čipu caur pogas kāju, bet tās iekšējās diodes lielu strāvu neturēs, tāpēc jāpieliek ārpusē jaudīgākas diodes pie tām kājām, pie kurām ir pogas uz +5V. Pogu liec virknē uz baterijām. Kad poga būs nospiesta strāva plūdīs uz pogas kāju un arī caur diodi uz barošanu (+5V). Citu barošanu nevajag.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group