Tampilkan postingan dengan label Microcontroller. Tampilkan semua postingan
Tampilkan postingan dengan label Microcontroller. Tampilkan semua postingan

Membuat kabel network

Ini topik lama, tapi kadang-kadang saya masih perlu membuat kabel network.

Yang saya pakai adalah : T-568B
dan kalau di test di network cable tester... tetap berurutan 1 s/d 8 normal



mengInstall PjSIP

mengInstall PjSIP
di Raspberry Pi


sudo apt-get install libv4l-dev libx264-dev libssl-dev libasound2-dev asterisk


SDL

cd
mkdir tmp
cd $HOME/tmp
wget http://www.libsdl.org/tmp/SDL-2.0.tar.gz
tar xvfz SDL-2.0.tar.gz
cd SDL-2.0.0-7125/
./configure
make
sudo make install

FFMPEG

cd $HOME/tmp
wget http://ffmpeg.org/releases/ffmpeg-0.10.7.tar.bz2
tar xvfj ffmpeg-0.10.7.tar.bz2
cd ffmpeg-0.10.7
./configure --enable-shared --disable-static --enable-memalign-hack --enable-gpl --enable-libx264
make
sudo make install

Build PjSIP

cd $HOME/tmp
wget http://www.pjsip.org/release/2.1/pjproject-2.1.tar.bz2
tar xvfj pjproject-2.1.tar.bz2
cd pjproject-2.1.0/
./configure --disable-video
make dep
make

Updated Robot WishList

  1. I would like to have a mobile workstation for my laptop, i usually change place while working.. living room, backyard.. etc (still in my home)
  2. Making the robot available to Indonesian language is better.
  3. I don't watch TV so much  but I would like to have recent news from selected RSS internet feed
  4. Communicating with people.. i mean telephony system in my robot.. i can perform calls from my laptop and vice versa.
  5. I want to check email.. and someone read it for me.
  6. Browsing the internet by voice or virtual touch (without mouse?)
  7. Entertaing robot..
  8. I have music clips or movie clips that i like to see many times. (building database and a navigation menu for search)
  9. I shared my laptop with my wife, and some other people.. so i cannot close the laptop for only one software. maybe other people can use the system too..
  10. Video capture
  11. I love music and love playing drums.. i want to have a recording station while jamming with my friends.
  12. Chatting with the robot would be nice
  13. Should be relatively cheap.. =)
  14. I like to have a menu system for my robot
  15. The robot should have a brain for navigating my house.
  16. The robot can recognize face and objects..
  17. Home controlled by robot.. this is good
  18. Robot Emotions? Leaf have that
  19. The robot can take or bring me something... (i think it's very hard)
  20. This one is really deep..   i want to ride my robot. transportation in my neigborhood maybe?? (last priority :) )

21. Sync with Social Media / Facebook / Twitter / email
22. Design is Modular. Can add Head / Arm / other Interface.
23. Remainder - Sync with Contacts and Google Calendar.
24. Update with weather and Traffic Jam CCTV.

25. Can use APM - Mission planner and Turnigy Remote
26. Interface to ROS


PCB Design Error

Ini kesalahan saya dalam mendesain PCB.

1. Posisi Terminal tidak lega.
posisi terminal yang miring tidak membuat pemasangan kabel menjadi mudah, melainkan cukup menyulitkan.
Buat terminal di pinggir dan lubang menghadap luar

2. Jalur bisa dibuat lebih besar.
Sepertinya saya memakai 0.5 sebagai lebar jalur. Bisa gunakan 0.7 / 0.8


Flash Arduino UNO / MEGA menjadi device MIDI

Salah satu implementasi arduino yang menarik adalah membuat arduino menjadi midi device.
Langkah berikut untuk flashing arduino

Saya menggunakan arduino mega 2560 dari DFROBOT bisa dibeli disini

1. download dfu-programmer / unzip di harddisk anda download disini
2. download hex yang sudah dicompile   download disini

3. Connect Arduino ke computer via USB
4. reset Arduino dengan menghubungkan 2 solderan ini (pin)

5. Nanti Arduino mereset dan setelah connect kembali dia menjadi ARDUINO DFU
6. PENTING: Install driver windows dfu dengan mengarahkan ke directori dfu yang telah didownload
7. Jalankan langkah ini:

dfu-programmer at90usb82 erase
dfu-programmer at90usb82 flash Arduino-usbmidi-0.2-mega2560.hex
dfu-programmer at90usb82 reset

8. Lepas USB dan Connect kembali.

Anda tidak bisa mengupload sketch apabila sudah memasang ini. Upload implementasi anda sebelumnya.
atau mereflash kembali ke MEGA-dfu_and_usbserial_combined.hex yang ada di directory
arduino-1.0.5\hardware\arduino\firmwares\atmegaxxu2

Semoga Berhasil.


Flashing Firmware XCopter dengan Arduino AVR ISP Shield

Akhirnya bisa juga saya flash itu board. (www.kkmulticopter.com).
Untuk membangun tricopter saya mendapatkan board full dengan gyro dengan harga yang cukup miring, yaitu KK Multicopter Blackboard 5.5 dengan kemampuan sampai dengan enam motor (sexycopter)

Arduino IDE harus ada untuk memasang firmware untuk arduino as isp. Dan juga harus menginstall WinAVR (Biar agak gampang)... sebenarnya bisa juga dengan memakai setting PATH universal yang menunjuk ke avrdude di sub dir arduino.

Install win-avr.
ikuti tutorial ini.

Install MOSQUITTO

Nyamuk-nyamuk... beneran ini sebenernya server. bukan nyamuk beneran, karena sangat ringan maka disebut mosquitto

Install karena sangat berguna.


sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update 
sudo apt-get install mosquitto python-mosquitto
sudo apt-get install mosquitto-clients


ngetest


mosquitto_pub -d -t hello/world -m "Hello, MQTT. This is my first message."

mosquitto_sub -d -t hello/world
Kalau dari python seperti ini:
import mosquitto
mqttc = mosquitto.Mosquitto("python_pub")
mqttc.will_set("/event/dropped", "Sorry, I seem to have died.")
mqttc.connect("127.0.0.1", 1883, 60, True)

mqttc.publish("hello/world", "Hello, World!") 

Network di Beagleboard

Setting /etc/network/interfaces



auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
# Example to keep MAC address between reboots
#hwaddress ether DE:AD:BE:EF:CA:FE

# WiFi Example
auto wlan0
iface wlan0 inet dhcp
 wireless-essid AZANA16-2

#    wpa-ssid "essid"
#    wpa-psk  "password"

ROS - MQTT Robotic

Saya jatuh cinta sama ROS ketika saya sudah menyelesaikan seluruh tutorialnya. Teknik mengimplementasikan pemrograman seperti ROS (menggunakan messaging system) sangat potensial dan sangat memudahkan penggunaan kode lama.

Namun ada beberapa hal kendala, dalam perjalanan saya memakai ROS dengan Beagleboard. Sebagian besar resource dari beagle termakan oleh system. ini padahal belum penggunaan yang besar. hanya puluhan sensor. Tanpa banyaknya data feed saja sudah memakan sekitar 50% resource.
Jadi saya harus mengambil langkah lain.

Selain itu, saya sangat menyukai python sebagai bahasa pemrograman. Jadi saya memutuskan untuk mencari message broker yang ringan supaya saya bisa implementasikan teknik program seperti ROS. dan ketemulah MQTT dari IBM.

Menginstall mosquitto (server mqtt open source) sangat mudah. Jadi saya mencoba untuk buat program di manajer system dengan python dan menggunakan mqtt sebagai servernya.

Jadinya seperti ini. di bagian badan robot inilah nantinya MQTT akan mengelola seluruh informasinya.

setelah saya buat kembali programnya dengan konsep yang sama, ternyata hasil pemakaian resource di linux hanya sekitar 12% s/d 16% . jadi saya cukup puas karena masih bisa menyisakan untuk proses opencv dan speech recognition. 

Kesimpulannya:
ROS dapat mengambil info yang diperlukannya dengan konek ke MQTT.

Wassalam.



Pelajaran dari membuat board

Saya cukup senang karena board sudah saya terima, namun setelah pengecekan lebih lanjut, saya ternyata membuat beberapa kesalahan. Dapat dikoreksi, namun tidak menyenangkan.

1. Saya lupa memasang Symbol +5V terkonek ke mikrokontroller :)
    fatal, karena jadi semua tidak nyambung. namun dengan beberapa kabel jumper jadi beres.

2. Ukuran Screw Terminal - tidak available di indonesia. Ternyata symbol screw terminal dari sparkfun library pitchnya 3.5 mm, yang ada di indo, kebanyakan pitch  5 mm. Jadi sekarang di pending dulu.

3. Header CMPS - Terbalik, bagaimana saya mendesainnya ternyata tidak berurutan seperti semestinya. Jadi posisi chipnya harus dibalik.

4. Pin Header putih saya habis stock, jadi 1 kabel sensor pending.

5. Ukuran jarak Terminal Phone 8 - Tidak sesuai dengan library sparkfun.
  ini saya sudah sadari karena saya pesan terminalnya setelah pesan board.

6. Kabel amphenol kurang panjang.

7. Jangan taruh buzzer di pin 13 - Jadi berisik pas upload sketch. :)


Sejauh dicheck ini, hanya itu kesalahannya.

Oh ya... Judul dan Stensil nya hurufnya Kurang GEDE skalian.



NTP update - firstmedia

Saya menggunakan firstmedia sebagai layanan provider internet di rumah. Namun salah satu kendala menggunakan provider ini ialah: port bawah < 1024 di blok untuk pengamanan.
Jadi tcp untuk menggunakan ntp akan otomatis gagal.

Namun beberapa mesin linux saya selalu reboot dan tanggalnya menjadi salah. Harus menggunakan port yang tidak umum. Baru saya tahu bahwa ada fasilitas standard dari ntp yaitu: -u

jadi install ntp
sudo apt-get install ntpdate

sudo ntpdate -u id.pool.ntp.org

selamat mencoba.

Tank Tread – Jalan lebih lancar

Mau mobil remote control berjalan lebih lancar di permukaan yang tidak rata? berikan rantai tank.

Ini ada url yang suka saya pelajari.

http://www.rctankcombat.com/articles/track-systems/

Docking robot

Beberapa hari yang lalu saya teringat soal web yang membahas docking, ini ternyata ketemu lagi.

lumayan buat memperhatikan implementasi.

http://www.schursastrophotography.com/robotics/dockinglogic.html

Arduino interface ke CMPS03 Davantech

Terima kasih, arduino telah memfasilitasi I2c, pull-up di pin SCA/SCL 4.7
kohm sehingga tidak perlu lagi resistor tersebut.
Pin yang di gunakan arduino untuk I2c ialah pin4 dan pin 5
pin 4 – SDA
pin 5 – SCL
tinggal masukan power dan ground maka cmps03 langsung berfungsi.
Kode ini bisa jalan dengan mulus.
 
#include <Wire.h>

/*
CMPS03 compass reader
language: Wiring/Arduino

Reads data from a Devantech CMP03 compass sensor.

Sensor connections:
SDA - Analog pin 4
SCL - Analog pin 5

created 5 Mar. 2007
by Tom Igoe

*/

// include Wire library to read and write I2C commands:

// the commands needed for the SRF sensors:
#define sensorAddress 0x60
// this is the memory register in the sensor that contains the result:
#define resultRegister 0x02

void setup()
{
// start the I2C bus
Wire.begin();
// open the serial port:
Serial.begin(9600);
}

void loop()
{

// send the command to read the result in inches:
setRegister(sensorAddress, resultRegister);
// read the result:
int bearing = readData(sensorAddress, 2);
// print it:
Serial.print("bearing: ");
Serial.print(bearing/10);
Serial.println(" degrees");
// wait before next reading:
delay(70);
}

/*
setRegister() tells the SRF sensor to change the address pointer position
*/
void setRegister(int address, int thisRegister) {
// start I2C transmission:
Wire.beginTransmission(address);
// send address to read from:
Wire.send(thisRegister);
// end I2C transmission:
Wire.endTransmission();
}
/*
readData() returns a result from the SRF sensor
*/

int readData(int address, int numBytes) {
int result = 0; // the result is two bytes long

// send I2C request for data:
Wire.requestFrom(address, numBytes);
// wait for two bytes to return:
while (Wire.available() < 2 ) {
// wait for result
}
// read the two bytes, and combine them into one int:
result = Wire.receive() * 256;
result = result + Wire.receive();
// return the result:
return result;
}

Remote Control PC - menggunakan Infrared

Setelah mengulik di laptop, hacking infrared IRDA port yang di rubah menjadi Serial pada tulisan saya di sini. Saya merasakan ada keterbatasan pada hack ini. Remote Control harus benar-benar di arahkan ke arah laptop. Dan faktor ini sangat mempengaruhi kenyamanan.

Kalau kita lagi santai biasanya susah mengarahkan remote kearah laptop karena posisi kita sudah tertentu. Faktor arah dari remote seharusnya mempunyai toleransi terhadap posisi kita.

Signal harus datang dari arah depan laptop, kalau agak menyamping pembacaan dari signal agak kurang tepat.

Nah di tulisan ini saya coba uraikan tentang pembuatan remote receiver. Saya coba browsing di toko-toko, hardware infrared untuk PC menggunakan USB, harganya cukup mahal bisa sampai 300an ribu. (Beserta remotenya). Akhirnya saya memutuskan untuk membeli SPC INFRARED Transceiver, modul elektronik yang dapat menerima dan mengirim signal dari Innovative Electronics. Harganya tidak terlampau murah, 85 ribu rupiah. Tadinya masih mau membuat rangkaian sendiri. sebenarnya tidak susah.. kalau mau merakit sendiri mungkin harga receivernya saja bisa di buat sekitar 20 ribuan.

Yah karena mungkin bisa di pakai untuk aplikasi robotika saya juga. Jadi saya beli aja modul SPC itu.

SPC Infrared ini di hubungkan melalui serial port pada pc kita menggunakan kabel yang sudah di sediakan. Catu dayanya saya ambil dari sisa usb port, menggunakan bekas kabel mouse yang rusak.

Set jumper untuk menggunakan antarmuka RS323.

Karena saya menggunakan remote bekas TV saya dulu (bermerek Philips). Set jumper di SPC ke Philips data.

Modul ini efisien apa bila anda menggunakan remote control yang compatibel dengan merek PHILIPS, PANASONIC atau SONY.

Apabila anda menggunakan remote lain, sebenarnya bisa juga tapi anda harus lebih pandai mengolah raw data dari remote tersebut.

Apabila anda menggunakan remote yang tadi saya sebut. Semuanya jauh lebih mudah karena modul SPC nya sudah mengolah data remotenya. Jadi port serial sudah menerima data yang sudah di 'parse'.

 

Set Comport #1 baud rate 9600 dan sisanya ikutin di sini.

04-08-2009 18-55-45

Download Serial Watcher untuk melihat apakah ada signal yang tertangkap oleh modul SPC

04-08-2009 18-59-56

 

Nah lalu install program untuk mengatur PC. Anda bisa pakai WINLIRC (harus di learn dulu tiap-tiap tombilnya).

Atau pake shareware UICE, PCREMOTECONTROL, GIRDER. Semuanya bisa di pakai tapi semuanya harus di program dulu agar dapat sesuai dengan keinginan kita.

Tiap software tersebut ada kekurangan dan kelebihannya. Saya suka UICE karena ada fasilitas OSD nya. (On Screen Display). Jadi saya dapat membuat Menu-menu untuk memilih aplikasi apa yang mau saya kontrol.

Anda dapat mengontrol Winamp, windows media player, ataupun program lainnya menggunakan remote biasa yang sudah tersedia di rumah anda.

Happy Hacking!.

Leaf project - back from roaming

This is my first attempt to bring my robot outside the "robot room", i guide him by webserver from roborealm by another desktop computer. It's fun and it's like flight simulator...

at this stage there are no sensors.

i'm using 2 webcams (one is build in the laptop, and the other is logitech cam, on the top of the pole)

This is him coming back from roaming.

 

This is the interface for remoting the robot.

interface

Did you see the rope around the laptop.. i still cannot find a decent bracket to attach my laptop to the robot.. the rope is the safety belt now..

Interface Parallax Basic Stamp 2 dengan SPC Relay Board v.2.0

DSC03164

untuk proses mencobanya saya memakai DT-51 Min System 3.3 untuk mengecek bagaimana cara bekerjanya. si DT-51 terhubung dengan 9v yang sudah agak lemah, dan Relay Board menggunakan 6v batterai ABC, semuanya berjalan lancar dengan sample yang sudah di berikan dari CDnya.

Lalu barulah saya pindahkan ke basic stamp dengan menggunakan resistor 220ohm sebagai jaga-jaga arus balik ke PIN.

DSC03250

Konfigurasi ini menggunakan batterai 6v (4x AA) dan menghubungkan board secara serial.

Teknik coding di Basic Stamp Editor hanya menggunakan:

HIGH 6 ' untuk menyalakan pin no.6

PAUSE 1000 ' untuk 1 detik

LOW 6 ' matikan pin 6

END

PS: lihat manual.. Input 1 pada Relay Board harus di hubungkan dengan ground.

Interface Parallax Basic Stamp 2 dengan SPC DC Motor

DSC03147

Konfigurasi dengan DT-51 seperti ini dapat berjalan dengan EXAMPLE.ASM sebagai programnya. Menggunakan baterai 9v untuk DT-51 dan 6v untuk SPC DC nya. (ground tetap di hubungkan bersama) Kabel pita dari PORT C dan PORT 1 ke tempat yang sama.

Perhatikan arah kabel pita.

Tetapi saya belum bisa merangkai I2C command melalui basic stamp. jadi SPC DC Motor saya hubungkan seperti ini.

DSC03247

tetap di beri resistor 220 ohm untuk menjaga pin. SPC DC motor controllernya di beri tegangan yang sama dengan Basic Stamp (6v). Tetapi Vmotor saya berikan baterai 9v untuk memutar motor lebih kuat.

(saya belum mencoba dengan 12 v)

Cara memprogramnya justru di berikan LOW pada pin yang bersangkutan.

LOW 6 '(start motor)

LOW 7 '(searah jarum jam)

HIGH 6 '(matikan motor)