Raspberry Pi は、電子エンジニアや愛好家向けに設計されたARM皮質ベースの人気のある開発ボードです。これは、非常に優れた処理速度とメモリを備えた低電力で動作するシングルボードコンピュータです。Raspberry Piは、通常のPCのように、一度にさまざまな機能を実行するために使用できるため、手のひらでミニコンピューターと呼ばれます。
一連のRaspberryPiチュートリアルを作成しました。このチュートリアルでは、Raspberry Piとすべての基本コンポーネントのインターフェイス、および最初にいくつかの簡単なRaspberryPiプロジェクトについて説明しました。
ここでは、Raspberry PiBoardを使用して電子投票機を構築します。私たちは皆、簡単なボタンを押すだけで選挙で投票するために使用される電子投票機(EVM)について知っています。AVRマイクロコントローラーを備えたEVMやArduinoを備えたEVMなどのさまざまなマイクロコントローラーを使用した電子投票機についてはすでに説明しました。また、RFIDタグで投票者を認証する投票機を構築し、認証された投票のみをカウントできるようにしています。
Raspberry Piを使用したこの電子投票機は、以前の投票機のプロジェクトと比較して、よりシンプルで簡単です。
必要なコンポーネント:
- ラズベリーパイ-1
- 16x2 LCD-1
- 押しボタン-5
- ブレッドボード-1
- 接続線
- 1K抵抗-1
- 10K抵抗-5
- 10Kポット-1
- LED-5
使い方:
このプロジェクトでは、4つのボタンを使用して4つの候補者または政党に投票しました。候補の数を増やすことはできますが、理解を深めるために、ここでは4つしか使用していません。有権者が4つのボタンのいずれかを押すと、尊敬される政党または候補者の「投票数」が1回ずつ増加します。同時に、LEDが点滅し、ブザーが1秒間鳴り、投票が行われたことを示します。投票が完了すると、投票の結果を表示するための「結果」ボタンが表示されます。このボタンを押すと、LCD画面に勝者の名前と番号が表示されます。各党に与えられた票の。
回路の説明:
RaspberryPiを使用したこのEVMの回路図を以下に示します。 Raspberry Piは、ボタンの読み取り、投票数の増加、結果の生成、LCDへのすべての表示などのプロセス全体を制御します。
ここでは、Raspberry Pi 3ボードを使用してプロジェクトのすべての操作を実行し、wiringPiライブラリを使用してRaspberryPiのGPIOピンを選択および制御しました。ここではRaspberryPi2を使用することもできます。ここでは、5つのボタンを使用しました。4つは4つの異なる候補者/政党に投票するために使用され、1つのボタンはLCDに結果を表示するために使用されます。これらの5つのボタンは、RPI3のGPIOピン21〜25に直接接続されており、それぞれに10Kのプルアップ抵抗が付いています。 16x2LCDがRaspberryPiに接続されています。制御ピンRS、RW、およびEnはGPIOピン11、GND、および10に接続されています。データピンD4-D7はRPIのGPIOピン6、5、4、および1に接続されています。ブザー投票者がいずれかのボタンを押したときのビープ音にも使用されます。ここでは、システムの準備ができており、投票者がボタンを押すことでマシンに投票を送信できることを示すために、緑色のLED(D5)を使用しています。LCDの明るさを制御するために10kポットが使用されます。
Raspberry Piでコードを実行する方法:
1.まず、SSHを使用してデフォルトのユーザー名「pi」とパスワード「raspberry」でRaspberryPiにログインします。ここでは、SSHクライアント「Puttyfor Windows」を使用して、Windowsを介してPiに接続しました。Linuxを使用している場合は、SSHを使用してPiに直接接続できます。インターネット上には「SSHを使用してRaspberryPiに接続する」に関するチュートリアルがたくさんあるので、ここでは詳しく説明しません。また、Pi、OSのインストール(Raspbian Jessie)、およびそのハードウェアとソフトウェアの要件の詳細については、RaspberryPiの使用を開始する方法を確認する必要があります。
2.次に、以下のコマンドを実行してvoting.cという名前の新しいファイルを開き、コード(以下のコードセクションに記載)をファイルに貼り付けます。「shift + insert」キーを使用してコードを貼り付けます。
sudo nano voting.c
3.コードを書き込んだ後、ctrl + xを押し、次にyを押してコードを保存し、 Enterキーを押します。
4.次に、指定されたコマンドを使用してコードを実行可能にします。
cc -o voting voting.c -lwiringPi -std = c99
5.最後に、指定されたコマンドを使用してコードを実行します
sudo./voting
プログラミングの説明:
ここでは、ユーザーが使い慣れたC言語を使用して、Arduinoコーディングと非常によく似たコードとコーディングを記述しました。Python言語を使用してこのプロジェクトをビルドすることもできます。
まず、ヘッダーファイルをインクルードし、LCDのピンを定義します。WireingPi.hヘッダーファイルは、PiのGPIOピンを制御するために使用されます。次に、投票入力とLED表示を取得するためのいくつかの変数とピンを初期化します。
#include
その後、 void setup()関数 で使用されるすべてのGPIOに指示を与えました。
void setup(){if(wiringPiSetup()==-1)printf( "ERROR"); pinMode(led1、OUTPUT); pinMode(led2、OUTPUT); pinMode(led3、OUTPUT); pinMode(led4、OUTPUT); pinMode(led5、OUTPUT); pinMode(buzz、OUTPUT); pinMode(RS、OUTPUT);……………..。
コードでは、 void main() で digitalRead 関数を使用して、押されたボタンを読み取りました。
if(digitalRead(in1)== 0){vote1 ++; 公演(); digitalWrite(led1、HIGH); ブザー(); digitalWrite(led1、LOW); 待つ(); }
void show() 関数は、候補者の名前とともに投票情報をLCDに表示するために使用されます。
void show(){setCursor(0,0); print( "BJP Cong AAP Ex"); setCursor(1,1); sprintf(vote、 "%d"、vote1); print(vote); setCursor(6,1); sprintf(vote、 "%d"、vote2);…………………。
このプロジェクトで使用されるその他の関数は次のとおりです。
void buzzer() 関数は、投票が行われたことを示すものとしてブザーを鳴らすために使用されます。また、LED D5(ハードウェアの緑色のLED )のwait()機能を無効にします 。これは、LEDがオンになると、システムが投票の準備ができていることを示します。
void buzzer(){digitalWrite(buzz、HIGH); delay(1000); digitalWrite(buzz、LOW); } void wait(){digitalWrite(led5、LOW); delay(3000); }
void comapare() 関数を使用して、各候補者の総投票数を比較し、結果を取得して、結果のステータスをLCDに表示します。
void compare(){clear(); print( "お待ちください…."); 待つ(); if(vote1> vote2 && vote1> vote3 && vote1> vote4){digitalWrite(led1、HIGH); for(i = 0; i <2; i ++){clear(); setCursor(0,0); print( "おめでとう……."); setCursor(0,1); print( "BJPが選挙に勝った");………………….。
以下の完全なコードを確認してください。