Compile a C program on Linux

C言語の最小限の開発環境を作る手順

  1. エディタをインストール
  2. コンパイラをインストール
  3. コンパイラにPATHを通す設定をする

エディタをインストール

Atomという新世代のエディター(Windows、Mac OS X、Linux対応)をインストールしてください。

公式サイト

コンパイラをインストール

LinuxでのC言語開発環境について解説しています。「GNU Compiler Collection」が一般的です。

それでは gcc をインストールしていきます。

Debian

Debianでは、apt-getコマンドを使ってgccをインストールします。

# apt-get install gcc

Ubuntu

UbuntuはDebianベースのディストリビューションなので、Debianと同じようにa apt-getコマンドを使います。ただ、Ubuntuにはrootユーザーという概念がないので、sudoコマンドでインストールしていきます。

$ sudo apt-get install gcc

CentOS

CentOSでは、yumコマンドを使ってgccをインストールします。

# yum install gcc

以上で、コンパイラ(gcc)のインストールは完了です。

コンパイラにPATHを通す設定をする

不要です。

ソースコードコンパイル

C言語プログラムのファイル名を「hello.c」というファイルを作成します。ファイルの中身は「Hello, World!」という文字列を出力するプログラムです。

hello.cをコンパイルします。

$ gcc hello.c 

エラーが表示されなければ、OKです。

プログラムの実行

実行します。

$ ./a.out 
Hello, World

無事に実行できましたね。

Compile a C program on Windows

C言語の最小限の開発環境を作る手順

  1. エディタをインストール
  2. コンパイラをインストール
  3. コンパイラにPATHを通す設定をする

エディタをインストール

Atomという新世代のエディター(Windows、Mac OS X、Linux対応)をインストールしてください。

公式サイト

コンパイラをインストール

C言語コンパイラって幾つかありますが、gccのインストールをオススメします。gccはMacでもLinuxでもWindowsでも使えます。

WindowsでgccをインストールするにはMinGWというソフトを使う必要があります。

MinGW | Minimalist GNU for Windows

  1. MinGWのホームページで「Downloads」をクリック
  2. sourceforgeというサイトに飛びます
  3. 「Download mingw-get-setup.exe (86.5 kB)」をクリック
  4. exeファイルをダウンロード
  5. ダウンロードしたexeファイルを起動
  6. インストール自体は「Install」ボタンとか「Continue」ボタンをクリックするだけ

コンパイラにPATHを通す設定をする

事前にgcc.exeの場所を探しておいてください。
MinGWをインストールする際に設定を変更していなければ C:\MinGW\bin にあるはずです。

  • エクスプローラー起動
  • マイコンピューターで右クリック
  • プロパティ選択
  • システムの詳細設定
  • 「環境変数」ボタン
  • ユーザー環境変数 or システム環境変数にPathがあります
    そのPathの最後に ;C:\MinGW\bin を追記
    ※「;」を必ず付けてください

ユーザー環境変数とシステム環境変数の違い

  • ユーザー環境変数:今ログインしているユーザーだけに有効
  • システム環境変数:全てのユーザーに有効

お好きな方をお使いください。

コマンドプロンプトで gcc --help と打ってみてください。

↓こんな感じのものが出てればgccが正常に使える状態です。

 

ソースコードコンパイル

C言語プログラムのファイル名を「hello.c」というファイルを作成します。ファイルの中身は「Hello, World!」という文字列を出力するプログラムです。

以下のコマンドを打ってみてください。

これが実行ファイルです。

プログラムの実行

コマンドプロンプトで実行ファイル名を入力してEnterキーを押すだけです。

コマンドプロンプトで、「a.exe」を実行します。

> a.exe
Hello, World

このように「Hello, World」という文字列が出力されれば、OKです。

Raspberry Pi (7) Setup Relay

人感センサーでLED点灯と、猫をなくことができたが、今度リレーをコントロールして、電源ONなどでもする。

購入したArduino センサーキットに、リレーが含まれている。

接続は簡単。GronudとVcc接続し、SignalはLED点灯ためのGPIOに繋げればOK。

特にトラブルはなく、猫のなき声とともに、リレーの動作音が聞こえて、リレーについてるLEDも点灯した。

リレーは、なにをコントロールか、まずLED電球のような高出力ものを試したいと思う。

この10WのLEDを点灯すると考えている。LEDにはヒートシンクが必要だが、短時間点灯なら、小さなものはいいかも。

上は100VからLEDを駆動するモジュール。

 

Raspberry Pi (6) Motion Sensor

モーションセンサー(人感センサー)を使って、人が近づくと、LED点灯、猫がなくのような動作をする。

モーションセンサーはHC-SR501を利用する。繋げは簡単な3本結線のみ。電源2本と、真ん中データ一本はGPIO26に接続する。

点灯LEDはGPIO6に接続する。

猫の音声は、AppInventor のHalloPurrから流用。ファイルは ./Music/meow.mp3 に置く。

Raspberry Piのpythonパッケージにはpygameというモジュールがデフォルトでインストールされているそうです。それを利用して、猫の音声を再生する。

動作プログラム

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import time
import RPi.GPIO as GPIO
import pygame.mixer

# LEDのGPIOピンの番号、センサーのGPIOピンの番号
let_pin = 6
pir_pin = 26

sleeptime = 100000
led_light_up_time = 1

GPIO.setmode(GPIO.BCM)
GPIO.setup(pir_pin, GPIO.IN)
GPIO.setup(let_pin, GPIO.OUT)
GPIO.output(let_pin, GPIO.LOW)

pygame.mixer.init()
pygame.mixer.music.load("./Music/meow.mp3")

def motion_detected(pir_pin):
  print "検知"

  # 点灯
  GPIO.output(let_pin, GPIO.HIGH)
  pygame.mixer.music.play(1)

  # 待機
  time.sleep(led_light_up_time)

  # 消灯
  GPIO.output(let_pin, GPIO.LOW)


# コールバック登録
GPIO.add_event_detect(pir_pin, GPIO.RISING, callback=motion_detected)

try:
  while True:
    print "App Start"
    print "ctrl+c  :  if you want to stop app"
    time.sleep(sleeptime)
except KeyboardInterrupt:
  print "Quit"
finally:
  print "clean up"
  GPIO.cleanup()
  pygame.mixer.music.stop()

出来上がったシステムの外観

 

参考

  • http://qiita.com/Nyanpy/items/cb4ea8dc4dc01fe56918 – Raspberry Piでwav/mp3ファイルを再生する方法(python編)
  • http://raspi.seesaa.net/article/417437441.html – Raspberry Piに赤外線センサーを付けて、動きを検知してみた

Raspberry Pi (5) Temperature Sensor

今回は、温度と湿度センサー DHT22を利用して、温度と湿度を測定する。

 

githubからソースコードを取得し、インストールする

$ git clone https://github.com/adafruit/Adafruit_Python_DHT.git
$ cd Adafruit_Python_DHT
$ sudo apt-get install build-essential python-dev
$ sudo python setup.py install

実行例

chen@pi-top:~ $ cd Adafruit_Python_DHT/examples/
chen@pi-top:~/Adafruit_Python_DHT/examples $ sudo python ./AdafruitDHT.py 2302 22
Temp=21.6* Humidity=31.3%
chen@pi-top:~/Adafruit_Python_DHT/examples $ sudo python ./AdafruitDHT.py 2302 22
Temp=21.9* Humidity=26.2%

 

参考:

  • https://wiki.pieper.eu/luchtvochtigheid-sensor-raspberry-pi

Raspberry pi (4) Led blink

いよいよIoT の内容へ

下の図は、LED点滅、温度と湿度のセンサー、人感センサーを付けた状態です。

まずLED点滅から、GPIO4にLEDと抵抗を付けて、下記のプログラムを実行

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time

GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)

while True:

        GPIO.output(4, GPIO.HIGH)
        time.sleep(1)

        GPIO.output(4, GPIO.LOW)
        time.sleep(1)
~

$ sudo python led_blink4.py

下記のは、プログラムでLED点滅を示すビデオです。

Raspberry Pi (3) Remote login

Raspberry Pi はIoT研究によく使われる機材。

Raspberry Pi の内部はLinux 動く、遠隔管理するため、LinuxのCUIで管理を行う。

ネットワーク接続した状態で、下記の作業へ進む。

ユーザー操作

ユーザuser1を対象とする。

ログイン、ログアウト、パスワード変更の他に、テキストファイルの作成、変更もよくあるので、テキストエディタviの基本操作を是非覚えてください。

ログイン

user1をipのサーバにログインとする。

$ ssh user1@ip

サーバの中身が入れ替わり、ログインできない場合、~.ssh/know_hostに該当する項目を削除してください。

ログアウト

$ logout

パスワード変更

$ passed user1

アドミン作業

SSHサーバーの有効化

  1. ターミナルで、設定ツールを起動
    $sudo raspi-config
  2. 8 Advanced Optionsを選択
  3. A4 SSHを選択
  4. [Enable]を選択
  5. 再起動を促されるので、再起動する

参考:

  • http://net-newbie.com/linux/commands/vi.html – viエディタの使い方

Raspberry Pi (1) Install

用意するもの

購入する場合、https://chenlab.net/amazon/ も参照してください。

  • Raspberry Pi 3 Model B
  • microSDカード(16G, Class10)
  • マイクロタイプのUSBケーブル + 電源アダプタ

初期設定時に使用したもの

  • ディスプレイ(HDMI対応するもの)
  • HDMIケーブル
  • USB接続のキーボード
  • USB接続のマウス
  • Windows PC(microSDカードにインストーラをコピーする)

OS の起動ディスクの作成

OSはDebianをベースにした「Raspbian」をインストールすることにする。
インストーラのダウンロードは、こちら から行う。

NOOBS

ダウンロードしたzipファイルを展開し、ファイルをすべてSDカードにコピーする。

機器の接続

Raspberry Piにディスプレイなどを接続する。
接続するものは以下の通り
1. USBキーボード
2. USBマウス
3. HDMIケーブル(ディスプレイに接続)
4. microSDカード
5. LANケーブル(なくても良い)
6. マイクロタイプのUSBケーブル+電源アダプタ
(マイクロタイプのUSBケーブル+電源アダプタは最後につける)

Raspberry Pi起動 〜 OSインストール

  1. 電源ケーブルを接続すると、Raspberry Piが起動する。
  2. Raspbianにチェックを入れる。
  3. 下の方に言語と、キーボードを設定する箇所があるので日本語にしておく。
  4. Installをクリックする。
  5. 「本当にイメージを書き込んでもよいですか?この操作で既存の全てのデータは削除されます!」と確認がでるので
  6. 「はい」をクリックする
  7. Installが始まる
  8. Installが完了するまで少し待つ

Installが完了するとOSが起動する

ログイン

以下の初期ユーザ名:パスワードを入力し、ログインします。

ユーザ名 pi
パスワード raspberry

 

アドミン作業

アドミンの作業はユーザの追加と停止。

また機材の提案と購入作業もあるので、お薦め部品もリストする。

複数使う機材、またはインターネット上サービスを行う場合、ユーザの追加と、デフォルトユーザpiの停止が必要。

ユーザの追加

# adduser user1
# adduser user1 sudo

ユーザの停止

#

 

機材の購入

機材を購入する場合、https://chenlab.net/amazon/ にお薦め部品も参照してください。

小型タッチパネルつきLCDを装着する様子

自動代替テキストはありません。

 

 

ディスプレイ付きPi-Top

 

 

参考書

サポートページ(正誤表・ダウンロード):

http://www.sotechsha.co.jp/sp/1138/

iPhone App (1) Hello world to iPhone

[Swift][超入門]初心者向けはじめてのHelloWorld!

まずはXcodeのDownloadからはじまる

MacのApp StoreからXcodeを検索して、ダウンロードする(無料)。

プロジェクトの作成

1. プロジェクトの新規作成 まずXCodeを開いたら

File>New>Project を選択。

2. テンプレートの選択

次に作りたいアプリに合わせてテンプレが選べます。
今回は iOS>Application>Single New Application を選択。

3. プロダクト名の決定

次にプロダクト名を設定します。Product Nameの中にHelloWorldと入力しましょう。

4. 保存先の設定
デフォルトでは~/Applications内に保存されるそうです。
Desktopに変更してください。

HelloWorldを出力

上記を全て終えるとプロジェクトが立ち上がります。

1.  ラベルを配置

2. ボタンを配置

3. ボタンのイベント処理を追加

ラベルに”HelloWorld”文字列を代入。

//
//  ViewController.swift
//  MyFirstApp
//
//  Created by Hong Chen on 2017/02/22.
//  Copyright © 2017年 DIT. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBAction func tappedButton(_ sender: Any) {
        label.text = "Hello!!"
    }
}

 

 

4. 実行してみる

左上の実行ボタンをクリック!!エミュレータが起動。

エミュレータのボタンをクリックすると、ラベル文字はHelloWorldに変わればOK!!

これでSwiftエンジニアデビュー!!

使用する参考書: