分页: 1 / 1

三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-01-29 16:52
wxgydcg
我以前买的优龙的ARM9开发板,感觉学习起来有点难度,放着没有用,后来感觉为了以后换个好工作还是要学的,就硬着头皮学了。光看书,写程序感觉没劲,所以就想做个有趣的玩意,至少可以动起来,所以就改装了一辆遥控汽车,把开发板塞在里面,有用的接口全部引到汽车外壳上,在做一块转接控制板放里面,现在正在写裸机程序,来控制汽车,改装汽车花了不少时间,没有好工具啊,先发点图片,开发板电源芯片烧了拿去修理了,等修好后一起安装好。
SP_A0167.jpg
完整的外型,还没有装好,外壳还可以。
优龙公司办事真慢,我的开发板坏了,等了两个月才拿回来,明明是电源芯片烧了,维修回来说主芯片坏了要交钱100块,深圳就是出山寨货的地方,质量真不咋样,像这块开发板尺寸就很大,勉强能塞进汽车里,而且设计不怎么合理,外接引脚没有一个脉宽调制引脚,要外接的话还要在板子上飞线,我是第一次买开发板,提醒要买开发板的朋友货比三家,不要急着买。
这就是修好的开发板,以后大家使用开发板的时候,一定要小心电源线,不要贪图方便,万一将12V电源搭到板子上,很可能立马玩完!切记!切记!我就是犯过这种不可原谅的错误。
基本加工完的汽车外壳,顶上那个孔本打算安装一个舵机的,上面在安装一个摄像头或者超声波探头什么的,只因为只有一个舵机留给前轮转向机构了才没有安装,车尾是触摸屏和一些接口。
侧面:有JTAG调试接口,USB接口和网络接口(因为开发板是在太大,汽车空间不够,网络延长线不好连接,弄不好又要飞线了)
内部连线很多,基本上都是接到开发板上的,安顺序接好就行了,没什么技术含量。就是要注意绝缘啊,短路就危险了
里面的线全部接上就是这个样子的,很乱的,等把底盘装好就看不到什么线了,现在只是试试尺寸,看可以放进去把。基本上可以放进去,挤也没有办法了。
现在准备调试软件和自己制作的转接控制板,程序用ADS写的,通过串口下载到开发板炙行,先调试了前轮的转向舵机,正常可以受程序控制,改变角度位置,这样就行了,下面还有四个转向灯,以及后轮的驱动电机的速度及转向控制调试,这些外设都是自己改装的,硬件都要自己弄,开发板上的设备以前就是好的,暂时不要测试。
硬件连接好以后,我感觉难的就是写软件了,我打算写一个图形用户界面的裸机程序,不要操作系统的支持,把ARM9当单片机使用(可能有点浪费),但这样可以加深对ARM9硬件机构的认识,学会直接和寄存器打交道,现在板上的串行接口,脉宽调制接口,LCD接口,触摸屏和A/D接口,数字输入输出端口,看门狗模块,实时时钟模块的初始化程序基本写好了,可以访问使用了,还有一些外设还没弄好,比如USB接口,数字音频接口,SD卡接口,FLASH访问接口,DMA模块等的结构还没有弄明白,还是有点难度的。
程序编写方面的困难:引导加载程序的编写,因为板子上有现成的,要搞清楚原理,自己写一个,系统启动的整个过程要弄清楚。如何将自己写的裸机程序固化到FLASH中,如何将FLASH中的程序拷贝到RAM中,从哪里开始执行等等一些问题。
还有就是中断程序的编写(现在程序没有使用中断),中断程序如何拷贝到RAM中,中断时如何跳转进去等等。
经过几个月的摸索,基本上完工了,程序写好了,主要用分散装载的技术,带图形用户界面,实际上还是裸机程序,软件没有操作系统的支持,现在使用触摸屏可以触控汽车了,我把软件挂上来,大家可以看看。我是尽量用简单的结构和数据来写程序的。

以下是我上传的视频,比我敲键盘有用多了,大家可以先看看
http://player.youku.com/player.php/sid/ ... NzYw/v.swf

程序压缩后2M左右,传上来大家看看。



硬件基本上定下来了,以后打算在车顶装一个超声波测距模块,就可以探测障碍物了,不过要从开发板上找两个数字引脚。优龙开发板真搓,搞了一大堆按钮在开发板上,一点用没有,还占了好多外部中断IO口。
控制前轮的舵机是用定时器0实现的,工作在自动重装模式,产生50HZ PWM波形,占空比可调,对应舵机转轴的位置。改变占空比就改变前轮转向位置,后轮的PWM信号由定时器1产生,频率20000HZ,
后轮的转动方向由一个普通IO引脚控制,四个车灯也是。
实际上开发板上还有好多资源没有使用,像USB设备和主机接口,网络接口等,SD卡接口等,暂时还没有使用到,图形和声音是有了。
程序方面,我现在的程序是烧在NAND-FLASH中的,NOR-FLASH 中是原来优龙的BIOS没有动,从NAND FLASH 启动就进入我自己写的程序,从NOR FLASH 启动就进入WIN CE了。我的程序和WIN CE都是存在NAND FLASH中。
控制程序分两个运行域和装载域,一个运行域是2410芯片内部SRAM的0X00000000开始,还有一个运行域是SDRAM开始地址,在这块开发板中为0X30000000; 一个装载域从NAND FLASH 的0X00000000开始,另一个是从NAND FLASH 的256K处开始。因为我烧写程序是使用NOR FLASH 中的BIOS,它能从这几个地址开始烧程序。程序中已经包含了基本的引导装载功能,所有不用借助其他软件就可以自己启动了。
下部准备移植LINUX操作系统上去,启动能直接进入应用程序。

Re: 三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-01-29 17:06
t3swing
不错不错,应该花了不少时间吧 ,支持lz动手
lz有空把制作过程写成文档,代码整理一下发上来 瞧瞧哈

Re: 三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-01-29 19:04
delectate
niubitily

Re: 三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-01-29 19:44
charleskao
:em05 顶就一个字,我只说一次。 :em09

Re: 三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-02-03 10:56
qlhn
问一句,使的什么CPU 啊?

Re: 三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-03-02 19:10
wangbo351
s3c2410.....arm 9 。。。。三星的

Re: 三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-03-02 19:16
tenzu
走召弓虽口阿!

Re: 三星S3C2410裸机触控汽车,准备弄成Linux系统的,那才是爷们!

发表于 : 2010-04-23 1:24
速腾1994
走召弓虽口阿!