人人范文网 范文大全

嵌入式系统原理实验总结报告

发布时间:2020-03-03 17:18:43 来源:范文大全 收藏本文 下载本文 手机版

嵌入式系统原理实验总结报告

车辆座椅控制系统实验

2014/5/23

嵌入式系统原理实验总结报告

一、技术性总结报告

(一)题目:车辆座椅控制系统实验

(二)项目概述:

1.为了实现车辆座椅控制的自动化与智能化。

2.方便用户通过智能手机与车载传感器之间的联动。 3.使车辆作为当今物联网中重要的一个节点发挥作用。

4.通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。

5.加强本组学生对嵌入式系统原理的更深层次的理解与运用。

(三)技术方案及原理

本次试验分为软件、硬件两个部分。 1.软件部分。

A.智能手机部分,包括通过智能手机对座椅的控制部分、手机所携带的身份信息部分。

本部分软件使用Java编写,其程序部分为: 主程序:

package com.example.seat;

import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.os.Bundle; import android.os.Handler; import android.os.Meage; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.os.Build;

import java.io.BufferedReader; import java.io.IOException;

import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.InetAddre; import java.net.Socket;

import java.net.UnknownHostException;

import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle;

import android.view.KeyEvent; import android.view.View; import android.widget.Button;

public cla MainActivity extends ActionBarActivity { private Button Up = null; private Button Left = null; private Button Dowm = null; private Button Right = null; private Socket socket = null;

private static final String HOST = \"192.168.1.142\";

private static final int PORT = 10007;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initControl();

}

private void initControl() {

Up = (Button) findViewById(R.id.button1);

Up.setOnClickListener(new ReceiverListener());

}

cla ReceiverListener implements OnClickListener {

protected String line;

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

new Thread() {

@Override

public void run() {

try {

Socket socket = new Socket(HOST, PORT);

BufferedReader br = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

line = br.readLine();

br.close();

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

handler.sendEmptyMeage(0);

}

}.start();

}

}

private Handler handler = new Handler() {

@Override

public void handleMeage(Meage msg) {

super.handleMeage(msg);

}

};

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here.The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

/**

* A placeholder fragment containing a simple view.

*/

public static cla PlaceholderFragment extends Fragment {

public PlaceholderFragment() {

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_main, container, false);

return rootView;

}

} } 界面代码:

<?xml version=\"1.0\" encoding=\"utf-8\"?>

package=\"com.example.seat\"

android:versionCode=\"1\"

android:versionName=\"1.0\" >

android:name=\"android.permiion.ACCESS_NETWORK_STATE\"/>

android:minSdkVersion=\"8\"

android:targetSdkVersion=\"19\" />

android:allowBackup=\"true\"

android:icon=\"@drawable/ic_launcher\"

android:label=\"@string/app_name\"

android:theme=\"@style/AppTheme\" >

android:name=\"com.example.seat.MainActivity\"

android:label=\"@string/app_name\" >

B.车载座椅控制部分,包括控制系统对座椅的控制部分、对智能手机发出的控制信息的识别部分和对手机所携带身份信息的校验与储存部分。 本部分软件使用Python编写,其程序部分为: #!/usr/bin/python #encoding=utf-8 from Raspi_PWM_Servo_Driver import PWM import time, socket

host = \'\' port = 10007

pwm = PWM(0x6F, debug=True)

servoMin = 125 # Min pulse length out of 4096 , 0.5 servoMax = 575 # Max pulse length out of 4096 , 2.3

def setServoPulse(channel, pulse):

pulseLength = 1000000

# 1,000,000 us per second

pulseLength /= 60

# 60 Hz

print \"%d us per period\" % pulseLength

pulseLength /= 4096

# 12 bits of resolution

print \"%d us per bit\" % pulseLength

pulse *= 1000

pulse /= pulseLength

if(pulse>servoMax): pulse = servoMax

if(pulse

pwm.setPWM(channel, 0, int(pulse))

pwm.setPWMFreq(60)

# Set frequency to 60 Hz pwm.setPWM(0, 0, servoMax)

if __name__ == \'__main__\':

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind((host, port))

s.listen(3)

print \'Server is running on port %d, pre Ctrl-C to terminate it.\' % port

pulse_ud = 1.9

pulse_lr = 1.9

setServoPulse(0,pulse_ud)

setServoPulse(1,pulse_lr)

while True:

clientsock, clientaddr = s.accept()

clientfile = clientsock.makefile(\'rw\', 0)

ctrlinfo = clientfile.readline().strip()

print \'Control info is %s.\\n\' % ctrlinfo

if ctrlinfo == \"up\":

pulse_ud += 0.1

elif ctrlinfo == \"down\":

pulse_ud -= 0.1

elif ctrlinfo == \"left\":

pulse_lr += 0.1

elif ctrlinfo == \"right\":

pulse_lr -= 0.1

else:

print \"ERROR\\n\"

setServoPulse(0,pulse_ud)

setServoPulse(1,pulse_lr)

clientfile.close()

clientsock.close()

2.硬件部分。

对车载座椅控制部分发出的信息的接受、识别、执行部分。 本次试验使用的硬件设备包括:智能手机一部、“树莓派”一台、小舵机两台、舵机驱动板一个、无线网卡一个、杜邦线若干、5V电源一个、无线路由器一个

智能手机

树莓派(外)

树莓派(内)

小舵机

舵机驱动板

无线网卡

杜邦线

5V电源

无线路由器

(四)实验流程及结果

1.打开智能手机上的控制软件。

2.向车载座椅控制台发送信息。(发送信息分别为上、下、左、右) 3.车载座椅控制台接受、识别并执行信息。 4.通过小舵机的动作验证该实验是否成功。(详细见视频)

二、工作进度自评表

本次试验完成。

本次试验计划分为三个阶段。

第一阶段:智能手机部分、车载座椅控制部分和硬件部分的分别完成。本阶段完成。

第二阶段:智能手机部分、车载座椅控制部分和硬件部分的整合阶段。本阶段完成。

第三阶段:车辆座椅控制系统实验的验收调试阶段。本阶段完成。

三、组内人员自评

本次试验打到预期的实验目的。虽然在实验进行过程中遇到了不少的麻烦,但是通过我们成员自身的努力学习掌握了实验所要求的知识。最后实验的成功与组员之间的互相帮助与紧密配合是分不开的。

四、个人学习心得

本人通过此次实验,对于嵌入式系统原理有了更加深层次的了解。对于设计嵌入式系统原理的实验也有了较为高程度的提高。为了以后更进一步的学习并掌握嵌入式系统打下了坚实的一步。对于了解车辆座椅控制的自动化与智能化;了解用户通过智能手机与车载传感器之间的联动;了解车辆作为当今物联网中重要的一个节点都发挥了重要作用。通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。加强本组学生对嵌入式系统原理的更深层次的理解与运用。

嵌入式系统实验

嵌入式系统设计基础总结报告

组成原理实验总结报告

化工原理实验总结报告

嵌入式总结报告

嵌入式系统

嵌入式实验二

嵌入式实验心得体会

嵌入式实验总结

嵌入式实验2

嵌入式系统原理实验总结报告
《嵌入式系统原理实验总结报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档