




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
成績:成績:電子與信息工程學(xué)院《嵌入式體系結(jié)構(gòu)與編程》項目設(shè)計報告書學(xué)號 同組成員 指導(dǎo)教師2015年12月自我總結(jié):自我總結(jié):評語:老師簽名:
目錄評語:老師簽名:目錄 1第1章引言 3第2章工具軟件與技術(shù)基礎(chǔ) 42.1智能家居系統(tǒng)的開發(fā)環(huán)境和工具 42.2智能家居系統(tǒng)的技術(shù)路線 42.3設(shè)備連接 5第3章系統(tǒng)總體設(shè)計 63.1智能家居系統(tǒng)需求分析 63.2開發(fā)框架 63.3具體實現(xiàn)設(shè)計 73.3.1如何點亮LED燈 73.3.2Linux內(nèi)核編譯及配置 83.3.3內(nèi)核模塊編程 9第4章界面設(shè)計 114.1智能家居系統(tǒng)界面設(shè)計 11第5章系統(tǒng)實現(xiàn) 125.1Android客戶端 125.2Ubuntu服務(wù)端 165.3Ubuntu客戶端 185.4Linux內(nèi)核驅(qū)動 205.5LED裸奔代碼 21第6章結(jié)束語 23
第1章引言當(dāng)今社會,隨著生活質(zhì)量的日益改善和生活節(jié)奏的不斷加快,人們的工作、生活日益信息化。信息化社會改變了人們的生活方式與工作習(xí)慣,使得家居系統(tǒng)的智能化成為一種消費需求,智能家居系統(tǒng)越來越被重視。因此,將家庭中各種通信設(shè)備、家用電器和家庭安保裝置通過家居控制系統(tǒng)進行整合,并進行遠程控制和管理,已經(jīng)成為近年來一個熱門研究課題。迄今為止,智能家居還沒有一個普遍認同的統(tǒng)一的定義。通常智能家居系統(tǒng)利用先進的計算機和網(wǎng)絡(luò)通訊技術(shù)將與家居生活有關(guān)的各種各樣的子系統(tǒng),通過特定的網(wǎng)絡(luò)有機地結(jié)合在一起,通過科學(xué)管理,讓家居生活更加舒適、有效、安全和節(jié)能。以住宅為平臺,兼?zhèn)浣ㄖ?、網(wǎng)絡(luò)通信、信息家電、設(shè)備自動化,集系統(tǒng)、結(jié)構(gòu)、服務(wù)、管理、控制為一體的高效、舒適、安全、便利、環(huán)保的居住環(huán)境。智能家居包含智能照明、電動窗簾、背景音樂、安防報警、樓宇對講、遠程控制等方面。傳統(tǒng)的家居智能控制系統(tǒng)一般采用有線方式來組建,如同軸電纜、USB、CAN總線等。但有線網(wǎng)絡(luò)具有布線麻煩,可擴展性差等固有的缺點,限制了有線網(wǎng)絡(luò)技術(shù)在智能家居系統(tǒng)中的發(fā)展。因此,基于物聯(lián)網(wǎng),將無線網(wǎng)絡(luò)技術(shù)應(yīng)用于家庭網(wǎng)絡(luò)己成為大勢所趨。這不僅僅因為無線網(wǎng)絡(luò)具有更大的靈活性、流動性,省去了布線的麻煩,更重要的是它符合家居控制網(wǎng)絡(luò)的通訊特點。無線家居網(wǎng)絡(luò)將人們生活與工作的廣袤空間濃縮于人類的雙手可以掌控的距離。此次我們圍繞基于網(wǎng)絡(luò)的智能家居系統(tǒng)開發(fā),簡單的實現(xiàn)了使用網(wǎng)絡(luò)對嵌入式設(shè)備的控制。
第2章工具軟件與技術(shù)基礎(chǔ)2.1智能家居系統(tǒng)的開發(fā)環(huán)境和工具智能家居系統(tǒng)的開發(fā)工具主要是:Ubuntu系統(tǒng)、putty、Eclipse。Ubuntu(烏班圖)是一個以桌面應(yīng)用為主的基于Linux內(nèi)核開發(fā)的操作系統(tǒng),其名稱來自非洲南部祖魯語或豪薩語的“ubuntu”一詞,意思是“人性”、“我的存在是因為大家的存在”,是非洲傳統(tǒng)的一種價值觀,類似華人社會的“仁愛”思想。Ubuntu基于Debian發(fā)行版和GNOME桌面環(huán)境,而從11.04版起,Ubuntu發(fā)行版放棄了Gnome桌面環(huán)境,改為Unity,與Debian的不同在于它每6個月會發(fā)布一個新版本。Ubuntu的目標在于為一般用戶提供一個最新的、同時又相當(dāng)穩(wěn)定的主要由自由軟件構(gòu)建而成的操作系統(tǒng)。Ubuntu具有龐大的社區(qū)力量,用戶可以方便地從社區(qū)獲得幫助。2013年1月3日,Ubuntu正式發(fā)布面向智能手機的移動操作系統(tǒng)。ubuntu基于linux的免費開源桌面PC操作系統(tǒng),十分契合英特爾的超極本定位,支持x86、64位和ppc架構(gòu)。putty是一個Telnet、SSH、rlogin、純TCP以及串行接口連接軟件。較早的版本僅支持Windows平臺,在最近的版本中開始支持各類Unix平臺,并打算移植至MacOSX上。除了官方版本外,有許多第三方的團體或個人將putty移植到其他平臺上,像是以Symbian為基礎(chǔ)的移動電話。putty為一開放源代碼軟件,主要由SimonTatham維護,使用MITlicence授權(quán)。隨著Linux在服務(wù)器端應(yīng)用的普及,Linux系統(tǒng)管理越來越依賴于遠程。在各種遠程登錄工具中,Putty是出色的工具之一。putty是一個免費的、Windows32平臺下的telnet、rlogin和ssh客戶端,但是功能絲毫不遜色于商業(yè)的telnet類工具。Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。使用Eclipse添加AndroidSDK和ADT后可進行Android項目的編寫。2.2智能家居系統(tǒng)的技術(shù)路線智能家居系統(tǒng)采用C-S模式,客戶端基于Android開發(fā),服務(wù)端基于C開發(fā),服務(wù)端與客戶端采用Socket網(wǎng)絡(luò)編程來進行通訊。服務(wù)端主要對開發(fā)板上各傳感器的數(shù)據(jù)進行處理、響應(yīng)客戶端的各種請求,服務(wù)端主要對從服務(wù)器獲取的信息進行處理展示,同時給服務(wù)器發(fā)送控制信息,進行從而實現(xiàn)對開發(fā)板上某些功能部件的的控制。主要用到的技術(shù)是:JavaSocket編程、CSocket編程、Ubuntu下Vim編輯器的使用、Linux網(wǎng)絡(luò)編程、相關(guān)驅(qū)動的開發(fā)、putty串口連接開發(fā)板、TFTP(簡單文件傳輸協(xié)議)進行文件下載。2.3設(shè)備連接開發(fā)板的串口與計算機串口使用串口線進行連接,將開發(fā)板使用網(wǎng)線接入局域網(wǎng),再將當(dāng)前計算機接入當(dāng)前開發(fā)板的所在的局域網(wǎng),接通開發(fā)板電源,同時將開發(fā)板、計算機中Windows系統(tǒng)和Ubuntu系統(tǒng)下三者的IP設(shè)置在同一網(wǎng)段,設(shè)置開發(fā)板、Windows和Ubuntu的網(wǎng)關(guān)為同一網(wǎng)關(guān),此時開發(fā)板的服務(wù)端是Ubuntu。
第3章系統(tǒng)總體設(shè)計3.1智能家居系統(tǒng)需求分析本系統(tǒng)設(shè)計的目的是向用戶提供一個通過網(wǎng)絡(luò)控制智能家居設(shè)備的系統(tǒng)。通過Socket編程進行客戶端和服務(wù)端的通訊,實現(xiàn)對智能家居設(shè)備的控制。隨著電子技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,人們的生活方式日益發(fā)生著變化,人們對于生活有了更高層次的追求。大家不再因擁有一個可以居住的空間而感到滿足,更希望自己的家庭生活是便利的、舒適的、安全的,并且還兼具人性化、智能化,從而產(chǎn)生了智能家居系統(tǒng)[1]。與普通的家居相比,智能家居不僅具有一般的居住功能,也能提供舒適安全、高品位且宜人的家庭生活空間,還能提供全方位的信息交換功能,幫助家庭與外部保持信息交流暢通,優(yōu)化人們的生活方式,幫助人們有效安排時間,增強家居生活的安全感,節(jié)約能源。因此,智能家居必然成為今后日常生活的一種趨勢。而對智能家居系統(tǒng)的需求也將隨著人們對生活品質(zhì)的追求而發(fā)生著變化,因此,智能家居系統(tǒng)也擁有著良好的發(fā)展前景。3.2開發(fā)框架基本的嵌入式產(chǎn)品框架:開發(fā)模式:實現(xiàn)過程:3.3具體實現(xiàn)設(shè)計3.3.1如何點亮LED燈1)原理 1.查看S5PC100開發(fā)手冊,找到4個LED燈的對應(yīng)引腳GPG3_0/3; 2.要點亮LED燈,必須在LED兩端有正向壓降,即GPG3_0(LED4),GPG3_1(LED1),GPG3_2(LED2),GPG3_3(LED3)要置為高電平; 3.控制寄存器:GPG3CON設(shè)置為輸出引腳(GPG3CON|=0x1111<<0); 4.數(shù)據(jù)寄存器:GPG3DAT設(shè)置為高電平(GPG3DAT|=0xf<<0);2)運行裸奔代碼 1.使用C語言編譯點亮LED燈的邏輯代碼; 2.設(shè)置好開發(fā)板上的參數(shù) --serveripsetserverip+服務(wù)器ip地址 --ipaddrsetipaddr+開發(fā)板ip --gatewayipsetgatewayip+網(wǎng)關(guān)測試開發(fā)板與服務(wù)器的連通性 ping+服務(wù)器ip地址 3.設(shè)置啟動方式setbootcmdtftp0x20008000zImage\;bootm0x20008000(這里的0x20008000是寄存器的地址,我們需要把在Ubuntu下編譯好的文件下載到這個寄存器)go0x20008000回車(LED燈亮)3.3.2Linux內(nèi)核編譯及配置3.3.3內(nèi)核模塊編程1)先進入Linux內(nèi)核所在目錄,并調(diào)用topMakefile生成test.o,運行MODPOST生成臨時文件test.mod.c,然后根據(jù)test.mod.c生成test.mod.o(產(chǎn)生了Linux所采用的可執(zhí)行/可鏈接的ELF文件格式)最后,將test.o和test.mod.o鏈接生成test.ko2)模塊的安裝1.makemodules_install 命令把所有的.ko文件拷出來放到文件系統(tǒng)的 /lib/modules/-liy/kernel/下的相應(yīng)目錄(自動創(chuàng)建目錄)2.指定安裝系統(tǒng)的路徑放到我們開發(fā)板的根文件系統(tǒng) makemodules_installINSTALL_MOD_PATH=/nfs/rootfs3)注冊字符設(shè)備驅(qū)動 linux/fs.h staticinlineintregister_chrdev(unsignedintmajor,constchar*name, conststructfile_operations*fops)1、major主設(shè)備號a)內(nèi)核主設(shè)備號文檔. Documentation/device.txt 240-254charLOCAL/EXPERIMENTALUSEb)cat/proc/devicesc)建立設(shè)備文件:mknod/dev/testc2410 crw-r--r--100241,0Nov172013/dev/test2、name名字 name:設(shè)備驅(qū)動名,一看到char*這種類型,很大可能用cat/proc/devices可以看到.3、fops驅(qū)動接口集合 fops:指針類型,一般情況下如果形參是指針,那么很大可能它會在調(diào)用函數(shù)中被初始化4)編譯驅(qū)動a.把程序拷貝到虛擬機b.編譯makemake之后生成一個可執(zhí)行文件led_driver.ko
c.arm-none-linux-gnueabi-gcc-oappapp.c程序執(zhí)行:a.插入和拔出驅(qū)動模塊#insmodled_driver.ko#mknod/dev/ledc2490#./apponled燈亮#./appoffled燈滅
第4章界面設(shè)計4.1智能家居系統(tǒng)界面設(shè)計此頁面為系統(tǒng)首頁,已注冊過的用戶輸入自己的用戶名和密碼登錄智能家居系統(tǒng)。登錄后即可將以設(shè)置的命令自動發(fā)送至服務(wù)器,服務(wù)器接受命令后執(zhí)行相關(guān)代碼,即可完成對開發(fā)板的控制。
第5章系統(tǒng)實現(xiàn)本系統(tǒng)設(shè)計的目的是向用戶提供一個使用AndroidAPP客戶端并通過網(wǎng)絡(luò)控制智能家居設(shè)備的系統(tǒng)。原理是基于Socket編程進行客戶端和服務(wù)端的通訊,實現(xiàn)對智能家居設(shè)備的控制。5.1Android客戶端Android客戶端用Eclipse進行編程,使用Java語言,負責(zé)用戶登錄和命令發(fā)送,具體實現(xiàn)代碼如下:(已省略源碼中的導(dǎo)包代碼)publicclassMainActivityextendsActivity{ privateEditTexteditText_name; privateEditTexteditText_pwd; privateButtonbutton_login;// privateSocketclientSocket; //用來處理子線程發(fā)送過來的消息的 privateHandlermHandler=newHandler(){ //處理消息 publicvoidhandleMessage(android.os.Messagemsg){ switch(msg.what){ case0x11: //獲取消息中的內(nèi)容 Stringbuffer=(String)msg.obj; //展示在UI界面上 Toast.makeText(MainActivity.this,buffer,Toast.LENGTH_SHORT).show(); break; default: break; } }; };@Override //當(dāng)我們運行應(yīng)用程序的時候,就會自動的調(diào)用這個方法 protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);//指定這個Activity所使用的布局 setContentView(R.layout.activity_main);//1.獲取布局中的控件,根據(jù)控件id來獲取 editText_name=(EditText)findViewById(R.id.editText1); editText_pwd=(EditText)findViewById(R.id.editText2); button_login=(Button)findViewById(R.id.button1);//2.為按鈕設(shè)置監(jiān)聽器,用來監(jiān)聽用戶的點擊事件 button_login.setOnClickListener(newOnClickListener(){@Override //當(dāng)用戶點擊按鈕的時候,會自動的調(diào)用這個方法 publicvoidonClick(Viewv){ //1.獲取用戶名,密碼 Stringname=editText_name.getText().toString(); Stringpwd=editText_pwd.getText().toString();//2.與服務(wù)端建立連接,就需要創(chuàng)建子線程,并啟動子線程 newThread(newConnectionThread(name,pwd)).start();} }); }//創(chuàng)建子線程 publicclassConnectionThreadimplementsRunnable{ privateStringname; privateStringpwd; //構(gòu)造方法 publicConnectionThread(Stringname,Stringpwd){ =name; this.pwd=pwd; } @Override //線程的執(zhí)行體 publicvoidrun(){ try{ //1.與服務(wù)器建立連接 System.out.println("與服務(wù)器建立連接-->>"); clientSocket=newSocket(); clientSocket.connect(newInetSocketAddress("",7775)); //2.獲取網(wǎng)絡(luò)的輸入,輸出流 OutputStreamoutputStream=clientSocket.getOutputStream(); InputStreaminputStream=clientSocket.getInputStream(); //將這個輸入流轉(zhuǎn)換為緩沖流 BufferedReaderbufferedReader=newBufferedReader(newInputStreamReader(inputStream)); //3.接受服務(wù)端的信息 readMsgServer(bufferedReader); //4.發(fā)送用戶名和密碼 writeMsgServer(outputStream,name,pwd); //5.接收服務(wù)端發(fā)送過來的驗證信息 readMsgServer(bufferedReader); //writeMsgServer(outputStream,"on"); outputStream.write("on".getBytes(),0,"on".length()); outputStream.flush(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } //接收服務(wù)端的信息 publicvoidreadMsgServer(BufferedReaderbufferedReader){ Stringline=""; Stringbuffer=""; try{ //獲取服務(wù)端的數(shù)據(jù) while((line=bufferedReader.readLine())!=null){ if(line.equals("start")){ continue; }elseif(line.equals("end")){ break; }else{ //真正的數(shù)據(jù) buffer=line+buffer; //System.out.println(">>"+buffer.toString()); } } //發(fā)送消息給UI主線程,并展示在UI界面上 Messagemessage=Message.obtain(); message.what=0x11; //消息的類型 message.obj=buffer.toString(); //消息的內(nèi)容 //發(fā)送消息 mHandler.sendMessage(message); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //發(fā)送消息給服務(wù)端 publicvoidwriteMsgServer(OutputStreamoutputStream,Stringname,Stringpwd){ try{ //發(fā)送用戶名 outputStream.write(name.getBytes(),0,name.length()); outputStream.flush(); //發(fā)送密碼 outputStream.write(pwd.getBytes(),0,pwd.length()); outputStream.flush(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}5.2Ubuntu服務(wù)端Ubuntu服務(wù)端用與接受客戶端發(fā)送的命令,并執(zhí)行相應(yīng)代碼,完成客戶端對開發(fā)板的控制,使用C語言進行編寫,具體實現(xiàn)代碼如下:(已省略源碼中頭文件代碼)void*do_client(void*arg);intmain(void){intret; intservfd;/*1.建立socket套接字*/ servfd=socket(AF_INET,SOCK_STREAM,0); if(-1==servfd) {perror("socket"); return-1; }/*填充服務(wù)器地址和端口*/ structsockaddr_inservaddr; memset(&servaddr,0,sizeof(servaddr)); servaddr.sin_family=AF_INET; //ipv4 servaddr.sin_port=htons(PORT);//端口號 servaddr.sin_addr.s_addr=inet_addr(SERVIP); //服務(wù)器地址 socklen_tslen=sizeof(servaddr); /*2.bind綁定服務(wù)器的ip地址,端口號*/ ret=bind(servfd,(structsockaddr*)&servaddr,slen); if(-1==ret) {perror("bind"); return-1; } /*3.listen主動監(jiān)聽客戶端,客戶端連接最多為100*/ ret=listen(servfd,100); if(-1==ret) {perror("listen"); return-1; }intnewfd; pthread_ttid; while(1) {/*4.accept接受客戶端,并且為新連接的客戶端 分配一個新的文件描述符去操作它*/ newfd=accept(servfd,NULL,NULL); if(newfd<0) {continue;} printf("==>%dconnectsuccess...\n",newfd); /*為每個客戶創(chuàng)建一個線程去維護它*/ ret=pthread_create(&tid,NULL,do_client,&newfd); if(0!=ret) {perror("pthread_create"); return-1; } pthread_detach(tid);} close(servfd);return0;}void*do_client(void*arg){intnewfd=*(int*)arg; charbuf[BUFSZ]={0}; intret; char*str="haveatryandyouwillgofar";while(1) {/*5.通信*/ memset(buf,0,sizeof(buf)); ret=read(newfd,buf,sizeof(buf)-1); if(ret>0) {printf("readdata:%s\n",buf); /*發(fā)送數(shù)據(jù)給客戶端*/ write(newfd,str,strlen(str)); }}pthread_exit(NULL);}5.3Ubuntu客戶端Ubuntu客戶端用與項目初期,Android客戶端尚未開發(fā)時,測試服務(wù)端接所編寫的基于C語言的Ubuntu客戶端,具體實現(xiàn)代碼如下:(已省略源碼中頭文件代碼)intmain(void){ intclifd; intret; charbuf[BUFSZ];/*1.建立socket套接字*/ clifd=socket(AF_INET,SOCK_STREAM,0); if(-1==clifd) {perror("socket"); return-1; }/*填充服務(wù)器地址和端口*/ structsockaddr_inservaddr; memset(&servaddr,0,sizeof(servaddr)); servaddr.sin_family=AF_INET; //ipv4 servaddr.sin_port=htons(PORT);//端口號 servaddr.sin_addr.s_addr=inet_addr(SERVIP); //服務(wù)器地址 socklen_tslen=sizeof(servaddr); /*2.conenct服務(wù)器*/ ret=connect(clifd,(structsockaddr*)&servaddr,slen); if(-1==ret) {perror("connect"); return-1; } structpollfdpfd[2]; pfd[0].fd=0; pfd[0].events=POLLIN;//不阻塞的讀pfd[1].fd=clifd; pfd[1].events=POLLIN;//不阻塞的讀/*3.通信*/ while(1) {ret=poll(pfd,2,-1); if(ret>0) {//至少有一個文件描述符返回 if(pfd[0].revents==POLLIN) {/*從終端讀取數(shù)據(jù)*/ memset(buf,0,sizeof(buf)); ret=read(0,buf,sizeof(buf)-1); if(ret>0) {write(clifd,buf,ret);} } if(pfd[1].revents==POLLIN) {/*服務(wù)器接收數(shù)據(jù)*/ memset(buf,0,sizeof(buf)); ret=read(clifd,buf,sizeof(buf)-1); if(ret>0) {printf("serversay:%s\n",buf);} } } else {/*錯誤或者超時*/ break; } } close(clifd);return0;}5.4Linux內(nèi)核驅(qū)動intmain(intargc,char**argv){ intfd; if(argc<2) { printf("Usage:on/off\n"); return-1; } fd=open("/dev/led",O_RDWR); if(fd<0) { perror("open"); return-1; } if(!strncasecmp("on",argv[1],2)) ioctl(fd,LED_ON); elseif(!strncasecmp("off",argv[1],3)) ioctl(fd,LED_OFF); return0;}5.5LED裸奔代碼LED裸奔代碼用于控制CPU引腳電壓,從而間接控制LED的點亮與熄滅,具體實現(xiàn)代碼如下:(已省略源碼中的頭文件)#defineGPG3CON(*(volatileunsignedlong*)0xE03001C0)#defineGPG3DAT(*(volatileunsignedlong*)0xE03001C4)intmain(intargc,char**argv){led_init(); led_flow_water(); return0;}voidled_init(void){/*設(shè)置寄存器,把[15-0]位清零*/ GPG3CON&=~(0xffff<<0);/*把led1,led2GPJ2CON引腳設(shè)置為輸出*/ GPG3CON|=(0x1111<<0);}/*點亮所有l(wèi)ed燈*/voidled_on(void){/*把相應(yīng)的數(shù)據(jù)寄存器GPJ2DAT位設(shè)置為高電平*/ GPG3DAT|=0xf<<0;return0;}/*關(guān)閉所有l(wèi)ed燈*/voidled_off(void){/*把相應(yīng)的數(shù)據(jù)寄存器GPJ2DAT位設(shè)置為低電平*/ GPG3DAT&=~(0xf<<0); return0;}/*實現(xiàn)流水燈*/voidled_flow_water(void){/*把相應(yīng)的數(shù)據(jù)寄存器GPJ2DAT位設(shè)置為高電平*/ unsignedinti=0; while(1) {GPG3DAT|=(1<<i); i++;if(4==i) {i=0;} mydelay(500000); led_off(); }}/*自己實現(xiàn)延時處理*/voidmydelay(unsignedintn){inti;for(i=0;i<n;i++);}
第6章結(jié)束語嵌入式產(chǎn)品開發(fā)這個行業(yè)雖然由來已久,我們生活中有很多產(chǎn)品也是嵌入式產(chǎn)品,但是可能由于這個行業(yè)的準入門檻比較高,身邊從事這方面工作的比較少,以至于對于嵌入式產(chǎn)品開發(fā)這一個概念卻不是很了解,不知道什么叫嵌入式產(chǎn)品開發(fā),不知道如何來開發(fā)。通過這一次的實際項目設(shè)計之后,對這個行業(yè)有了一定的理解,在開發(fā)過程中受益匪淺、體會頗深。嵌入式開發(fā)對個人的軟硬件均有一定的的要求,而硬件部分恰恰是一個比較枯燥無味的東西,平時涉及的也比較少,此次實驗雖然對硬件知識的要求比較低,但是又要通過軟件來控制,所以在學(xué)習(xí)過程中就更加的困難。對于控制硬件的軟件部分雖然簡單,但是由于涉及到對硬件內(nèi)存的操作,使得難度加大。在C-S開發(fā)過程中,服務(wù)端跟客戶端是基于Socket網(wǎng)絡(luò)編程進行通訊,因為在平時編程過程中疏于使用,所以在軟件開發(fā)的過程中也遇到了不少的困難。正是因為這些原因使得,使得我們在開發(fā)智能家居系統(tǒng)的時候配到了不少的麻煩。一開始的一無所知,在指導(dǎo)老師的耐心講解以及伴隨著自己在實際操作中的好奇,讓我對嵌入式產(chǎn)品開發(fā)有了一定的了解。在本次實驗中,雖然遇到了不少的困難,但是更多的是學(xué)到了知識;學(xué)會了如何進行嵌入式產(chǎn)品的開發(fā);學(xué)到了如何去查找問題,思考問題產(chǎn)生的原因,解決問題;團隊之間如何合作使得效率的最大化。也為以后的工作積累了相關(guān)的經(jīng)驗。基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學(xué)生單片機應(yīng)用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設(shè)計基于單片機的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設(shè)計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機的膛壁溫度報警系統(tǒng)設(shè)計基于AVR單片機的低壓無功補償控制器的設(shè)計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機的疊圖機研究與教學(xué)方法實踐基于單片機嵌入式Web服務(wù)器技術(shù)的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學(xué)實驗中的應(yīng)用研究基于單片機系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設(shè)計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機的μC/OS-Ⅱ的研究基于單片機的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機與Internet互聯(lián)的研究與實現(xiàn)變頻調(diào)速液壓電梯單片機控制器的研究HYPERLINK"/detail.htm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 度校企合作合同書(三):人才培養(yǎng)與交流
- 兒童健康食品供應(yīng)合同
- 醫(yī)療中心服務(wù)合同樣本
- 環(huán)保工程項目內(nèi)部承包合同范本
- 北京市全日制用工勞動合同模板
- 標準版租賃與購銷合同范本
- 雙方合作經(jīng)營合同示范文本
- 城市住宅房屋買賣合同范本
- 文化機械產(chǎn)品用戶體驗評估方法考核試卷
- 工業(yè)機器人協(xié)作機器人技術(shù)考核試卷
- 2024年湖南鐵路科技職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 中山2024年廣東中山市人民政府東區(qū)街道辦事處所屬事業(yè)單位第二期招聘3人筆試歷年典型考點(頻考版試卷)附帶答案詳解
- 《梅大高速茶陽路段“5·1”塌方災(zāi)害調(diào)查評估報告》專題警示學(xué)習(xí)
- 2024年06月江蘇昆山鹿城村鎮(zhèn)銀行校園招考筆試歷年參考題庫附帶答案詳解
- 小學(xué)二年級100以內(nèi)進退位加減法800道題
- 3ds Max動畫制作實戰(zhàn)訓(xùn)練(第3版)教學(xué)教案
- 艾滋病丙肝梅毒
- CNAS-CL01-G001:2024檢測和校準實驗室能力認可準則的應(yīng)用要求
- 春季安全行車培訓(xùn)資料
- 通信網(wǎng)絡(luò)習(xí)題(附答案)
- 現(xiàn)代物流基礎(chǔ)練習(xí)題庫及參考答案
評論
0/150
提交評論