驚くほど簡単にプログラミングを始められるLinux

Armadillo-IoT G3Lでは初めてのプログラミングです。

前回のスクリプト(.sh)もプログラミングの一種ですが、もう一つ、Rubyというスクリプト言語に触れてから、C言語での本格的なプログラミングに参りましょう。

準備は…特に無し。

簡単なプログラミングなら、開発環境すら必要としません。
それがLinuxのうれしいところですね。

なぜプログラミング環境はLinuxが多いのだろうか?

そういえば、プログラミングの世界に入っていくと、Linuxで開発環境が用意されている、というシーンにたびたび遭遇します。

私も、Windowsしか使っていなかった頃は不思議に思っていたものです。
見回せばPCのOSはWindowsばかりなのに、なぜLinuxなのだろう?と。

しかし、一度Linuxの敷居をまたいだ後は、「ああ。そうか」と遅れて気づくのです。

とにかく、楽。

触れれば触れるほど、「アレもコレも、こっち(Linux)が楽」と思わされます。

そんなウワサは以前から耳にしていましたが、「そりゃ、慣れればそっちの方が楽でしょうよ」くらいに思ってました。

でも違いました。

もちろん、慣れれば一層楽だし、いろんな意味で楽なことを実感するのですが…

驚いたことに、慣れる前から、楽なんです。

慣れるまでの過程で、既に「こりゃ楽だわ」と思っている自分がいました。

 

Linuxでプログラミングを始めるための準備はとても簡単

Linuxでのプログラミング例を説明する前に、そこまでの準備について、触れておきましょう。

例1:PCにLinuxをインストールして、プログラミングしたい。

PCを購入、または使っていないPCを用意。
Linuxで有名なUbuntuというLinuxを使う場合、サイトからインストールデータをUSBメモリに移して、PCを再起動。
メッセージに従ってインストール。
インストールが終わったら、「端末」というアプリを起動。
Rubyを使う場合はインターネットにつないでRubyもインストール( sudo apt-get install ruby と入力)

例2:安くて入手しやすいLinuxボード「Rasbberry Pi(ラズパイ)」でプログラミングしたい。

ボードを購入。
PCでサイトにアクセスし、SDカードにインストールデータを移す。
ボードにSDカードを挿入し、ボードにモニタとキーボード、マウスを接続して、電源を接続。
メッセージに従ってインストール。
起動したら「LXTerminal」という端末アプリを起動。

例3:GUIの無いLinuxボード「Armadillo-IoT」でプログラミングしたい。

ボードを購入。
USBケーブルでPCを接続し、TeraTerm等の端末アプリを起動し、ボードに電源を接続。
端末からログイン。

以上の3つの例、どれをとっても、たったこれだけの準備で以下のプログラミングが開始できます。

まず、スクリプト言語「Ruby」を試してみましょう。

はじめてのRubyプログラミング

Rubyは、プログラムのソースを*.rbというファイル名で作成し、「 ruby *.rb 」と入力すると、そのプログラムが実行される、というお手軽なプログラミング言語です。

とてもお手軽です。

エディタやメモのアプリでソースファイルを作成(+ボードに転送)して…と進めても良いのですが、もっと楽に行きましょう。
catコマンドで直接ファイルに落としてしまいます。

つまり、以下の様にソースファイル(test.rb)にプログラムを書きます。


root@armadillo:~# cat > test.rb
print "hello world ! \n"
(ここでCtrl+D)

 

後は、「ruby test.rb」と打って実行するだけ。
すると、「hello world !」と出るはず。


root@armadillo:~# ruby test.rb
hello world !

 

でた!

実は、初めて使った言語でした。Ruby。

 

次はC言語プログラミング

次は、C言語です。
やっぱり、ドライバ設計や色々とやりたいことが多い欲張りな人は、C言語は必要になるでしょう。

C言語もソース(test.c)を書いて、


root@armadillo:~# cat > test.c
#include 
main()
{
printf("hello world !! \n");
}
(ここでCtrl+D)

 

コンパイルして、

root@armadillo:~# gcc test.c

 

実行するだけ!

 


root@armadillo:~# ./a.out
hello world !!

 

よし出た!

コンパイルによって、ソースファイル(test.c)から実行ファイル(a.out)を生成します。

実行ファイルのファイル名は、オプション(-o)やmakefile等で指定できますが、何も指定しないと、a.outというファイル名になります。

./a.out の ./ は、「このディレクトリにある」ファイルという意味です。
これを書かないと、他のところにある同名のファイルと区別できない場合があるので、必要になります。

 

難しいこともライブラリにおまかせ

できてしまいましたね。プログラミング。
私も今日からRuby経験者です。

まだやったことない人も、初めてみたくなりませんか?

 

さて、次は、前回の課題をプログラミングで解決したいと思います。

USB接続のWEBカメラで画像を撮影してサーバに転送するプログラムを作ります。

  • WEBカメラを制御して画像を撮影させる。
  • 画像をJPEGファイルに圧縮する。
  • サーバにファイルを転送する。

色々とやらなければならないので、それなりのプログラム量になりますが、Linuxの場合、ほとんどの処理がフリーのライブラリでできてしまうので、思ったよりも簡単です。

(つづき → WEBカメラで撮影してJPEGファイルにするプログラム(前編)