网站首页    |    公司简介    |    产品展示    |    诚设经销商    |    联系我们     以质为本 科技创新

行业资讯 行业动态 行业标准 行业分析 热点追踪 企业知识 相关资讯 企业荣誉 售后服务

产品分类          更多>>
  棉浆生产线
  离心净化系统
  废纸处理系统
  黑液提取、分离系统
  浆料浓缩、纤维回收系统
  其他专业设备
联系我们           更多>>
公司名称:安丘华铠机械制造有限公司
公司传真传真:0536-4212670
联系人:辛经理
24小时工作手机:18678028562 辛经理
公司关键词:除渣器
      搅拌器
      脱墨槽
客服QQ:欢迎留言,留下手机号给你打去
公司网址:http://xiaoshuo007.com/
公司地址:山东安丘市大城埠
公司邮箱:262318@qq.com
您现在的位置: 安丘市政华环保科技有限公司 >> 黑液过滤机 >> 正文

脱墨槽Android手机重力感应系统遥控智能小车机器人!(视频+源码)

Android手机重力感到体系遥感智能小车呆板人!(视频文件+源码)2011-04-25 12:00话说上次已实现用Android(安卓)手机对于智能小车呆板人举行遥感操作,但是···但是····照旧要用手指头按荧幕·····本人一向懒惰有名,连手指头都不筹算用,怎么办?以是此次利用手机的重力感到体系,用Java开发了1个Android重力感到遥感程序,操笔者只需要转变手机的位置,程序就能把儿机的空间状态转换成指令,发送给智能小车呆板人,从而实现对于其举行遥感,这下连手指头都省了,就差直接用意念控制了,但是这个我是做不出的······手机照旧上次的那个Android手机,开发东西照旧Eclipse ,语言就不用说了,Java。这是视频文件:
底下是手机端开发历程以及源代码:用Eclipse新建1个定名为AccelerometerDemo的Android工程,这就未几说了。然后是职权范围说明,以及之前的同样,这搭再也不累述。如果不声明将没有办法使用手机蓝牙功效。最后打开Activity,新增重力感到遥感智能小车的代码如次:package com.AccelerometerDemo.www;import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.UUID;import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;public class AccelerometerDemo extends Activity implements SensorEventListener{
/** Called when the activity is first created. */
private SensorManager sensorManager;
private MySurfaceView view;
private Object[] accelerometer={
"X轴提速率值:","Y轴提速率值:","Z轴提速率值:",
};private BluetoothAdapter mBluetoothAdapter = null;
private BluetoothSocket btSocket = null;
private OutputStream outStream = null;
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
private static String address = "00:11:03:21:00:43"; // <==要毗连的蓝牙装备MAC地址
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
view=new MySurfaceView(this);
setContentView(view);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();if (mBluetoothAdapter == null) {
Toast.makeText(this, "蓝牙装备不成用,请打开蓝牙!", Toast.LENGTH_LONG).show();
finish();
return;
}
if (!mBluetoothAdapter.isEnabled()) {
Toast.makeText(this, "请打开蓝牙并从头运行程序!", Toast.LENGTH_LONG).show();
finish();
return;}
}
@Override
public void onStart() {super.onStart();}
@Override
protected void onResume(){
super.onResume();
List<Sensor> sensors=sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
if(sensors.size()>0){
sensorManager.registerListener(this, sensors.get(0),SensorManager.SENSOR_DELAY_FASTEST);
}
DisplayToast("正在尝试毗连智能小车,请稍后····");
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);try {btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);} catch (IOException e) {DisplayToast("套接字始于掉败!");
}
DisplayToast("乐成毗连智能小车!可以起头操控了~~~");
mBluetoothAdapter.cancelDiscovery();
try {btSocket.connect();
DisplayToast("毗连乐成建立,数值毗连打开!");
} catch (IOException e) {try {
btSocket.close();} catch (IOException e2) {
DisplayToast("毗连没有建立,没有办法封闭套接字!");
}
}
}

@Override
protected void onPause(){
super.onPause();
sensorManager.unregisterListener(this);
if (outStream != null) {
try {
outStream.flush();
} catch (IOException e) {

}
}
try {
btSocket.close();
} catch (IOException e2) {

DisplayToast("套接字封闭掉败!");
}}
@Override
public void onStop() {super.onStop();}
@Overridepublic void onDestroy() {super.onDestroy();
}@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub

}@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
view.onValueChanged(event.values);
}
public void DisplayToast(String str)
{
Toast toast=Toast.makeText(this, str, Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 220);
toast.show();

}

class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{

private float x,y,z;

public MySurfaceView(Context context){
super(context);
getHolder().addCallback(this);

}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
x=(getWidth())/2;
y=(getHeight())/2;
onValueChanged(new float[3]);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub

}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub

}
@SuppressWarnings("static-access")
void onValueChanged(float[] values){
String message;
byte[] msgBuffer;
z=(int)(2+values[2]/5);
x=(getWidth())/2;
y=(getHeight())/2;
x-=values[0]*10;
y+=values[1]*10;
Canvas canvas=getHolder().lockCanvas();
if(canvas!=null){
Paint paint=new Paint();
Paint paint1=new Paint();
paint1.setAntiAlias(true);
paint1.setColor(Color.RED);
paint1.setTextSize(38);
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
paint.setTextSize(36);
canvas.drawColor(Color.WHITE);
canvas.drawText("BY Liuviking", 50, 50, paint1);
for(int i=0;i<values.length;i++)
{
canvas.drawText(accelerometer[i]+":"+(int)values[i], 0, paint.getTextSize()*(i+1)+90,paint);
}
getHolder().unlockCanvasAndPost(canvas);
}//最近代码的作用是实时显示获取的重力提速率值。
int yaxis=(int)values[1];int xaxis=(int)values[0];//这搭获取Y轴以及X轴的重力提速率值,颠末实验发明用这两个轴的重力提速率比力合理。

int flag=0;



if(xaxis>=3 && yaxis>2 && yaxis<8)
{
flag=4;//xaxis大于3,进步标志为4,车子左转
}
else if(xaxis<=-3 && yaxis>2 && yaxis<8)//xaxis小于-3,进步标志为2,车子右转
{
flag=2;
}

//如果前后标的目的有旌旗灯号:
else if(yaxis>=8 && xaxis>-3 && xaxis<3)
{
flag=3;//zaxis大于9,进步标志为1,车子进步

}
else if(yaxis<=3 && xaxis>-3 && xaxis<3)
{
flag=1;//zaxis小于2,进步标志为3,车子撤退退却

}
else
{
flag=0;
}


switch(flag)
{
case 0:
try {
outStream = btSocket.getOutputStream();} catch (IOException e) {

}
message = "0";msgBuffer = message.getBytes();try {
outStream.write(msgBuffer);} catch (IOException e) {

}
break;
case 1:
try {
outStream = btSocket.getOutputStream();} catch (IOException e) {

}
message = "1";msgBuffer = message.getBytes();try {
outStream.write(msgBuffer);} catch (IOException e) {

}
break;
case 2:
try {
outStream = btSocket.getOutputStream();} catch (IOException e) {

}
message = "2";msgBuffer = message.getBytes();try {
outStream.write(msgBuffer);} catch (IOException e) {

}
break;
case 3:
try {
outStream = btSocket.getOutputStream();} catch (IOException e) {

}
message = "3";msgBuffer = message.getBytes();try {
outStream.write(msgBuffer);} catch (IOException e) {

}
break;
case 4:
try {
outStream = btSocket.getOutputStream();} catch (IOException e) {

}
message = "4";msgBuffer = message.getBytes();try {
outStream.write(msgBuffer);} catch (IOException e) {

}
break;

}


}

}

}生成APK安装包后,直接在握机上举行安装。使用时,先打开手机蓝牙,再运行程序,手时机自动毗连智能小车,待控制界面浮现后,就能路程经过过程转变手机的位置举行遥感了。OK,Android手机重力感到遥感智能小车的手机端开发先容完结~需要源工程的伴侣请到这搭下载:http://download.csdn.net/source/3243000如果对于编程足够认识,可以本身建立工程,直接使用本人博客里的源代码就行,效果是同样的。版权所有:Liuviking,转载请注明来由,O(∩_∩)O谢谢~
种别:智能小车呆板人| 组图:重力盘式浓缩机 | 新增到搜藏 | 分享到i贴吧 | 浏览() | 品题 (0)/**/更多产品: 耐高温陶瓷过滤片 异型孔板 离心风机 椎间盘突出 水囊 玻璃钢电缆保护管 干粉砂浆成套设备 花生烘烤机 砂管道 玻璃钢夹砂管道 英语夏令营 铝质水散热器 玻璃钢管道 塑钢扣板 玻璃钢夹砂管道 地暖 碳纤维电暖器 防护鞋 劳保用品批发 碳纤维地暖 高达模型
  • 上一篇文章:
  • 下一篇文章:
  • 安丘市政华环保科技有限公司 版权所有
    手机:18678028562 传真:0536-4212670 联系人:辛经理
    邮箱:262318@qq.com 地址:山东安丘市大城埠 技术支持:安丘在线