Delphi dan Sistem Embedding: Kendali Pompa dengan Animasi ShockwaveFlash

Salah satu program untuk membuat animasi adalah ShockwaveFlash. Oleh karena shockwaveflash adalah sebuah active control, maka Delphi pun bisa menggunakannya. Untuk instalasi shockwaveflash di Delphi sama dengan cara instalasi Microsoft agent.

Pada posting kali ini, kita akan membuat sebuah system pengendali pompa air sederhana. Ada 3 pompa yang akan mengisi tangki. Pompa dikendalikan oleh ATMEGA8 yang terkoneksi dengan PC melalui port serial. Catatan bahwa, saya membuat program ini hanya dengan simulasi Proteus. Program Delphi dan Proteus saling berkoneksi menggunakan Virtual Serial port dari Eltima.

Pengaturan level ditentukan sebagai berikut

Level <70, semua pompa akan menyala

Jika 70>Level<160, 2 pompa  nyala.

Jika 161>Level<255, hanya 1 pompa yang nyala

Jika level=255, semua pompa mati.

Jika setelah mencapai 255, level berkurang,  maka pompa hanya akan menyala kembali jika level sudah dibawah 70.

Sensor level disimulasikan dengan potentiometer yang terhubung ke ADC ch 0, yang dibaca dalam mode 8 bit, itulah mengapa level maks 255. Data level dikirim ke komputer melalui perintah ‘B’.

Program Delphi menggunakan shockwave object untuk mensimulasikan proses pengisian pompa. Ada 2 shockwave object yang digunakan, 1 untuk animasi ketiga pompa dan satunya lagi untuk animasi tangki dan aliran air.

Untuk simulasi pompa, program tinggal memanggil file animasi mana untuk pompa nyala semua, hanya 2 yang nyala atau pompa mati. Sedangkan untuk level tangki, program akan menset frame ke berapa dari animasi yang harus dimainkan sesuai dengan data level yang diterima dari mikrokontroler. Karena level 0-255, maka animasi tangki terdiri atas 255 frame. Misalkan, jika level 100, maka animasi yang dimainkan harus frame 100. Simple kan?

Sorry saya kurang begitu tahu tentang shockwavenya, karena dulu yang membuat animasi adalah teman saya…

Berikut fungsi-fungsi dari shockwave object:

Menentukan file animasi yang akan dimainkan:

ShockwaveFlash1.Movie:=ExtractFilePath(Application.exename)+’lc.swf’;

Memainkan animasi:

ShockwaveFlash1.Play;

Set ke frame tertentu:

ShockwaveFlash1.GotoFrame(Level_Data+1);

Download source code:

Program AVR (menggunakan AVR GCC)

Program Delphi

Dan tonton videonya:

Talking Box: Text to speech dengan Delphi

Program ini menggunakan Microsoft Agent dan Text-to-speech (TTS). Ini keterangan tentang Microsoft Agent:

Microsoft® Agent is a set of programmable software services that supports the presentation of interactive animated characters within the Microsoft Windows® interface. Developers can use characters as interactive assistants to introduce, guide, entertain, or otherwise enhance their Web pages or applications in addition to the conventional use of windows, menus, and controls.

Microsoft Agent enables software developers and Web authors to incorporate a new form of user interaction, known as conversational interfaces, that leverages natural aspects of human social communication. In addition to mouse and keyboard input, Microsoft Agent includes optional support for speech recognition so applications can respond to voice commands. Characters can respond using synthesized speech, recorded audio, or text in a cartoon word balloon.

Microsoft juga menyediakan sebuah ActiveX control sehingga Mirosoft Agent pun bisa dikendalikan di Delphi. Sebelum bisa dipakai, ActiveX controlnya harus diinstall dulu di Delphi.

Instalasi ActiveX Control di Delphi 2007

Buat package baru File->New->Package, simpan package missal sebagai microsoftagent. File->Save Project As

Import Component, Component->Import Component…Pilih, Import ActiveX Control, Klik Next>>.

Pilih Microsoft Agent Control 2.0, Klik Next

Check Generate Generate Component Wrapper, terus Next>>

Check Add unit to microsoftagent project, click finish

Sekarang tinggal install package microsoftagent. Di Project Manager klik kanan microsoftagent project, terus install. Jika tidak ada error komponen agent akan terinstall di component pallete Active X.

Sekarang Microsoft Agent bisa digunakan di Delphi. Langkah-langkah ini juga bisa digunakan untuk menginstall ActiveX control yang lain.

Program Talking Box yang saya buat bisa didownload di sini.

Source Code

Langkah-langkah penggunaan Microsoft Agent:

Load Karakter agent

File karakter berektensi *.acs. Kalau di XP ada di C:\WINDOWS\msagent\chars.

Agent1.Characters.Load(ComboBox1.Text,ComboBox1.Text+’.acs’);

Agent1.Characters.Character(ComboBox1.Text).Show(False);

CharID:=ComboBox1.Text;

LoadState:=true;

Kalau sudah di-load, agent bisa langsung disuruh berbicara:

if not LoadState then exit;

for I := 0 to Memo1.Lines.Count  – 1 do

begin

texttospeak:=Memo1.Lines[i];

if texttospeak<>”  then

Agent1.Characters.Character(CharID).Speak(texttospeak,”);

end;

Untuk bisa bersuara, text to speech engine harus terinstall di PC. Kalau tidak, agent hanya akan mengeluarkan balloon yang berisi text yang harus diucapkan. TTS engine dan karakter agent bisa didownload di sini

Microsoft Agent

Fungsi lain adalah animasi:

Agent1.Characters.Character(CharID).Play(ComboBox2.Text);

Atau berpindah posisi

Agent1.Characters.Character(CharID).MoveTo(TrackBar2.Position,TrackBar1.Position,100);

Program ini biasa saya pakai jika sedang membaca referensi atau artikel.Kalau malas kan tinggal dengerin si agent berbicara. Atau bisa juga digunakan untuk belajar untuk mengucapkan kata-kata dalam bahasa Inggris (karena TTS engine yang digunakan adalah bahasa Inggris).

Semoga bermanfaat.

Mikrokontroler Berbicara…

Dengan hanya menggunakan 2 pin, mikrokontroler bisa diprogram untuk mengeluarkan suara?

Tidak percaya…download saja source code dan simulasi proteusnya…

Source Code

Aplikasi Mikrokontroler dan GPRS

Mikro terhubung dengan modem GPRS yang sudah support TCP/IP Stack..Mikro akan berfungsi sebagai TCP client..

Di PC buat aplikasi TCP server…PC harus terhubung dengan internet

Setelah berhasil koneksi, mikro dan PC bisa berkomunikasi melalui TCP/IP protokol..

Jadi modul mikro bisa dikendalikan dari mana saja melalui GPRS…

Saya sudah nyoba, pake modem Wavecom yang Q24 Plus…mikro yang dipakai ATMEGA162.

Dan ini AT Command yang digunakan:

AT+WIPCFG=1 //start IP stack

OK

AT+WIPBR=1,6 //open GPRS bearer

OK

AT+WIPBR=2,6,11,”APN name” //set APN name of GPRS bearer

OK

AT+WIPBR=2,6,0,”user name” //set user name

OK

AT+WIPBR=2,6,1,”passwd” //set password

OK

AT+WIPBR=4,6,0 //start GPRS bearer

OK

AT+WIPCREATE=2,1,”ip addr”,80 //create a TCP client towards peer IP device @ “ip addr”, port 80.

OK  //all parameters and iP stack behavior are OK.

+WIPREADY: 2,1   //unsolicited: the TCP client socket is connected //to the peer

AT+WIPDATA=2,1,1 //exchange data on socket idx 1: …

CONNECT

Setelah modem mengirim CONNECT, maka semua data/karakter yang dikirimkan ke modem akan diperlakukan sebagai data yang harus dikirm ke TCP port. Jika ingin kembali ke mode AT command atau memutuskan koneksi TCP/IP, kirim “+++” kemudian modem akan menjawab OK, lalu kirim AT+WIPCLOSE=2,1, untuk mengakhiri atau menutup TCP Client…

Dibandingkan dengan SMS, komunikasi lewat GPRS bisa lebih murah, karena biaya dihitung berdasarkan byte data yang dikirim. Sedangkan SMS dihitung per SMS yang dikirim, walaupun hanya mengirim 1 huruf biayanya akan sama dengan mengirim 162 huruf.

Selain itu dengan GPRS kecepatan data juga lebih lumayan, dengan aplikasi TCP/IP ini server dan client bisa melakukan chating. Dan server juga bisa menangani beberapa client secara sekaligus.

Aplikasi ini cocok untuk komunikasi M2M (Machine to Machine), karena modem ini juga bisa difungsikan sebagai TCP server, jadi kedua modem bisa berkomunikasi secara TCP/IP juga…

Kalau ditambah dengan GPS modul bisa lebih ok lagi, harus nyari dulu modul gpsnya…