新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式Linux操作系統的可視化安全倒車系統

        基于嵌入式Linux操作系統的可視化安全倒車系統

        作者: 時間:2010-11-02 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/151387.htm

          本設計是通過MiniGui加載jpeg來實現LCD實時顯示USB攝像頭采集到圖像的。在編譯程序時,加上了jpeg庫的支持。編程的思路就是不斷地從攝像頭采集圖像并存儲在/tmp/l.jpg中。在圖形用戶界面支持MiniGUI中,通過loadbitmap函數來加載圖像,而圖像加載后不會自動更新,不能根據1.jpg的改變自動變化。因此,在程序中要設定一個定時器,每隔100 ms刷新屏幕,基本上實現了實時更新。

          3.2 超聲波測距驅動程序的設計

          超聲波發生程序的作用是由PWM定時計數器產生一個超聲波信號頻率約40 kHz的方波。采用Timer0,同時把Timerl打開進行計時。超聲波測距器主程序利用外部中斷檢測返回的超聲波信號,一旦發現立即進入中斷程序。進入該中斷后立即關閉Timerl停止計時,并將測距成功標志字賦值1。各程序流程如圖6~圖8所示。

          

        程序流程

          當主程序檢測到接收成功的標志位后,按下式計算即可得到車尾與障礙物之間的距離(設計時取20℃時的聲速C為344 m/s):

          S=(C·T1)/2

          其中,T1為計數器Timerl的計數值。

          該部分程序可設計為下字符設備驅動程序。要使用提供一個設備驅動接口函數struct file_operations的數據結構,來實現超聲波傳感器設備的打開、讀寫、釋放和控制。定時器和外部中斷相關寄存器的初始化和參數的設定都是在open()接口函數中完成的。在此設備驅動程序中定義的。file_operations的數據結構為:

          

          S3C2440_sonar_open()函數用于打開的設備。S3C2440_sonar_rcad()和S3C2440_sonar_write()函數用于讀寫設備。S3C2440_sonar_re-lease()函數完成中斷的釋放。S3C2440_sonar_ioctl()函數用于控制設備中定時中斷和測距值,由copy_to_user()函數和put_user()函數來實現數據傳遞,在應用程序下打開設備,實現內核態與用戶態之間的數據傳遞。模塊初始化函數S3C2440_sonar_init()實現設備的初始化、中斷初始化及處理、設備注冊等。static void S3C2440_sonar_exit()用于模塊卸載時中斷停止、資源的釋放等。

          3.3 語音報警程序設計

          當所測距離值小于閾值時,由S3C2440發控制命令給XF-S3011,啟動語音模塊。組成一個語音合成命令幀的部分代碼如下:

          命令合成完畢后,就可以發送給XF-S3011模塊了。在Linux中先打開XF-S3011設備文件,然后將此命令幀寫入該文件,最后關閉設備文件。

          結語

          本文采用Linux和三星公司S3C2440微處理器設計的可視與語音報警為一體的系統,具有較高的實用價值。在顯示視頻圖像處理的過程中,能夠通過超聲波對車尾與障礙物之間進行測距,當測距值小于預設定的距離時會有語音對駕駛員進行報警提示。經實驗驗證,該系統運行穩定,能讓駕駛員準確地把握車后路況,提高了性。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 太和县| 马公市| 西城区| 台江县| 阆中市| 溧水县| 关岭| 彩票| 怀安县| 湖口县| 阳西县| 乐至县| 吴忠市| 海原县| 日土县| 万源市| 当雄县| 临桂县| 济阳县| 鹰潭市| 屯留县| 柏乡县| 尖扎县| 独山县| 沈丘县| 视频| 聊城市| 阳高县| 广水市| 军事| 濉溪县| 洪泽县| 安宁市| 买车| 诸城市| 邹平县| 大渡口区| 宜川县| 崇礼县| 鞍山市| 百色市|