|
2410开发板买了好多年,没事的时候用它来学习点新知识,从最早的裸奔汇编小程序,C语言程序,到后来的Linux操作系统。一晃好些年下来了。折腾到现在也该完成了,写点东西留点记录。
遥控汽车硬件概述:
控制主板:S3C2410(ARM9)开发板
遥控终端:三星GT-I9220安卓智能手机,内置姿态传感器
前轮转向控制:航模用舵机
后轮驱动:L298H桥驱动芯片+直流电机
WIFI无线接口:RT73USB接口无线网卡
音乐播放:内置功放模块及扬声器
电池:9.6V镍氢电池组
遥控汽车软件概述:
小车端:引导程序U-BOOT-1.2.0
Linux操作系统,内核版本2.6.24
硬件驱动程序:普通IO口,ADC,PWM,中断驱动,RT73USB无线网卡驱动
应用程序:主要是UDP套接字通信程序。
手机端:安卓4.04版本
编程环境使用eclipse,JAVA语言,也是基于UDP套接字通信程序。
主要实现功能:
手机晃动控制小车前进,后退,左转,右转,速度,转向和手机角度成比例
手机按钮控制小车前灯后灯打开与关闭
手机按钮控制小车循环播放歌曲。
手机显示小车电池电压。
手机显示小车后轮脉冲计数。
先看看视频,一手抓GT-I9200手机遥控,一手抓N9拍摄,9200太大,一只手拿不住,视频拍横过来了:
320*240的触摸屏,以前裸机程序使用触摸的方式控制汽车,不太靠谱。
后来改成USB无线网卡控制。右边带天线的就是USB接口无线网卡
调试程序的时候使用网线连接计算机,本打算再加个USB接口的摄像头。
通过手机显示实时视频,因为内核版本有点低,没有移植成功。
小车是超市买的遥控汽车改装的,后面电机使用L289驱动,2410产生PWM信号
及方向信号,右后轮有几个小磁铁,旁边有霍尔器件,检测后轮转速及距离。
前轮是使用舵机控制转向,2410产生控制信号。还要提供+5V电源
焊接的L298电机驱动板,+5V稳压模块。以及ULN2003驱动前后车灯,输入电源
为镍氢电池组,电池电压也再这里通过电阻分压后接到开发板,做AD转换。
开发板有音频输出,加了块功放板及2个喇叭,可以播放波形文件的歌曲。
线接的挺乱,关键是不能短路,烧过一片2410的
开发板上能用的接口基本都连接到外壳上面了。RS-232,RJ-45,USB,JTAG,SD,LCD,复位,电源开关等。使用方便,不用拆外壳了。
工作状态,汽车端与手机端要提供无线路由器收发数据,在家或办公室遥控没有什么问题。
这辆车陆陆续续折腾了好多年,现在总算结束了。2410ARM9处理器现在已算低端处理器了,ARM11已经出来了,性能更强,但对与这个遥控汽车来说2410绰绰有余,200MHZ主频,64M内存。内核与应用程序总共才占用十多兆内存。NAND FLASH 64M,用了一半左右。接口也很丰富。是学习ARM处理器编程及嵌入式Linux操作系统编程开发很好的载体。Linux系统博大精深, 俺顶多也算入门,好多东西不会,也是通过网络到处搜索。有兴趣才会耐心去寻找答案。
手机端控制程序界面,安卓系统的程序。安卓手机都可以运行,可能不同分辨率显示会有问题。
|
|