Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Ayo Migrasi TV Digital

    Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel

  • Bermain DOT Matrix - LOVEHURT

    Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Minggu, 10 Maret 2013

Tutorial Aplikasi Memanfaatkan Accelerometer Pada Android berbasis Adobe Air



Accelerometer merupakan sensor kemiringan yang umum terdapat pada Hanheld berbasis Android. Sensor ini memiliki fungsi untuk menentukan posisi tilting dari Handheld terhadap koordinat X, Y atau kadangkala memiliki juga koordinat Z utamanya pada HandHeld kelas tinggi.

Adobe Air memiliki kemampuan untuk mendeteksi sensor accelerometer dimana class atau script yang digunakan adalah "Accelerometer", contoh inisialisasi nya seperti berikut:


var theAcc:Accelerometer = new Accelerometer();


Seperti biasa kita akan menggunakan software development adobe flash CS 5.5 dan buatlah project "AIR FOR ANDROID" dan buatlah tampilan dengan gambar geometry yang kali ini sebagai contohnya menggunakan sebuah kotak.

(klik pada gambar untuk memperjelas)



Jangan lupa untuk merubah kotak tadi menjadi movieclip sehingga dapat diberikan nama dan akan diolah selanjutnya. Lanjutkan dengan membuat 1 layer pada timeline dan pada layer ini akan ditempatkan action script.




Lanjutkan dengan menambahkan script seperti ini :


var theAcc:Accelerometer = new Accelerometer();

theAcc.setRequestedUpdateInterval( 50 );
if (Accelerometer.isSupported == true) {
theAcc.addEventListener(AccelerometerEvent.UPDATE, onAccUpdate);
}else {
// do something different for the entire app
}
function onAccUpdate( e:AccelerometerEvent ):void {
 
posisi.text =kotak.x.toString() + " , " + kotak.y.toString() ;
acel.text =e.accelerationX.toString() + " , " + e.accelerationY.toString() ;

kotak.x -= ( e.accelerationX * 50);
kotak.y += ( e.accelerationY * 50);
if ( kotak.x < 0 ) {
kotak.x = 0;
} else if (kotak.x > (stage.stageWidth - 30)  ) {
kotak.x = stage.stageWidth - 30 ;
}
if ( kotak.y < 0 ) {
kotak.y = 0;
} else if (kotak.y > (stage.stageHeight -30) ) {
kotak.y = stage.stageHeight -30 ;
}

}



Pada script diatas terlihat bahwa posisi dari movieclip bernama kotak akan dirubah-rubah sesuai dengan nilai dari kemiringan accelerometer X dan Y. Pada bawah dari aplikasi terdapat tracing yang berguna untuk melihat posisi kotak dan pembacaan dari accelerometer. Source Code (adobe flash CS5.5) dapat didownload disini.


SELAMAT MENCOBA 
Share:

Sabtu, 09 Maret 2013

Tutorial Aplikasi Touch Sensor Pada Android berbasis Adobe Air




Salah satu fasilitas yang sangat umum dijumpai pada smartphone berbasis android adalah touch sensor pada layar. Selain Touch ada juga fasilitas yang dinamakan gesture yaitu kombinasi penekanan beberapa jari untuk mendapatkan efek tertentu.  Kali ini kita akan bermain-main dengan fasilitash touch dan drag. Seperti pada pembahasan sebelumnya, adobe air besutan pengembang Adobe memiliki keunggulan pada kemudahan desain yang bisa dibilang 10x lebih mudah jika dibanding dengan SDK asli yang berbasis eclipse-java.


klik pada gambar untuk melihat lebih jelas


Sebelum memulai ada baiknya melihat pembahasan sebelumnya karena beberapa pembahasan yang serupa akan di lewati. Langkah awal yang kita buat adalah sebuah lingkaran atau bentuk geometri lain. Bentuk geometri ini nantinya akan digerak-gerakkan oleh jari-jemari. Pada contoh yang dibuat penulis, bentuk geometry berupa lingkaran dan memiliki animasi lingkaran luar yang mengembang-kempis. Jangan lupa untuk merubah bentuk geometri ini menjadi movieclip agar bisa dipanggil sebagai library class , seperti contoh pada gambar dibawah.




Cara penamaan class adalah dengan melakukan click kanan pada nama library lingkaran tadi kemudian pilih properties, atau bisa juga pada saat merubah kedalam movieclip. Beri nama class sesuai keinginan.




Pada gambar diatas adalah contoh membuat animasi lingkaran kembang-kempis dengan menggunakan tweening. Proses twieen akan secara otomatis membuat animasi sesuai perubahan antara key frame start dan key frame selanjutnya, tanpa harus merubah gambar pada semua frame.



Selanjutnya kita akan menuju ke scripting. Class yang paling penting dalam pemrograman touch sensor adalah :


Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; 



Selanjutnya experimen pertama adalah dengan menampilkan gambar lingkaran setiap kali layar ditekan. Script nya seperti dibawah ini:


Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; 

var bola:lingkaran;

stage.addEventListener(TouchEvent.TOUCH_BEGIN, mulai); 



function mulai(evt:TouchEvent):void{


bola=new lingkaran;
addChild(bola);

bola.x=evt.stageX;
bola.y=evt.stageY;

}








Jika ingin mempublish ke HandHeld Android kamu, sebaiknya baca dulu pembahasan sebelumnya disini

Hasil dari script pertama adalah munculnya gambar lingkaran setiap kali layar ditekan. Bagaimana jika kita ingin menghilangkan lingkaran saat jari diangkat dari layar ? ubah scriptnya seperti ini :



Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; 

var bola:lingkaran;

stage.addEventListener(TouchEvent.TOUCH_BEGIN, mulai); 
stage.addEventListener(TouchEvent.TOUCH_END, selesai);


function mulai(evt:TouchEvent):void{

if(bola == null){

bola=new lingkaran;
addChild(bola);

bola.x=evt.stageX;
bola.y=evt.stageY;
}


}


function selesai(evt:TouchEvent) {
 
 removeChild(bola);
 bola=null;
 
}




Well...kenapa tidak kita gerak-gerakkan saja lingkaran ini ? Hajar saja bos !!


Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; 

var bola:lingkaran;

stage.addEventListener(TouchEvent.TOUCH_BEGIN, mulai); 
stage.addEventListener(TouchEvent.TOUCH_END, selesai);
stage.addEventListener(TouchEvent.TOUCH_MOVE, gerak); 



function mulai(evt:TouchEvent):void{

if(bola == null){

bola=new lingkaran;
addChild(bola);

bola.x=evt.stageX;
bola.y=evt.stageY;
}


}

function gerak(evt:TouchEvent) {
 
bola.x=evt.stageX;
bola.y=evt.stageY;
 
}

function selesai(evt:TouchEvent) {
 
 removeChild(bola);
 bola=null;
 
}




MUDAH BUKAN ?   untuk file tutorial selengkapnya (adobe flash cs5.5) dapat didownload disini
Share:

Rabu, 06 Maret 2013

Tutorial Bergambar Membuat Aplikasi GPS pada ANDROID berbasis Adobe AIR



(klik pada gambar dibawah untuk memperjelas)




Persiapan software yg dibutuhkan adalah Adobe Flash CS5 keatas yang support adobe air dan aplikasi berbasis android dan ios(iphone). Buatlah  project baru dengan memilih tipe project "Air for Android". Pilih juga lebar layar yang sesuai dengan layar HP android kamu, kali ini kita gunakan layar berukuran 320x480 (karena HP Android saya CROSS A10). Warna latar belakang juga dapat dirubah sesuai selera.


Pada layar aplikasi, buatlah tulisan (textfield) dengan meng-click toolbar text dan buatlah textfield yang terdiri dari tulisan statis dan dynamic text. Tulisan statis untuk tulisan yang tidak berubah sedangkan tulisan dinamis akan berubah dan memiliki nama (instance). Perhatikan gambar contoh dimana kotak "text field" dynamic paling atas diberi nama "lokasi_lat", pemberian nama pada kolom properties di sebelah kanan atas layar. Perhatikan gambar berikut untuk penamaan tiap text field.




Setelah semua instance/nama dari textfield dinamic terisi, maka dilanjutkan dengan membuat layer baru pada timeline dan akan dimasukkan actionscript kedalamnya. Action script ini ditempatkan pada frame paling awal dengan cara mengklik kanan pada keyframe dan kemudian memilih "action script". Kemudian pada kotak action script masukkanlah script seperti berikut :


statuse.text= "mencari sinyal gps !!"; 

if(!Geolocation.isSupported)
{
 statuse.text = "Hp Ga Ada GPS nya !";
}
else
{
    var my_geo:Geolocation = new Geolocation();
    my_geo.addEventListener(GeolocationEvent.UPDATE, onGeoUpdate);
 
 if(my_geo.muted){
 statuse.text = "Gps Mati Jeehh !";
 }

}

function onGeoUpdate(e:GeolocationEvent):void{
 
lokasi_lat.text = e.latitude.toString() ;
lokasi_long.text = e.longitude.toString() ;
lokasi_alt.text = e.altitude.toString() ;
speede.text = e.speed.toString() ;

statuse.text= "gps update sukses!!"; 
}



Adobe air memiliki beberapa fasilitas untuk menampilkan data GPS berupa latitude, longitude,ketinggan dan kecepatan. Sayangnya Adobe Air tidak memiliki fasilitas untuk heading / arah relatif terhadap posisi utara.



Langkah selanjutnya adalah langkah mempublish aplikasi ke HP. Akan tetapi langkah pertama sebelum publish adalah melakukan setting environment dari aplikasi. Diawali dengan menentukan setting umum/general, yang pada umumnya hanya menentukan orientasi layar dan apakah layar full screen atau tidak.



Pada tab Deployment buatlah certificate dari aplikasi sesuai contoh pada gambar. Berikan password yang dapat diingat karena akan diperlukan nantinya. Jangan lupa melakukan save as dan kemudian di simpan dengan nama yg sesuai keinginan. 


Jika certificate berhasil dibuat, maka akan muncul seperti gambar diatas.



Untuk icon mungkin bisa diskip, tapi jika mau applikaisnya memiliki icon tertentu, maka diperlukan pembuatan 3 file icon yg memiliki ukuran 36x36, 48x48 dan 72x72. Format filenya adalah PNG dan adobe flash memiliki fasilitas untuk menyimpan (export image) sebagai PNG. Jadi manfaatkan saja, asal ukuran yang dihasilkan pas sesuai yang di syaratkan.


Jangan lupa untuk setting permission dari aplikasi sesuai kebutuhan dan aplikasi GPS memerlukan akses ke internet (untuk download adobe air kalo belum tersedia di hp) dan permission ke sensor GPS.



Android_usb_debugging_mode.png (288×480)

Sebelum aplikasi di publish ke HP settinglah HP android ke mode debugging, dan pada PC diinstal driver ADB nya, yang paling umum untuk berbagai HP adalah driver ADB yang bisa didownload disini . Jika Kabel USB dicolokkan maka akan muncul notifikasi "USB DEBUGGING CONNECTED"





Nah...sekarang HP telah terhubung dan driver ADB telah sukses terkoneksi, langkah selanjutnya adalah publishing aplikasi ke HP. Jangan lupa untuk memasukkan password seperti gambar diatas dan kemudian menekan tombol "publish" ....dan SELAMAT...applikasi GPS ANDROID pertama anda telah selesai.

Jika adobe air belum tersedia pada HP maka akan muncul notifikasi untuk mendownload dari google play, selanjutnya jangan lupa menghidupkan GPS dan mencari lokasi yang terbuka sehingga dapat terhubung dengan satelit GPS. 

Source code dari tutorial ini dapat didownload disini.



SELAMAT MENCOBA

Share:

Senin, 04 Maret 2013

Timer dan Counter Pada Microcontroller AVR


- COUNTER/TIMER , apaan sih ? 

Adalah fasilitas di microcontroller untuk melakukan counter/perhitungan tanpa perlu menambahkan code di looping main program ( auto), sehingga nilai dari counter ( BIASANYA register TCNT) dapat di olah/manfaatkan sewaktu2


- JENIS COUNTER APA AJA ?

Secara umum Counter /Timer terdiri dari:

- Timer Biasa (8 bit & 16 bit)
- Clear Timer on Compare (CTC)
- Overflow Timer
- Output Compare 
- PWM timer ( bahasan tersendiri)

Kita bahas yang paling sering digunakan timer biasa dan timer CTC.


- Counter 8 bit & 16 Bit

Jadi ingat, 8 bit itu maximum nilai yg didapat 0 - 255, sedangkan 16 bit = 0 - 65535 , jadi berbeda di range nilai Counternya.

Semisal kita pakai IC attiny2313 dengan clock default 1MHZ, jadi jika kita dapat ambil matematika sederhana :


resolusi = 1/input clock = 1/1Mhz = 1 micro second


Jika kita inisialisasi counter dengan Full Speed , clock = input frek oscillator (1 Mhz),  dan digunakan 16 bit / counter 1 TCCR1B|=(1<<CS10), maka jika kita ingin menghidupkan suatu led di PortD dalam selang 1 detik,  kita tunggu nilai Counter(TCNT1) = 1000000;

wah....kelebihan ! Ingat..nilai TCNT1 max= 65535, jadi kita perlu membagi counter dengan variabel yg lain, semisal kita pake variable a; Jadi ketika TCTN1 = 10000; Lalu reset TCTN1=0 ; a++; (ditambah), berulang seterusnya sampe nilai a= 100; maka LED di PORTD dihidupkan/toogle. Berikut scriptnya :

Code:
#include <avr/io.h> 

int main (void) 
{ 
   DDRD |= (1 << PD0); // Set LED di portD0 

   TCCR1B |= (1 << CS10); // Set up counter dengan full speed 

int a;  variable

a=0;  //nilai awal dari variable
  
 while (1) 
   { 

   if(TCNT1 == 10000) 
      { a++;
         TCNT1=0;
      }

   if(a == 100)
     { 
     PORTD ^= (1 << PD0); // Toggle the LED 
     a=0;
     }

   } 
}


- PRESCALER 

Jika di pembahasan sebelumnya, kita menggunakan variabel sebagai pembagi counter yg berlebih, AVR memberikan suatu solusi dengan melakukan pembagian clock menjadi faktor 1/8, 1/64, 1/256, dan 1/1024

Dengan Prescaler ada pembagian resolusi  ( timer penambahan counter) yang  akan menjadi berkurang :

1(full speed) = 1 micro second
1/8 = 8 micro second
1/64 = 64 us
1/256= 256 us
1/1024=1024us

Nah...kita sekarang bisa membagi clock sesuai keinginan, dan menyederhanakan perhitungan

Semisal kita ingin mendelay LED 1 detik, dengan clock 1Mhz  maka kita coba dengan  prescale 1/8,  untuk mencari 1 detik nilai TCNT1 = 125000, masih lewat, prescale 1/64 maka nilai TCNT1 = 15625 ...nahh nilainya ga lewat dari batas 16 bit (65535) ....ketemu dehh....jadi kita sederhanakan script sebelumnya menjadi :

Code:
#define F_CPU 1000000UL //clock dari avr
#include <avr/io.h> 




int main (void) 

{ 

   DDRD |= (1 << PD0); // Set LED di portD0 
   TCCR1B |= (1 << CS11); // Set up counter dengan prescale 64
   //Baca datasheet untuk mencari konfigurasi prescaler yg laen



 while (1) 

   { 



   if(TCNT1 == 15624) 
 // nilai max 1 detik, perhitungan mulai 0 maka nilai dikurangi 1 dari 15625

   {
      PORTD ^= (1 << PD0); // Toggle the LED 
     TCNT1=0;
    }



   } 

}


- CLEAR TIME ON COMPARE + INTERUPT

selanjutnya AVR memberikan failitas CTC, yaitu kita menentukan nilai maximum dari TCNT1 dan secara otomatis akan mengclear nilai TCNT1. Nilai max dari TCNT1 diberikan melalui register OCR1A

setiap kali TCNT1 = OCR1A akan terjadi trigger interupt CTC, sehingga dapat dimanfaatkan untuk mentriger suatu output. codenya akan menjadi seperti ini


Code:
#define F_CPU 1000000UL //clock dari avr
#include <avr/io.h> 
#include <avr/interrupt.h>

ISR(TIMER1_COMPA_vect) //vector interupt compare

{ 

     PORTD ^= (1 << PD0); // Toggle the LED 

}

int main (void) 

{ 

   DDRD |= (1 << PD0); // Set LED di portD0 
   
   TCCR1B |= (1 << CS11); // Set up counter dengan prescale 64
   //Baca datasheet untuk mencari konfigurasi prescaler yg laen
   TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode       
   TIMSK |= (1 << OCIE1A); // Enable CTC interrupt
   OCR1A = 15624; // nilai atas dari TCNT1, untuk perhitungan 1 detik

sei();   //hidupkan interupt


 while (1) 

   { 

    }

}


...mudah bukan ? atau makin pusing ?

Untuk counter dengan nilai frekuensi clock / XTAL lainnya dapat menggunakan rumus matematika sederhana untuk menetukan OCR1A 


OCR1A = [(Frekuensi AVR / Prescale) / frekuensi yg diinginkan ] - 1

atau

OCR1A = [(Frekuensi AVR / Prescale) * Periode yg di inginkan ] - 1


*) catatan : nilai prescale = 1,8,64,256,1024  bukan 1/prescale , untuk mempermudah saja


SELAMAT MENCOBA
Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (11) arduino (26) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (69) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (11) lorawan (1) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (8) radio (28) raspberry pi (9) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (7)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika