Control TV screen




මම මේ ලිපියෙන් කියාදෙන්න බලාපොරොත්තු වෙන්නේ, ආර්ඩියුනෝ බෝඩ් එකක් භාවිතා කරලා TV screen එකක් පාලනය කරන ආකාරයයි.  Arduino වලට දැනට පුළුවන් වෙන්නේ  Black & White රූප නිර්මාණය කරන්න විතරයි.  ඒත් ඒක වුණත් ගොඩක් ප්‍රයෝජනවත් දේවල් වලට යොදාගන්න පුළුවන් වෙයි.

මේකට පොඩිම පොඩි components ටිකක් ඕන වෙනවා. මෙන්න ලැයිස්තුව :

  • Arduino Board (Arduino Uno)
  • Television
  • Resistors 
  1. 470 Ohm (Yellow, Purple, Brown)
  2. 1 kOhm (Brown, Black, Red)
  • Circuit Wire
  • RCA Plug or Cable 








මෙන්න මේ ටික හොයාගෙන Breadboard එකක හරි Vero Board එකක හරි Circuit එක හදාගන්න.

Arduino Uno :

  • Sync - pin 9
  • Video - pin 8






මේ තියෙන්නේ මම හදාගත්ත  එක.



දැන් සියල්ල ලෑස්තියි. අපි බලමු ඊළගට මොනාද කරන්න තියෙන්නේ කියලා.

පහත ලින්ක් එකෙන් Arduino TVout කියන Library එක download කරගන්න. (මේ තියෙන්නේ Original Library) එක. ඒත් ඒකේ ගොඩක් අඩුපාඩු තිබුණ නිසා මම පොඩ්ඩක් ඒක වෙනස් කරලා හදපු  එක තමයි දෙන්නේ. දැනට Arduino Uno වල විතරයි Check කළේ. ගැටළුවක් ඇතිවුණොත් Comment එකක් දාන්න.)

Download Arduino TVout library (53.1 KB)

ZIP ෆයිල් එක download කරගෙන, My Documents වල තියෙන Arduino\libraries\  කියන ෆෝල්ඩර් එකට copy කරගන්න. නැතිනම් පහත පියවර වලට අනුව library එක add කරගන්න.







මම පාවිච්චි කළේ Arduino 1.6.6 IDE එක. ඊට කලින් සංස්කරණවල මේක හරියට වැඩකළේ නැත්නම් මේ ලින්ක් එකෙන් Arduino 1.6.6 (80.3 MB) ඩවුන්ලෝඩ් කරගන්න.

ඊළගට මේ code එක compile කරලා බෝඩ් එකට upload කරන්න.




#include <TVout.h>

TVout TV;
unsigned char x, y;

void setup()  {

  int r = TV.begin(_PAL);

  TV.clear_screen();
  x = TV.horz_res() - 10;
  y = TV.vert_res() - 10;

  //Outer box
  TV.draw_box(5, 5, x, y, WHITE, WHITE, 0, 1) ;

  //Inner box
  TV.draw_box(8, 8, x - 6, y - 6, WHITE, BLACK, 5, 1) ;

  //Line
  TV.draw_line(12, 20, x - 2, 20, WHITE) ;

  //Text
  TV.select_font(FONT_LARGE);
  TV.print_str(18, 10, "Arduino - TV");

  TV.select_font(FONT_DEFAULT);
}

String text = "  arduino-sinhalen.blogspot.com  ";

void loop() {

  for (int i = 0; i < 16; i++) {

    TV.draw_box(12, 50, x - 12, 10, BLACK, BLACK, 0, 1) ;
    for (int j = 0; j < 18; j++) {
      char c = text.charAt(j + i);
      TV.print_char(12 + 6 * j, 50, c);
    }
    TV.delay_frame(20);
  }
  TV.delay_frame(100);

  for (int i = 15; i >= 0; i--) {
    TV.draw_box(12, 50, x - 12, 10, BLACK, BLACK, 0, 1) ;

    for (int j = 0; j < 18; j++) {
      char c = text.charAt(j + i);
      TV.print_char(12 + 6 * j, 50, c);
    }
    TV.delay_frame(20);
  }
  TV.delay_frame(100);

}


Download program


දැන් ඔයාලට බලාගන්න පුළුවන් Arduino බෝඩ් එකෙන් ලස්සනට රූපවාහිනි තිරය මත රූප මවන හැටි.


Library එකේ  functions ගැන මෙන්න කෙටි හැදින්වීමක්.


horz_res()
(default - 128)

vert_res()
(default - 96)

delay_frame(time)
clear_screen()

set_pixel(x,y,color)    
(0=black, 1=white)

draw_line(x1,y1,x2,y2,color) 
(c-color 1=white, 0=black, 2=invert)

TV.draw_box(x0, y0, x1, y1, c, d, e, f)
(c-color 1=white, 0=black, 2=invert)
(d-fill 0=black, 1=white, 2=invert,3=no fill)
(e-radius for rounded box)
(f-safe draw or not, 1 = safe)

draw_circle(x0, y0, radius, c, d, h)
(c-color 1=white, 0=black, 2=invert)
(d-fill 0=black, 1=white, 2=invert,3=no fill)
(h-safe draw or not, 1 = safe)

print_char(x,y,c)
(c-character)
(x must be multiple of 8)

print_str(x,y,string)

fill(c)
(c-color 1=white, 0=black, 2=invert)

select_font(s);
(s- _5X7,_8X8,_3X5)

tone(freq,duration)
(duration in ms)




ඔයාලට දැන් පුළුවන් මේවා භාවිතා කරලා අළුත් දෙයක් කරන්න. මම පොඩි අදහසක් දෙන්නම්, උත්සාහ කරලා බලන්න Arduino Game Console එකක් හදන්න.

ඔයාලගේ අදහස් හා යෝජනා තියෙනවා නම් comment එකක් දාන්න.







2 comments :

  1. Library Link: https://drive.google.com/file/d/0Byd65mXGUaPLT3RzTEE0bkFOOVE/view?usp=drivesdk

    ReplyDelete