Sunday, January 23, 2011

.:Projek-Fabrikasi PCB, mudah & ekonomi:.

Terdapat pelbagai kaedah dalam fabrikasi litar tercetak(PCB-Printed Circuit Board). Dalam post kali ini saya akan terangkan satu kaedah yang lebih ekonomi, mudah tetapi mampu menghasilkan PCB yang cantik dan kemas seperti rajah dibawah. 



Wednesday, January 19, 2011

.:Projek-Mobile Robot Arm Siri 3:.

Dalam post ini saya akan tunjukkan perkembangan projek mobile robot arm. Perkembangan setakat ini litar motor driver dan litar kawalan motor menggunakan relay telah pun siap dan telah berjaya diuji. Untuk skematik litar-litar yang berkaitan, sila rujuk post saya bertajuk .:Litar Kawalan Motor menggunakan Relay:. dan .:Motor Driver L293D:.. Untuk membaca perkembangan projek sebelum ini, boleh rujuk post saya bertajuk .:Projek Mobile Robot Arm:. dan .:Projek Mobile Robot Arm-Siri 2:. Di bawah adalah gambar litar yang telah siap dibangunkan. harap kumpulan pelajar yang lain dapat menghasilkan litar yang kemas seperti contoh litar dibawah.


Litar kawalan motor menggunakan Relay


Terminal blok digunakan bertujuan memudahkan proses pengubahsuaian/penggunaan litar. Seperti litar diatas, rekabentuk asal litar VCC untuk relay dan motor diasingkan, tetapi untuk menjimatkan kos, VCC relay dan motor menggunakan sumber bateri yang sama, oleh itu, sambungan perlu dibuat (wayar berwarna biru). Namun seandainya ada rezeki/budget lebih, VCC relay dan motor boleh diasingkan dan sambungan yang dibuat boleh ditanggalkan seterusnya menjadikan pengawalan motor lebih cekap dan efisyen dari segi kuasa dan operasinya.


Motor driver L293D



.:Pengubahsuaian Push Button:.

Dalam post kali ini saya akan terangkan sedikit sebanyak tentang push button yang akan disambungkan pada mikropengawal. Push button kebiasaannya punyai 2 pin sahaja, pin positif dan pin negatif, sedangkan push button yang akan disambungkan pada mikropengawal mesti mempunyai sekurang-kurangnya 3 pin, pin positif, negatif dan signal. (jika nak gunakan 2 pin sahaja pun boleh, tetapi kurang sesuai). Rajah dibawah adalah modifikasi yang perlu dibuat pada push button.


Anda boleh memilih jenis push button yang akan dihasilkan sama ada jenis Active High atau active Low. Apakah yang dimaksudkan dengan Active High dan Active Low? Active High bermaksud dalam keadaan biasa port PIC adalah low. Apabila suis di tekan, port PIC akan menjadi high, bagi Active Low pula, dalam keadaan biasa port PIC adalah High, apabila suis ditekan, port PIC akan low. 






Monday, January 10, 2011

.:Kursus pembangunan Course Ware:.

Kepada kawan-kawan semua, tidak lupa juga para pelajar saya sekalian, disini saya kongsikan nota tidak rasmi berkenaan Kursus Pembangunan Course ware menggunakan perisian Macromedia Director MX  yang telah dilaksanakan pada 10 dan 11 Januari 2010 di Makmal Hypermedia 3 JTMK. Nota ini struktur bahasanya juga tidak rasmi, namun diharap sedikit sebanyak dapat membantu kawan-kawan dan pelajar-pelajar yang berminat dalam pembangunan course ware. Sekiranya terdapat sebarang pertanyaan dipersilakan email saya : hsani2u@gmail.com

Kursus Course Ware



Tuesday, January 4, 2011

.:Projek-Mobile Robot Arm Siri 2:.

Dalam post kali ini saya akan tunjukkan sedikit sebanyak kemajuan projek Mobile Robot Arm, yang diberi nama Robo-Roi. Projek ini adalah projek akhir pelajar-pelajar dibawah seliaan saya. Gambar rajah di bawah adalah casis yang telah diperbaharui untuk memenuhi keperluan sistem.


Disini saya tunjukkan juga video gripper yang telah siap. Gripper ini dibangunkan menggunakan papan lapis, untuk lebih ekonomi, atau sebenarnya kekurangan budget. 



Lengan masih dalam pembuatan, dan untuk makluman pembaca semua, robot ini dikawal menggunakan mikropengawal PIC16F877A. Syabas dan tahniah saya ucapkan kepada pelajar-pelajar projek dibawah seliaan saya; Azhar, Qayyum, Nazri, Afiq, Rebita dan Sunti. Teruskan usaha, kamu semua sedang menghampiri kejayaan. Saya juga akan hadiahkan .:Pojek PIC-LCD HD44780 siri 2:. sekiranya projek kamu semua berjaya. Baru projek yang gempak akan bertambah gempak. Good Luck!

.:Projek PIC-LCD HD44780 siri 2:.

Ada beberapa email dan pertanyaan lisan saya terima bertanyakan bagaimana caranya untuk menggerakkan character dari kiri ke kanan atau kanan ke kiri. Saya sendiri pun tidak tahu lagi masa tu, so saya terbaca dalam data sheet. satu kaedah yang boleh dilakukan adalah dengan menggunakan shift function, pada pin LCD DB2. Saya telah cuba buat, namun tidak berhasil, mungkin cara atau pun kaedah yang saya gunakan tidak betul, jadi saya telah menggunakkan cara yang lain, iaitu dengan cara memanipulasi address character yang dimasukkan. LCd display JHD162A ini boleh memaparkan maksimum 16 character dalam satu-satu masa. Jadi, apa yang saya buat adalah dengan memanipulasi address, sebagai contoh perkataan SAYA; address pada 0x40 terisi huruf S, address 0x41 terisi huruf A, address 0x42 akan terisi huruf Y dan address 0x43 akan terisi huruf A, kaedahnya huruf A akan overwrite ataupun berpindah ke address 0x40, huruf Y akan overwrite huruf A, dan begitulah seterusnya. Secara mudah untuk menerangkannya ibarat ada 5 kotak, kotak kelima ada sebiji guli, guli itu di pindahkan ke kotak ke 4, kemudian ke 3, ke kotak 2 dan seterusnya. (Harap-harap faham)susah nak terangkan melalui penulisan ni). Hasilnya anda boleh lihat video dibawah :


Modifikasi pada programming perlu dibuat untuk menghasilkan character yang bergerak. Programming projek sebelum ini boleh lihat post saya bertajuk .:Projek PIC-LCD HD44780:.

Modifikasi yang perlu dibuat adalah dengan menambahkan satu lagi funsi/function,  function definition adalah seperti berikut :


  void lcd_puts(const char * s)
  {
  LCD_RS = 1;// write characters
  int i=0;
  while(*s && i <16)
  {
  lcd_write(*s++);
  i++;
  }
  }

Modifikasi pada function main juga perlu di ubah seperti dibawah :



  void main(void)
  {
  const char s[] =" http://robot-geek.blogspot.com;PENYELIA PROJEK : EN. HISYAMSANI; ";
  const char t[] ="PELAJAR:AZHAR;QAYYUM,NAZRI,AFIQ,REBITA & SUNTI";
  //lcd_init(); //initialise the LCD
  pic_init(); //initialize PIC
  lcd_init(); //initialize LCD
  char *b;
  char *c;
  int son=1;
  b=&s;
  c=&t;
  for(;;)
  {
  lcd_goto(0x40);// select first line
  lcd_puts(b);
  lcd_puts(c);
  lcd_goto(0x00);// Select second line
  lcd_puts("<--:ROBO-ROI:-->");
  __delay_ms(39);
  __delay_ms(39);
  __delay_ms(39);
  __delay_ms(39);
  __delay_ms(39);
  __delay_ms(39);
  __delay_ms(39);
  __delay_ms(39);
  __delay_ms(39);
  if(*b)
  {
*b++; //scrolling to next char
  }
  else {
if(son)
   {
b=&s;
c=&t;
son=0;
   }
else
   {
b=&t;
c=&s;
son=1;
   }


}
  lcd_clear();
  }
  }

Disini ingin saya ingatkan, delay adalah untuk mempercepat atau melambatkan pergerakan character. Semakin banyak delay ditambah semakin perlahan pergerakannya. Selamat mencuba. Display kurang jelas, sebab bateri dah nak habis. Heh....heh..