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
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
- 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)
- Making the robot available to Indonesian language is better.
- I don't watch TV so much but I would like to have recent news from selected RSS internet feed
- Communicating with people.. i mean telephony system in my robot.. i can perform calls from my laptop and vice versa.
- I want to check email.. and someone read it for me.
- Browsing the internet by voice or virtual touch (without mouse?)
- Entertaing robot..
- I have music clips or movie clips that i like to see many times. (building database and a navigation menu for search)
- 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..
- Video capture
- I love music and love playing drums.. i want to have a recording station while jamming with my friends.
- Chatting with the robot would be nice
- Should be relatively cheap.. =)
- I like to have a menu system for my robot
- The robot should have a brain for navigating my house.
- The robot can recognize face and objects..
- Home controlled by robot.. this is good
- Robot Emotions? Leaf have that
- The robot can take or bring me something... (i think it's very hard)
- This one is really deep.. i want to ride my robot. transportation in my neigborhood maybe?? (last priority :) )
PCB Design Error
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
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
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
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/worldKalau 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
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
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.
Pelajaran dari membuat board
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
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.
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
#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.
Download Serial Watcher untuk melihat apakah ada signal yang tertangkap oleh modul SPC
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.
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
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.
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
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.
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)