Friday, 28 August 2015

Scratch

Memulai Scratch script dengan menggunakan control pada palette
, drag block 'when  clicked'
 ke area scripting


Lalu ambil 'forever'  

dan drag, pasangkan blok 'forever' dibawah 'when clicked'. menjadi seperti ini:


Lalu, pilih 'Motion' pada palette.


dan pilih blok 'move 10 steps'


dan tempelkan didalam 'forever'. 


Ambil 'if on edge, bounce' tempatkan dibawah 'move 10 steps'


Sekarang kita bisa mencoba, klik bendera hijau 


Kucing akan berjalan, ketika menabrak tepi, dia akan berbalik. Klik lingkaran merah sebelah bendera hijau untuk menghentikan. Agar lebih menarik dan lebih baik, sekarang kita tambahkan perintannya.

Masih menggunakan 'Motion' pada palette, drag dan drop 'turn 15 degrees' 


diantara 'forever' dan 'move 10 steps'

Silahkan mencobanya, dengan mengklik bendera hijau. Terlihat perbedaanya, si kucing hanya putar-putar ditempat kelihatanya.

Pada blok 'turn 15 degrees' kita bisa ubah angkanya atau menggunakkan 'operator'  dan pilih 'pick random 1 to 10'. 



masukan dalam angka 15 pada 'turn 15 degrees'.

Dah hasilnya akan seperti ini:

Kita bisa mengganti-ganti angka yang ada didalam 'pick random' dan 'move'. Silahkan berekperimen..

Video lengkapnya:


RPi menggunakan Scratch

Program ini bukanlah program yang seseungguhnya, ini dibuat untuk anak-anak dalam mengenalkan program, menggunakan blok-blok yang warna, yang mewakili operasi. Dengan scratch banyak point programming yang hilang bila dibandingkan program-program lain. Tapi ini baik untuk anak-anak, karena mereka bisa melihat blok-blok yang berwarna-warni, dan mengeksekusi langsung, dan ketika blok-blok tersebut dimodifikasi, effeknya dapat dilihat secara langsung, boleh dibilang real time. 

Walaupun begitu, komunitas scratch cukup banyak dan mereka membagi code, bertanya, dan menjawab seperti forum-forum lain.

Untuk masuk kedalam program Scratch kita masuk ke Menu > Program > Scratch
Tampilannya seperti ini:

Lalu kemudia muncul window baru, Scratch:

Scripting area menampilkan script pada spite (gambar kucing jalan). Bila sekarang kita mengklik spite1, pada scripting akan ada script, tetapi tidak untuk saat ini, pada area scripting akan kosong, karena kita belum mengscript apa-apa pada spite1.

Script dapat dibuat dengan cara dragging blok-blok pada palette ke area scripting. Ada Blok-blok yang dapat diisi dengan blok-blok lainnya. Ada tiga macam blok pada scratch:

  1. Hat Blocks, gambar bendera hijau, bila diklik (when green flag clicked), merupakan awal dari blok dan menunggu diklik. Kita bisa lihat dengan mengklik 'control' pada palette list.
  2. Stackable Blocks, Blok-blok yang mememilik cekungan dibagian atas dan benjolan dibagian bawah yang dapat disambung-sambung seperti puzzle. Blok-blok ini yang akan mengeksekusi dari atas ke bawah. Pada pallete ada di tombol Motion, Looks, Sound, dan Pen. 
  3. Reporter Blocks, Blok-blok yang memiliki ujung lancip dan bulat.



RPi menggunakan Python

Python sangat cocok untuk memulai mengenal bahasa program. Jelas dan mudah untuk dimengerti dan dijalankan. Dengan python kita bisa menulis program dan langsung dijalankan tanpa harus melalui proses compling menjadi bahasa mesin. Dengan python kita tidak perlu memberitahu ke komputer type angka, baris angka atau string. 

Python dapat dijalankan dengan dua cara, yaitu dengan menjalankan baris per baris, atau membuat secara keseluruhan dahulu. Dan Integrated Development Environment (IDE) telah di bundle dengan python dan RPi dengan sebutan IDLE. 

Python 2 dan Python 3 tidak kompatible, bila kita membuat program atau script dengan python 2, tidak bisa dijalankan oleh python 3, begitu juga sebaliknya. Ini disebabkan ada perubahan perintah antara python 2 dan python 3. Keuntungan menggunakan python 2 adalah library yang sudah banyak, sedangkan python 3 baru sebagian dari python 2. 

Python adalah bahasa yang discript dan bukan program. perbedaan antara script dan program adalah, script dibuat dan kemudian diterjemahkan dalam bahasa mesin seraca langsung, script tidak disimpan dalam bentuk bahasa mesin. Sedangkan program, ketika program telah selesai dibuat, maka program tersebut dicomple menjadi bahasa mesin dan disimpan, dan program yang berbahasa mesin itulah yang dijalankan oleh komputer.

Kita bisa menggunakan text editor untuk membuat script python, bisa juga menggunakan IDLE. 

Kita menggunakan IDLE python 3 (karena ini versi terbaru, tidak perlu cemas dengan library yang tidak lengkap)
Pada RPi kita masuk ke menu > Programming > Pyhton 3

setelah itu keluar window baru bernama Python Shell.



Dan selanjutnya seperti scripting python biasa. Untuk belajar Pyhon 3 silahkan klik disini.


Thursday, 27 August 2015

Network

Bila RPi kita tersambung ke internet, maka kita kadang-kadang ingin tahu property pada ethernet kita, seperti ip address. Untuk melihat property network kita, kita bisa gunakan ifconfig.


Kita juga bisa 'ping' untuk memastikan RPi kita terhubung dengan internet, Perintah 'ping' ini sangat biasa untuk mengetahui masalah pada network. 'Ping' digunakan untuk memastikan koneksi dua arah pada internet. Ingat banyak web site yang memblok fasilitas ping ini.

Untuk 'masuk' kedalam komputer lain secara remote dan aman (menggunakan encrypted password) kita bisa menggunakan Secure Shell (ssh) yaitu program putty, bila komputer yang ada di remote menjalankan program server SSH server. Raspbian telah mendukung program ssh server, jadi kita bisa menjalankan RPi kita tanpa monitor, keyboard.

Untuk mentransfer file dengan aman kita bisa menggunakan ssh, yaitu dengan program sftp. Dengan program ini kita bisa mendownload atau upload file melalui network, Karena program tersebut menggunakan SSL (Secure Sockets Layer) yang merupakan alat standar dari linux. Pada windows kita bisa menggunakan WinSCP



Prosesses, Sudo, dan Permission

Setiap kali kita menjalankan RPi akan terjadi banyak proses, dan setiap proses berdiri sendiri-sendiri, dan diperlakukan berbeda-beda pada task atau service. Kita coba melihat semua proses dengan perintah ps:

pi@raspberrypi ~/fol1 $ ps -aux
warning: bad ps syntax, perhaps a bogus '-'?
See http://gitorious.org/procps/procps/blobs/master/Documentation/FAQ
USER  PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2   2148  1312 ?        Ss   07:28   0:01 init [2]
root         2  0.0  0.0      0     0 ?        S    07:28   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    07:28   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   07:28   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    07:28   0:00 [rcu_preempt]
root         8  0.0  0.0      0     0 ?        S    07:28   0:00 [rcu_sched]
root         9  0.0  0.0      0     0 ?        S    07:28   0:00 [rcu_bh]
root        10  0.0  0.0      0     0 ?        S<   07:28   0:00 [khelper]
root        11  0.0  0.0      0     0 ?        S    07:28   0:00 [kdevtmpfs]
root        12  0.0  0.0      0     0 ?        S<   07:28   0:00 [netns]
root        13  0.0  0.0      0     0 ?        S<   07:28   0:00 [perf]
root        14  0.0  0.0      0     0 ?        S    07:28   0:00 [khungtaskd]
root        15  0.0  0.0      0     0 ?        S<   07:28   0:00 [writeback]
root        16  0.0  0.0      0     0 ?        S<   07:28   0:00 [crypto]
root        17  0.0  0.0      0     0 ?        S<   07:28   0:00 [bioset]
root        18  0.0  0.0      0     0 ?        S<   07:28   0:00 [kblockd]
root        19  0.0  0.0      0     0 ?        S    07:28   0:01 [kworker/0:1]
root        20  0.0  0.0      0     0 ?        S<   07:28   0:00 [rpciod]
root        21  0.0  0.0      0     0 ?        S    07:28   0:00 [kswapd0]
root        22  0.0  0.0      0     0 ?        S    07:28   0:00 [fsnotify_mark]
root        23  0.0  0.0      0     0 ?        S<   07:28   0:00 [nfsiod]
root        29  0.0  0.0      0     0 ?        S<   07:28   0:00 [kthrotld]
root        30  0.0  0.0      0     0 ?        S<   07:28   0:00 [VCHIQ-0]
root        31  0.0  0.0      0     0 ?        S<   07:28   0:00 [VCHIQr-0]
root        32  0.0  0.0      0     0 ?        S<   07:28   0:00 [VCHIQs-0]
root        33  0.0  0.0      0     0 ?        S<   07:28   0:00 [iscsi_eh]
root        34  0.0  0.0      0     0 ?        S<   07:28   0:00 [dwc_otg]
root        35  0.0  0.0      0     0 ?        S<   07:28   0:00 [DWC Notificati
root        36  0.0  0.0      0     0 ?        S    07:28   0:00 [kworker/u2:1]
root        37  0.0  0.0      0     0 ?        S    07:28   0:00 [VCHIQka-0]
root        38  0.0  0.0      0     0 ?        S    07:28   0:00 [mmcqd/0]
root        39  0.0  0.0      0     0 ?        S<   07:28   0:00 [SMIO]
root        40  0.0  0.0      0     0 ?        S<   07:28   0:00 [deferwq]
root        41  0.0  0.0      0     0 ?        S    07:28   0:00 [kworker/u2:2]
root        42  0.0  0.0      0     0 ?        S    07:28   0:00 [kworker/0:2]
root        43  0.0  0.0      0     0 ?        S    07:28   0:00 [jbd2/mmcblk0p2
root        44  0.0  0.0      0     0 ?        S<   07:28   0:00 [ext4-rsv-conve
root       159  0.0  0.4   2888  2164 ?        Ss   07:28   0:00 udevd --daemon
root       305  0.0  0.4   2884  1940 ?        S    07:28   0:00 udevd --daemon
root       306  0.0  0.4   2884  1928 ?        S    07:28   0:00 udevd --daemon
root      1559  0.0  0.2   1752  1112 ?        S    07:29   0:00 /usr/sbin/ifplu
root      1562  0.0  0.2   1752  1184 ?        S    07:29   0:02 /usr/sbin/ifplu
root      1988  0.0  0.0      0     0 ?        S<   07:29   0:00 [cfg80211]
root      2061  0.0  0.5  27976  2520 ?        Sl   07:29   0:00 /usr/sbin/rsysl
root      2120  0.0  0.3   3800  1740 ?        Ss   07:29   0:00 /usr/sbin/cron
102       2128  0.0  0.3   3180  1640 ?        Ss   07:29   0:00 /usr/bin/dbus-d
avahi     2165  0.0  0.5   3484  2636 ?        S    07:29   0:00 avahi-daemon: r
avahi     2166  0.0  0.3   3384  1496 ?        S    07:29   0:00 avahi-daemon: c
ntp       2214  0.0  0.8   5600  3924 ?        Ss   07:29   0:00 /usr/sbin/ntpd
root      2251  0.0  0.6   6220  2928 ?        Ss   07:29   0:00 /usr/sbin/sshd
nobody    2279  0.0  0.3   2020  1400 ?        Ss   07:29   0:00 /usr/sbin/thd -
root      2331  0.0  0.3   2100  1436 ?        Ss   07:29   0:00 /sbin/dhcpcd
root      2341  0.0  0.3   3748  1596 tty1     Ss+  07:29   0:00 /sbin/getty --n
root      2342  0.0  0.3   3748  1640 tty2     Ss+  07:29   0:00 /sbin/getty 384
root      2343  0.0  0.3   3748  1640 tty3     Ss+  07:29   0:00 /sbin/getty 384
root      2344  0.0  0.3   3748  1744 tty4     Ss+  07:29   0:00 /sbin/getty 384
root      2345  0.0  0.3   3748  1640 tty5     Ss+  07:29   0:00 /sbin/getty 384
root      2346  0.0  0.3   3748  1640 tty6     Ss+  07:29   0:00 /sbin/getty 384
root      2347  0.0  0.3   2068  1584 ?        Ss+  07:29   0:00 /sbin/getty -L
root      2348  0.0  1.0   9344  4540 ?        Ss   07:30   0:00 sshd: pi [priv]
pi        2352  0.0  0.8   9344  3588 ?        S    07:30   0:00 sshd: pi@pts/0
pi        2353  0.0  1.0   6240  4540 pts/0    Ss   07:30   0:01 -bash
pi        2381  0.0  0.4   4460  2108 pts/0    R+   08:11   0:00 ps -aux
pi@raspberrypi ~/fol1 $

Atau dengan perintah ps -aux|less (gunakan tombol 'q' untuk keluar).

Dan kadang-kadang kita ingin mematikan suatu proses dari suatu program yang tidak ada respon, kita gunakan perintah 'kill' + PID

pi@raspberrypi ~ $ kill 17

Dengan perintah 'kill 17' maka proses bioset yang ber'id' PID 17 akan diberhentikan (ini hanya contoh, jangan lakukan bila tidak tahu apa yang dikerjakan, efek dari 'kill' (bila terjadi sesuatu yang tidak diinginkan) bisa diatasi dengan mem-boot ulang RPi). Perintah 'kill' hanya memberhentikan suatu proses saja, tidak menghapus atau mengubah dari setting.

Sudo adalah perintah yang mengizinkan siapa saja menjadi super user, ini dikarenakan linux merupakan operating system yang dapat digunakan oleh banyak orang, dengan aturan setiap orang dapat membuat, mengubah dan menghapus file-file mereka sendiri di tempat masing-masing di filesystem.  Sedangkan user 'root' adalah super user yang dapat setiap file di filesystem. Jadi bila kita sedang latihan jangan gunakan user root.

Kita pengguna RPi, menggunakan user 'pi', jadi kita tidak akan banyak merusakan data dengan ataupun tidak sengaja. Tetapi tetap 'sudo' adalah perintah yang relatif berbahaya. Bila kita melakukan sesuatu yang membuat RPi tidak bekerja seperti seharusnya, kita bisa membuatnya lagi dengan mengkopi SD card imagenya.

Sudo diperlukan untuk installing software, interaktif dengan hardware secara langsung, atau mengubah konfigurasi system, dan lain-lain yang sifatnya system administratif.

Permission pada sebuah file bisa dipisahkan dengan kategori pengguna dan  group. Permission pada file dapat kita lihat dengan perintah ls -l.



Kita ambil contoh direktori yang pertama adalah 'Desktop'

Untuk mengubah permission kita bisa mengunakan perintah 'chmod', untuk parameternya:


u
user
g
group
o
Yang lain tidak masuk group
a
semua
r
Read (baca)
w
Write (tulis)
x
Execute (menjalankan)
+
Penambahan permission
-
Pengurangan permission

Sebagai contoh:

  1. pi@raspberrypi ~ $ touch filepermission.txt
  2. pi@raspberrypi ~ $ ls -l
  3. total 48
  4. drwxr-xr-x 2 pi pi 4096 May  7 06:32 Desktop
  5. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1
  6. -rw-r--r-- 1 pi pi  167 Aug 26 15:39 dir1.tar.gz
  7. drwxr-xr-x 2 pi pi 4096 Jul  3 21:16 Docs
  8. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents
  9. drwx------ 2 pi pi 4096 May  7 06:56 Downloads
  10. -rw-r--r-- 1 pi pi    0 Aug 27 09:40 filepermission.txt
  11. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1
  12. -rw-r--r-- 1 pi pi   88 Aug 26 15:53 hello.txt
  13. -rw-r--r-- 1 pi pi   88 Aug 26 15:54 hi.txt
  14. drwxrwxr-x 2 pi pi 4096 Jan 27  2015 python_games
  15. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch
  16. -rwxr-xr-x 1 pi pi   61 Aug 23 10:38 vnc.sh
  17. pi@raspberrypi ~ $


Diatas kita menbuat sebuah file txt kosong (baris no 10), dan kita lihat file yang kita buat memiliki permission -rw-r--r--, artinya untuk user memiliki permission read dan write, untuk group hanya read, dan untuk semua orang hanya read. Dan sekarang kita akan ubah group permission juga dapat write.
  1. pi@raspberrypi ~ $ chmod g+w filepermission.txt 
  2. pi@raspberrypi ~ $ ls -l 
  3. total 48 
  4. drwxr-xr-x 2 pi pi 4096 May 7 06:32 Desktop 
  5. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1 
  6. -rw-r--r-- 1 pi pi 167 Aug 26 15:39 dir1.tar.gz 
  7. drwxr-xr-x 2 pi pi 4096 Jul 3 21:16 Docs 
  8. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents 
  9. drwx------ 2 pi pi 4096 May 7 06:56 Downloads 
  10. -rw-rw-r-- 1 pi pi 0 Aug 27 09:40 filepermission.txt 
  11. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1 
  12. -rw-r--r-- 1 pi pi 88 Aug 26 15:53 hello.txt 
  13. -rw-r--r-- 1 pi pi 88 Aug 26 15:54 hi.txt 
  14. drwxrwxr-x 2 pi pi 4096 Jan 27 2015 python_games 
  15. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch 
  16. -rwxr-xr-x 1 pi pi 61 Aug 23 10:38 vnc.sh 
  17. pi@raspberrypi ~ $
Pada perintan 'chmod g+w filepermission.txt', 
'g' adalah group
'+' adalah penambahan permission
'w' adalah write
Sekarang group untuk write filepermission mendapatkan izin.

  1. pi@raspberrypi ~ $ chmod g-w filepermission.txt 
  2. pi@raspberrypi ~ $ chmod u-r filepermission.txt 
  3. pi@raspberrypi ~ $ chmod g+w,o+w filepermission.txt 
  4. pi@raspberrypi ~ $ ls -l 
  5. total 48 
  6. drwxr-xr-x 2 pi pi 4096 May 7 06:32 Desktop 
  7. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1 
  8. -rw-r--r-- 1 pi pi 167 Aug 26 15:39 dir1.tar.gz 
  9. drwxr-xr-x 2 pi pi 4096 Jul 3 21:16 Docs 
  10. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents 
  11. drwx------ 2 pi pi 4096 May 7 06:56 Downloads 
  12. --w-rw-rw- 1 pi pi 0 Aug 27 09:40 filepermission.txt 
  13. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1 
  14. -rw-r--r-- 1 pi pi 88 Aug 26 15:53 hello.txt 
  15. -rw-r--r-- 1 pi pi 88 Aug 26 15:54 hi.txt 
  16. drwxrwxr-x 2 pi pi 4096 Jan 27 2015 python_games 
  17. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch 
  18. -rwxr-xr-x 1 pi pi 61 Aug 23 10:38 vnc.sh 
  19. pi@raspberrypi ~ $ chmod u+r,g+w,o+w filepermission.txt 
  20. pi@raspberrypi ~ $ ls -l 
  21. total 48 
  22. drwxr-xr-x 2 pi pi 4096 May 7 06:32 Desktop 
  23. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1 
  24. -rw-r--r-- 1 pi pi 167 Aug 26 15:39 dir1.tar.gz 
  25. drwxr-xr-x 2 pi pi 4096 Jul 3 21:16 Docs 
  26. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents 
  27. drwx------ 2 pi pi 4096 May 7 06:56 Downloads 
  28. -rw-rw-rw- 1 pi pi 0 Aug 27 09:40 filepermission.txt 
  29. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1 
  30. -rw-r--r-- 1 pi pi 88 Aug 26 15:53 hello.txt 
  31. -rw-r--r-- 1 pi pi 88 Aug 26 15:54 hi.txt 
  32. drwxrwxr-x 2 pi pi 4096 Jan 27 2015 python_games 
  33. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch 
  34. -rwxr-xr-x 1 pi pi 61 Aug 23 10:38 vnc.sh 
  35. pi@raspberrypi ~ $

Wednesday, 26 August 2015

Raspberry Pi Command Line

Command Line pada RPi dapat diakses melalui 'Terminal'. Pada terminial akan terlihat 'pi@raspberrypi ~$', sedangkan kita tidak tahu di folder mana kita berada. Kita bisa gunakan perintah 'pwd'. Maka tampilan akan seperti ini:

  1. pi@raspberrypi ~ $ pwd
  2. /home/pi
  3. pi@raspberrypi ~ $

diatas dikatakan bahwa kita berada di folder home/pi.

Bila kita ingin mengetahui file atau folder apa saja yang ada di folder sekarang, kita gunakan perintah 'ls'.

  1. pi@raspberrypi ~ $ ls
  2. Desktop  Docs  Documents  Downloads  python_games  Scratch  
  3. pi@raspberrypi ~ $

Warna biru pada output (Desktop  Docs  Documents  Downloads  python_games  Scratch ) adalah folder, dan warna hijau adalah file (ciri lain dari sebuah file biasanya ada extention dibelakang nama file tersebut, misalnya abcd.sh.

Dan bila kita ingin mengganti direktori yang ingin kita gunakan, kita bisa gunakan perintah 'cd' (change directory), perintah cd ini ada 2 jenis, yaitu: absolute path dan relative part. contoh:

  1. pi@raspberrypi ~ $ pwd
  2. /home/pi
  3. pi@raspberrypi ~ $ cd /
  4. pi@raspberrypi ~ $ pwd
  5. /
  6. pi@raspberrypi ~ $ ls
  7. bin   dev  home  lost+found  mnt  proc  run   selinux  sys  usr
  8. boot  etc  lib   media       opt  root  sbin  srv      tmp  var
  9. pi@raspberrypi ~ $

Perintah cd dengan '/' maka kita akan masuk ke folder paling luar, semua folder-folder paling luar ada disini, dari sini kita tidak bisa lagi ke folder yang lebih luar lagi.

Sekarang kita akan masuk ke folder defaut dari RPi yaitu '/home/pi'

  1. pi@raspberrypi ~ $ cd /home/pi
  2. pi@raspberrypi ~ $ pwd
  3. /home/pi
  4. pi@raspberrypi ~ $ ls
  5. Desktop  Docs  Documents  Downloads  python_games  Scratch 
  6. pi@raspberrypi ~ $


Contoh diatas adalah untuk path absolute, yang berbasis dengan folder terluar. 


Lalu ada relative path adalah alamat yang berbasis dengan folder saat ini. Sekarang kita berada di folder /home/pi, maka dengan relative path basis foldernya adalah /home/pi. Relative path dapat dipergunakan dengan perintah '.' (dot)  atau '..' (dot dot). contoh:

  1. pi@raspberrypi ~ $ pwd
    /home/pi
  2. pi@raspberrypi ~ $ cd ..
  3. pi@raspberrypi /home $

Kita mempergunakan perintah 'cd ..' pada folder /home/pi sehingga kita sekarang berada pada folder home. Kita naik satu folder keluar.  

Perintah ls adalah untuk menampilkan isi dari folder, dan bila kita menambahkan parameter yang lain, seperti -l maka ini yang akan terjadi:
  1. pi@raspberrypi ~ $ ls -l
  2. total 28
    drwxr-xr-x 2 pi pi 4096 May  7 06:32 Desktop
  3. drwxr-xr-x 2 pi pi 4096 Jul  3 21:16 Docs
  4. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents
  5. drwx------ 2 pi pi 4096 May  7 06:56 Downloads
  6. drwxrwxr-x 2 pi pi 4096 Jan 27  2015 python_games
  7. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch
  8. -rwxr-xr-x 1 pi pi   61 Aug 23 10:38 vnc.sh
  9. pi@raspberrypi ~ $

disini penampilan isi folder lebih lengkap (pada folder anda mungkin tidak ada file vnc.sh,  karena file tersebut saya yang buat sendiri). Dan bila kita ingin melihat semua isi folder termasuk yang disembunyikan, perintah ls -la:


  1. pi@raspberrypi ~ $ ls -la
  2. total 264
  3. drwxr-xr-x 22 pi   pi     4096 Aug 26 12:30 .
  4. drwxr-xr-x  3 root root   4096 May  7 05:20 ..
  5. -rw-r--r--  1 pi   pi       69 May  7 06:32 .asoundrc
  6. -rw-------  1 pi   pi     1406 Aug 26 11:43 .bash_history
  7. -rw-r--r--  1 pi   pi      220 May  7 05:20 .bash_logout
  8. -rw-r--r--  1 pi   pi     3243 May  7 05:20 .bashrc
  9. drwxr-xr-x  9 pi   pi     4096 May  7 06:55 .cache
  10. drwxr-xr-x 14 pi   pi     4096 Aug 24 20:31 .config
  11. drwx------  3 pi   pi     4096 May  7 06:32 .dbus
  12. drwxr-xr-x  2 pi   pi     4096 May  7 06:32 Desktop
  13. drwxr-xr-x  2 pi   pi     4096 Jul  3 21:16 Docs
  14. drwxr-xr-x  3 pi   pi     4096 Aug 23 10:16 Documents
  15. drwx------  2 pi   pi     4096 May  7 06:56 Downloads
  16. drwxr-xr-x  2 pi   pi     4096 Aug 23 09:53 .fontconfig
  17. drwx------  2 pi   pi     4096 Aug 24 20:19 .gconf
  18. drwxr-xr-x  2 pi   pi     4096 May  7 06:32 .gstreamer-0.10
  19. drwx------  2 pi   pi     4096 May  7 06:32 .gvfs
  20. drwxr-xr-x  2 pi   pi     4096 Jul  3 19:06 .idlerc
  21. drwx------  3 pi   pi     4096 May  7 06:32 .local
  22. -rw-r--r--  1 pi   pi      675 May  7 05:20 .profile
    drwxrwxr-x  2 pi   pi     4096 Jan 27  2015 python_games
  23. drwxr-xr-x  3 pi   pi     4096 Aug 23 10:16 .scratch
  24. drwxr-xr-x  2 pi   pi     4096 Aug 23 10:16 Scratch
  25. drwxr-xr-x  4 pi   pi     4096 Aug 24 20:19 .sonic-pi
  26. drwxr-xr-x  3 pi   pi     4096 May  7 06:32 .themes
  27. drwx------  4 pi   pi     4096 May  7 07:00 .thumbnails
  28. drwx------  2 pi   pi     4096 Aug 26 12:30 .vnc
  29. -rwxr-xr-x  1 pi   pi       61 Aug 23 10:38 vnc.sh
  30. -rw-------  1 pi   pi      210 Aug 26 12:30 .Xauthority
  31. -rw-------  1 pi   pi   146852 Aug 26 12:36 .xsession-errors
  32. pi@raspberrypi ~ $

Untuk mengganti nama atau memindahkan file, kita gunakan perintah 'mv', sebagai contoh  untuk mengganti nama file:


  1. pi@raspberrypi ~ $ touch testfile
  2. pi@raspberrypi ~ $ ls
  3. Desktop  Docs  Documents  Downloads  python_games  Scratch  testfile  vnc.sh
  4. pi@raspberrypi ~ $ mv testfile gantinama
  5. pi@raspberrypi ~ $ ls
  6. Desktop  Docs  Documents  Downloads  gantinama  python_games  Scratch  vnc.sh
  7. pi@raspberrypi ~ $



Perintah 'touch' adalah untuk membuat sebuah file kosong. Pada baris 1, kita membuat file kosong yang bernama testfile

Pada baris ke 2 kita periksa file tersebut sudah dibuat atau belum, kita gunakan perintah ls untuk mendisplay isi folder.

Baris ke 4, kita mencoba mengganti nama file testfile dengan gantinama menggunakan perintah mv.

Baris ke 5, kita mendisplay lagi, dan file testfile telah berubah namanya menjadi gantinama.

Dan untuk memindahkan file adalah sebagai berikut:


  1. pi@raspberrypi ~ $ ls 
  2. Desktop  dir1.tar.gz  Documents  hello.txt  hi.txt        Scratch
    dir1     Docs         Downloads  hillo.txt  python_games  vnc.sh
  3. pi@raspberrypi ~ $ mkdir fol1
  4. pi@raspberrypi ~ $ ls 
  5. Desktop  dir1.tar.gz  Documents  fol1       hillo.txt  python_games  vnc.sh  dir1     Docs         Downloads  hello.txt  hi.txt     Scratch
  6. pi@raspberrypi ~ $ pwd 
  7. /home/pi
  8. pi@raspberrypi ~ $ mv hillo.txt /home/pi/fol1/hillo.txt
  9. pi@raspberrypi ~ $ ls 
  10. Desktop  dir1.tar.gz  Documents  fol1       hi.txt        Scratch
    dir1     Docs         Downloads  hello.txt  python_games  vnc.sh
  11. pi@raspberrypi ~ $ cd fol1
  12. pi@raspberrypi ~/fol1 $ ls
  13. hillo.txt
  14. pi@raspberrypi ~/fol1 $

Sekarang kita hapus file gantinama dengan perintah rm (untuk menghapus file, dan perintah rmdir untuk menghapus direktori atau folder jika folder tersebut kosong, dan dengan rm -r bila folder ada isinya sehingga semua yang ada dalam direktori atau folder tersebut juga ikut dihapus).
  1. pi@raspberrypi ~ $ rm gantinama
  2. pi@raspberrypi ~ $ ls
  3. Desktop  Docs  Documents  Downloads  python_games  Scratch  vnc.sh
  4. pi@raspberrypi ~ $

Untuk mengetahui lebih jauh semua perintah dengan parameter-parameternya kita bisa menggunakan perintah man atau --help
  1. pi@raspberrypi ~ $ man rm
  2. pi@raspberrypi ~ $ rm --help

Untuk membuat direktori atau folder, perintah mkdir
Untuk menbundle semua file dalam satu folder menjadi sebuah file, perintah tar. Untuk mengkompress file tersebut dengan gzip.
  1. pi@raspberrypi ~ $ mkdir dir1
  2. pi@raspberrypi ~ $ ls
  3. Desktop  dir1  Docs  Documents  Downloads  python_games  Scratch  vnc.sh
  4. pi@raspberrypi ~ $ cd dir1
  5. pi@raspberrypi ~/dir1 $ touch file1 file2 file3
  6. pi@raspberrypi ~/dir1 $ ls
  7. file1  file2  file3
  8. pi@raspberrypi ~/dir1 $ cd ..
  9. pi@raspberrypi ~ $ tar -cf dir1.tar dir1
  10. pi@raspberrypi ~ $ ls
  11. Desktop  dir1.tar  Documents  python_games  vnc.sh dir1     Docs      Downloads  Scratch
  12. pi@raspberrypi ~ $ gzip dir1.tar
  13. pi@raspberrypi ~ $ ls
  14. Desktop  dir1.tar.gz  Documents  python_games  vnc.sh dir1     Docs         Downloads  Scratch
  15. pi@raspberrypi ~ $
Ada juga kontrol key yang bisa digunakan seperti tombol TAB untuk autocomplete dan tombol panah atas, antara lain:
ctrl + c    untuk mengakhiri program yang sedang berjalan. Ada kalanya tombol ini tidak berfungsi ketika kita menggunakan progam-program tertentu, seperti text editor
ctrl + d     Keluar dari shell. Jangan menulis apapun setelah tanda $
ctrl + s     Kursor akan pindah ke awal dari baris
ctrl + e     Kursor akan pindah ke akhir dari baris

Bila kita ingin menampilkan beberapa baris terakhir dari sebuah file (biasanya untuk melihat log.file) kita gunakan perintah tail, dan head untuk menampilkan beberapa baris diawal file.

Untuk mencari file dengan kata kunci tertentu, kita bisa mengunakan perintah grep:

  1. pi@raspberrypi ~ $ grep d *.*
  2. Binary file dir1.tar.gz matches
  3. hello.txt:dir1
  4. hello.txt:dir1.tar.gz
  5. hello.txt:Downloads
  6. hillo.txt:dir1
  7. hillo.txt:dir1.tar.gz
  8. hillo.txt:Downloads
  9. hillo.txt:dir1
  10. hillo.txt:dir1.tar.gz
  11. hillo.txt:Downloads
  12. hi.txt:dir1
  13. hi.txt:dir1.tar.gz
  14. hi.txt:Downloads
  15. vnc.sh:vncserver :0 -geometry 1024x768 -depth 24 -dpi 96
  16. pi@raspberrypi ~ $
Salah satu alasan Linux atau Unix berhasil dalam design adalah membuat system yang komplek dalam suatu modular kecil dan simple yang dapat berhubungan dengan pipes dan redirection. 

Pipes adalah hubungan sederhana antara dua buah program, sehingga output dari salah satu program dapat dijadikan input dalam program yang lain. Semua program Linux dapat membaca data dari input standar (stdin), dan menulis data dari output standar (stdout), dan bila terjadi kesalahan dapat memberi pesan. 
Redirection adalah perintah yang mengeksekusi dan output stdout dapat dikirim kesebuah file. Untuk meng-redirection kita menggunakan operator '>'.

Sekilas Raspberry Pi

Tampilan RPi Raspbian adalah seperti ini:

Tampilan diatas, ketika kita mengklik menu, dan kursor diletakan pada menu programming. Program yang kita gunakan adalah Python 3. Scratch juga programming dengan cara drag dan drop. Sonic Pi programming untuk membuat music. Mathematica dan Wolfram merupakan tool programming untuk matematika, science, komputer dan engineering. 

Lalu kita ke Accessories (Archiver, Calculator, File Manager, Image Viewer, Task Manager, PDF Viewer, Terminal, Text Editor).

Terminal adalah tool dari linux untuk berkeliling file system.

GPIO: Raspberry Pi Model A dan B, 

Ada beberapa perbedaan antara rev 1 dan rev 2 pada model B.
Pin-pin tersebut merupakan interface Pi input dan output, yang bisa kita buat sebagai tombol-tombol 'on' dan 'off' juga, RPi dapat mematikan dan menyalakan melalui pin-pin tersebut, dan juga ada pin untuk power 5v dan 3,3v, dan ground, seperti dibawah ini:

+ 5v
+ 5v
-
14 15 18
-
23 24
-
25 8 7
+ 3.3v
2 3 4
-
17 27 22
+ 3.3v
10 9 11
-

Sedangkan untuk RPi 2 model A+ dan B+





5v
+  5v

14 15 18

23 24

25 8 7



12

16 20 21
+ 3.3v 2 3 4

17 27 22 + 3.3v 10 9 11



5 6 13 19 26

  • warna merah untuk power + 5v
  • warna orange untuk power + 3.3v
  • warna hitam untuk ground
  • warna putih untuk I/O berserta nomornya.
  • warna biru untuk ID EEPROM, (Jangan menggunakan pin-pin ini, jangan mencoba-coba menggunakannya, bila tidak tahu apa yang dilakukan ya)
Pin-pin tersebut adalah untuk interaksi antara RPi dengan kita, seperti input yang biasa menggunakan tombol. Dengan tombol tersebut kita memberikan listrik kesalahsatu I/O RPi, bila kita tidak mensetting apa-apa, maka tidak terjadi apapun. Tapi 'bila pin no.2 mendapatkan listrik (3.3v), maka beri listrik pin no.3 (HIGH), dan bila tidak ada input dari pin no.2, maka matikan pin no.3 (LOW) misalnya. Sehingga sekarang bila kita tekan tombol yang mengalirkan listrik (ingat jangan pake listrik PLN langsung (220V), cukup 3.3V saja) ke pin no.2, maka RPi akan mengalirkan listrik (juga 3.3v) ke pin no.3.

Input tidak hanya dengan tombol saja, input bisa dari sensor, atau signal dari komputer yang lain.



Modul Kamera

Modul kamera RPi dapat mengambil gambar full HD 1080p photo dan videa, dan juga dapat dikontrol secara progamatik.

Untuk menbuat kamera berfungsi kita harus menakifkan dahulu dengan menggunakan Terminal dan tulis:
sudo raspi-config
dan kemudian pilih Enable camera dan tekan enter, lalu tekan Finish kemudian kita akan ditanya untuk reboot. 
Untuk keterangan lebih banyak tentang camera silahkan klik disini.

Terminal
Dengan terminal kita dapat menjelajahi File-file dan filesystem, dan ya sedikit menyulitkan dan tidak user friendly seperti pada window yang tinggal klik sana klik sini, dimana struktur file dan folder seperti hutan yang tidak berujung. 

Dengan linux semua adalah file dan folder, sebagai contoh, bila komputer kita menggunakan linux, dan dalam komputer tersebut kita memiliki CD-rom, kita tidak akan menemukan cd-rom tersebut dengan sebuah icon cd-rom, ataupun drive cd-rom. Linux membuat cd-rom menjadi sebuah folder, dan isi dari cd-rom tersebut ada pada folder tersebut.

Dengan terminal kita mempunyai dua trik yang dapat membuatnya lebih mudah (tetap tidak semudah user friendly, hanya lebih mudah sedikit saja), kita bisa menggunakan autocomplete dan command history. Dengan autocomplete kita bisa menuliskan hurup pertamanya saja lalu tekan tombol TAB, dan shell akan mencoba menyelesaikan hurup-hurup selanjutnya sesuai dengan kata atau perintah yang relevan yang ada didalam folder yang dibuka, bila dengan satu hurup gagal, cobalah dengan dua hurup, dan seterusnya. Command history adalah perintah yang sebelumnya kita masukan kedalam shell, yaitu dengan cara menggunakan tombol panah keatas.

Files dan Filesystem
Pada standar Linux, file dan Filesystem akan ada pada direktori-direktori ini:
/sys
merupakan direktori yang menyimpan file untuk akses ke hardware pada RPi
/bin
semua program yang bisa diakses oleh semua pengguna.
/boot
file-file yang diperlukan pada saat boot.
/dev
device-divice pada system kita, berupa file
/etc
file configurasi .
/etc/init.d
untuk script pada saat start up
/etc/X11
file configurasi untuk X11
/home
direktori user
/home/pi
direktori user: pi
/lib
modul-modul atau driver kernel
/media
tempat untuk media-media yang dapat dilepas
/proc
merupakan virtual directori tentang proses-proses yang sedang berjalan.
/sbin
program untuk maintance system
/tmp
direktori untuk file sementara
/usr
Program dan data untuk semua user
/usr/bin
kebanyakan program dalam system operasi ada disini
/usr/games
program asslember?  Bukan!! GAME!!!
/usr/lib
Library yang mensupport program
/usr/local
Sofware yang spesifik
/usr/sbin
Program-program untuk adminstrasi system
/usr/share
File file yang dishare antar aplikasi
/usr/src
Sumber Linux
/var
System logs dan file spool
/var/backups
Backup dari file system yang vital
/var/cache
Semua program yang cache data disimpan disini.
/var/log
Semua system logs dan individual service logs
/var/mail
Semua user email, bila diset up
/var/spool
Data yang menunggu diproses (e.g. incoming email, print jobs)

Sekarang bila kita buka teminal akan terlihat seperti ini:
pi@raspberrypi~$_

pi adalah nama user
raspberrypi adalah nama computer
~ adalah direktori home