女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何做一部基于STM32F4的手持式游戲機(jī)

電子森林 ? 來源:FPGA入門到精通 ? 作者:FPGA入門到精通 ? 2020-09-30 17:32 ? 次閱讀

這是在Hackster.io上發(fā)布的一個(gè)項(xiàng)目,基于STM32F4 Discovery板制作的游戲機(jī)。采用編寫游戲的方式來學(xué)習(xí)嵌入式系統(tǒng)是比較好的方式,寓教于樂,培養(yǎng)成就感,并不需要學(xué)習(xí)完模電、數(shù)電就可以編程

下面是這個(gè)項(xiàng)目的硬件部分,主要的器件:

一個(gè)STM32F4 Discovery板

一個(gè)3.2寸、320*240分辨率、帶觸摸的TFT LCD顯示屏(ILI9341為控制器

一個(gè)2軸游戲手柄

單通道2.5W D類音頻放大器

一只4ohm,3W的喇叭

兩個(gè)按鍵

其它電阻二極管若干

原理圖:

關(guān)于游戲手柄及按鍵的功能定義參見原文 - 點(diǎn)擊左下角的“閱讀原文”即可到達(dá),在這里不再贅述。

下面是板子的正面和背面器件布局示意圖:

下圖為軟件模塊的構(gòu)成及調(diào)用關(guān)系

下圖為數(shù)據(jù)流:

游戲手柄在兩個(gè)方向的變化通過其內(nèi)部兩個(gè)獨(dú)立的可變電阻來實(shí)現(xiàn),電阻的改變以變化的電壓送到控制器的12位精度的ADC,變換后的數(shù)據(jù)以40Hz的頻度被控制器的游戲引擎讀取。

下面是游戲的流程圖:

ISR的程序:

void TIM6_DAC_IRQHandler (void){ TIM_intrpt_handler(TIM6); frameUpdate = SET;}

前景:

int main (void){ RTE_init(); RTE_display_start_screen(); while(SHOOT_BUTTON_READ); while(1){ RTE_display_black_background(); RTE_create_player_spaceship(&PlayerSpaceship); RTE_draw_player_spaceship(&PlayerSpaceship); RTE_create_asteroid(&AsteroidVect,Asteroid,numOfAsteroidInWave[currentWa ve],&PlayerSpaceship); RTE_draw_asteroid(&AsteroidVect); RNG_deinit(); RTE_start_update_frame(); while(1){ if(frameUpdate == SET){ RTE_display_score(); RTE_update_player_spaceship(&PlayerSpaceship); RTE_draw_player_spaceship(&PlayerSpaceship); RTE_create_rocket(&RocketVect,Rocket,&PlayerSpaceship); RTE_update_rocket(&RocketVect,&AsteroidVect); RTE_draw_rocket(&RocketVect); RTE_update_asteroid(&AsteroidVect,&PlayerSpaceship); RTE_draw_asteroid(&AsteroidVect); if(PlayerSpaceship.Object_Property.aliveFlag == RTE_ALIVE_FALSE){ PROTOBOARD_GREEN_LED_ON; RTE_display_game_over_screen(); while(SHOOT_BUTTON_READ); RTE_reset_game(); PROTOBOARD_GREEN_LED_OFF; break; } if(AsteroidVect.total == 0){ TIM_ctr(TIM6,STOP); currentWave++; RNG_init(); RTE_create_asteroid(&AsteroidVect,Asteroid,numOfAsteroidInWave[currentWave],&PlayerSpaceship); TIM_ctr(TIM6,START); } frameUpdate = CLEAR; } } }}

第二個(gè)周期性的中斷產(chǎn)生DAC需要的數(shù)據(jù),以產(chǎn)生相應(yīng)的音頻效果:

#ifdef SPEAKER_USE_TIMER7 void TIM7_IRQHandler (void){ TIM_intrpt_handler(TIM7); DAC_write(&DACxHandle,*(soundPtrGlobal++)); if(soundPtrGlobal == soundEnd){ speaker_stop_sound(); } }#endif

創(chuàng)建特殊的空間維度:

/***********************************************************************Private function: Wrap coordinate***********************************************************************/void RTE_wrap_cordinate (int16_t *xPtr, int16_t *yPtr){ if (*xPtr < 0){ *xPtr += ILI9341_config.width; } if (*xPtr >= ILI9341_config.width){ *xPtr -= ILI9341_config.width; } if (*yPtr < 0){ *yPtr += ILI9341_config.height; } if (*yPtr >= ILI9341_config.height){ *yPtr -= ILI9341_config.height; }}

下面的示意 - 右邊慢慢消失,出現(xiàn)在左側(cè)

下面的代碼就是在左側(cè)重畫出圖像中右側(cè)消失掉的部分:

/***********************************************************************External function: Overwrite draw pixel function in ILI9341 driver library (in order to draw pixels going off screen)***********************************************************************/void ILI9341_draw_pixel (int16_t x, int16_t y, uint16_t color){ RTE_wrap_cordinate(&x,&y); ILI9341_set_active_area(x,x,y,y); ILI9341_send_command(ILI9341_MEM_WRITE); ILI9341_send_parameter_16_bits(color);}

碰撞檢測:

/***********************************************************************Private function: Detect collision between 2 object using AABB algorithm***********************************************************************/uint8_t RTE_collision_detect (Space_Object_t *Object1Ptr, Space_Object_t *Object2Ptr){ int16_t Obj1BottomRight_X = Object1Ptr->Object_Property.x + Object1Ptr->Object_Image.imageWidth; int16_t Obj1BottomRight_Y = Object1Ptr->Object_Property.y + Object1Ptr->Object_Image.imageHeight; int16_t Obj2BottomRight_X = Object2Ptr->Object_Property.x + Object2Ptr->Obje ct_Image.imageWidth; int16_t Obj2BottomRight_Y = Object2Ptr->Object_Property.y + Object2Ptr->Object_Image.imageHeight; if (Object1Ptr->Object_Property.x < Obj2BottomRight_X && Object2Ptr->Object_Property.x < Obj1BottomRight_X && Object1Ptr->Object_Property.y < Obj2BottomRight_Y && Object2Ptr->Object_Property.y < Obj1BottomRight_Y){ return RTE_COLLISION_TRUE; } return RTE_COLLISION_FALSE;}

責(zé)任編輯:xjx

原文標(biāo)題:基于STM32F4的手持式游戲機(jī)如何實(shí)現(xiàn)?

文章出處:【微信公眾號(hào):FPGA入門到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2290

    文章

    11017

    瀏覽量

    362467
  • 手持設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    24274
  • 游戲機(jī)
    +關(guān)注

    關(guān)注

    9

    文章

    302

    瀏覽量

    34323

原文標(biāo)題:基于STM32F4的手持式游戲機(jī)如何實(shí)現(xiàn)?

文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32F4標(biāo)準(zhǔn)外設(shè)庫資料

    stm32f4xx.h,標(biāo)準(zhǔn)外設(shè)庫
    發(fā)表于 06-08 09:49 ?0次下載

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊

    電子發(fā)燒友網(wǎng)站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊.pdf》資料
    發(fā)表于 06-06 17:06 ?4次下載

    松下4K手持式攝錄一體機(jī)AJ-UPX380介紹

    2025年第季度,松下正式推出4K手持式攝錄一體機(jī)AJ-UPX380,旨在為廣播及流媒體專業(yè)人士提供更高品質(zhì)的視頻制作解決方案。作為UPX系列專業(yè)攝錄
    的頭像 發(fā)表于 05-30 15:54 ?289次閱讀

    手持式移動(dòng)智能終端如何做到濕手或佩戴手套也能使用?

    現(xiàn)在無論是手持式身份核驗(yàn)終端,還是餐飲叫號(hào)點(diǎn)單打印收銀一體機(jī),大多采用觸屏操作。這當(dāng)中就涉及到這類手持式移動(dòng)智能終端是否能達(dá)到防水防塵防油污等功能。在餐飲場景,有些店員還要進(jìn)入后廚,
    的頭像 發(fā)表于 04-09 10:20 ?173次閱讀
    <b class='flag-5'>手持式</b>移動(dòng)智能終端<b class='flag-5'>如何做</b>到濕手或佩戴手套也能使用?

    智慧工廠為什么要使用手持式智能終端

    隨著科技的快速發(fā)展,智慧工廠已成為制造業(yè)的未來趨勢。智慧工廠能夠?qū)崿F(xiàn)生產(chǎn)過程的自動(dòng)化、信息化和智能化,從而提高生產(chǎn)效率、降低成本、提升產(chǎn)品質(zhì)量。在智慧工廠中,手持式智能終端發(fā)揮著重要的作用,為工廠
    的頭像 發(fā)表于 03-26 10:49 ?465次閱讀
    智慧工廠為什么要使用<b class='flag-5'>手持式</b>智能終端

    樹莓派復(fù)古游戲機(jī):用科技重現(xiàn)經(jīng)典,讓童年永不落幕!

    復(fù)古游戲機(jī)種能讓你玩經(jīng)典游戲機(jī)上的視頻游戲的設(shè)備。有了復(fù)古游戲機(jī),你可以玩來自Atari的《太空侵略者》和《吃豆人》,或者來自Ninte
    的頭像 發(fā)表于 03-25 09:28 ?279次閱讀
    樹莓派復(fù)古<b class='flag-5'>游戲機(jī)</b>:用科技重現(xiàn)經(jīng)典,讓童年永不落幕!

    使用SPI進(jìn)行通信,STM32F4機(jī),通信時(shí)數(shù)據(jù)異常怎么解決?

    使用SPI進(jìn)行通信,STM32F4機(jī),通信時(shí)數(shù)據(jù)異常,SPI2中SR寄存器會(huì)出現(xiàn)0xc0,0xc1,0x80的異常狀態(tài)值,大概就是BYS位,OVR位,RXEN位
    發(fā)表于 03-14 12:14

    stm32f4 sdio時(shí)鐘如何獲取通過什么函數(shù)?

    stm32f4系列sdio 時(shí)鐘如何獲取,stm32h7可以通過sdmmc_clk=HAL_RCCEx_GetPeriphCLKFreq(STM32_RCC_PERIPHCLK_SDMMC);這個(gè)函數(shù)獲取
    發(fā)表于 03-07 08:26

    手持式地物光譜儀的優(yōu)勢解析

    在遙感探測領(lǐng)域,手持式地物光譜儀正以其獨(dú)特的優(yōu)勢,掀起場技術(shù)革命。這種便攜設(shè)備能夠快速獲取地物的光譜特征,為精準(zhǔn)識(shí)別和分類提供可靠依據(jù)。 手持式地物光譜儀采用先進(jìn)的光學(xué)系統(tǒng)和高靈敏
    的頭像 發(fā)表于 03-05 15:05 ?343次閱讀
    <b class='flag-5'>手持式</b>地物光譜儀的優(yōu)勢解析

    Simcenter SCADAS XS手持式數(shù)據(jù)采集系統(tǒng)

    SimcenterSCADASXS手持式數(shù)據(jù)采集系統(tǒng)將各類噪聲和振動(dòng)測試功能與手持式解決方案的自由度結(jié)合,即可在現(xiàn)實(shí)生活中快速測試產(chǎn)品。為何選擇SimcenterSCADASXS?即時(shí)測試并對產(chǎn)品
    的頭像 發(fā)表于 01-15 14:42 ?365次閱讀
    Simcenter SCADAS XS<b class='flag-5'>手持式</b>數(shù)據(jù)采集系統(tǒng)

    手持式RFID讀寫器可以當(dāng)pda手持終端用嗎

    隨著科技的不斷進(jìn)步,手持式RFID讀寫器作為種新興的便攜讀寫器,逐漸在各行各業(yè)中發(fā)揮著重要作用。而在很多場景下,手持式RFID讀寫器是否能替代傳統(tǒng)的PDA(數(shù)據(jù)采集終端)
    的頭像 發(fā)表于 12-05 14:58 ?520次閱讀
    <b class='flag-5'>手持式</b>RFID讀寫器可以當(dāng)pda<b class='flag-5'>手持</b>終端用嗎

    STM32項(xiàng)目實(shí)戰(zhàn):基于STM32F4的智能燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

    《智能燈光控制系統(tǒng)_STM32F4》項(xiàng)目完整文檔、項(xiàng)目源碼,私信小雯老師免費(fèi)領(lǐng)取。STM32項(xiàng)目實(shí)戰(zhàn)之“智能燈光控制系統(tǒng)”(基于STM32F4)今天小編來分享個(gè)《智能燈光控制系統(tǒng)》的
    的頭像 發(fā)表于 10-17 16:16 ?1688次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目實(shí)戰(zhàn):基于<b class='flag-5'>STM32F4</b>的智能燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

    STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xxx中文手冊

    STM32F4系列單片機(jī)中文手冊
    發(fā)表于 08-08 14:32 ?2次下載

    手持式地物光譜儀:野外遙感環(huán)境監(jiān)測的革命性工具

    在現(xiàn)代科技飛速發(fā)展的今天,環(huán)境監(jiān)測已經(jīng)成為各個(gè)領(lǐng)域中不可或缺的重要環(huán)節(jié)。手持式地物光譜儀作為款專門用于野外遙感環(huán)境監(jiān)測的最新產(chǎn)品,以其操作靈活、輕巧方便、光譜測試速度快、光譜數(shù)據(jù)準(zhǔn)確等特點(diǎn),迅速
    的頭像 發(fā)表于 08-02 15:40 ?664次閱讀
    <b class='flag-5'>手持式</b>地物光譜儀:野外遙感環(huán)境監(jiān)測的革命性工具

    手持式光譜儀可以檢測哪些材質(zhì)

    手持式光譜儀是種便攜、快速、非破壞性的分析儀器,廣泛應(yīng)用于材料分析、環(huán)境監(jiān)測、食品安全、地質(zhì)勘探等領(lǐng)域。它通過測量物質(zhì)對不同波長光的吸收、發(fā)射或散射特性,來確定物質(zhì)的組成和含量。 手持式
    的頭像 發(fā)表于 07-18 09:20 ?2400次閱讀