0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

​掌上树莓派Pico W能自己编写游戏

QuTG_CloudBrain 来源:云脑智库 2023-05-05 14:32 次阅读

《乒乓球》游戏无限量。

当前,人们对设计用于帮程序员编写软件的人工智能AI)工具非常感兴趣。GitHub的Copilot和亚马逊的CodeWhisperer通过对深度学习技术进行调整,可以生成源代码。最初开发该技术是为了生成自然语言文本。其理念是,程序员可以将这些工具作为一种强有力的自动完成方法,使用提示来生成代码块,开发人员将代码块集成到自己的软件中。

看着这些工具时,我想知道:我们能否再进一步,无需程序员参与?能不能只是按一下按钮,即可完成一段可运行程序的编写和部署?

我的日常工作是为微控制器编写嵌入式软件,因此我立刻想到了将一个独立的手持设备用作演示平台。借助一个屏幕和几个控件,用户将能够与简单的AI生成软件进行交互。无限量《乒乓球》(Pong)游戏的概念由此诞生。

我选择《乒乓球》游戏有几个原因。该游戏的玩法很简单,雅达利最初的1972年《乒乓球》街机机箱上是这样解释的:“要取得高分,就避免丢球。”只要一个向上的按钮和一个向下的按钮就可以玩这个游戏了。《乒乓球》与20世纪70年代和80年代打造的许多经典雅达利游戏一样,仅需编写较少的几行代码,已经作为编程练习题目实现了很多很多次。这意味着在AI工具训练数据的源代码资源库中有丰富的《乒乓球》游戏示例,这就提高了获得可行结果的可能性。

1e29dca8-eb0d-11ed-90ce-dac502259ad0.jpg

我使用了一台售价6美元的树莓派Pico W作为手持设备的核心,借助它的内置无线功能,可以直接连接基于云端的AI工具。为此,我安装了一个售价9美元的Pico LCD 1.14显示模块。它的240×135彩色像素足够用于《乒乓球》游戏,而且该模块集成了两个按钮和一个双轴微型操纵杆

1e403f52-eb0d-11ed-90ce-dac502259ad0.jpg

我为Pico选择的编程语言是MicroPython,因为它是我常用的语言,而且它是一种解释型语言代码,不需要基于个人计算机的编译器即可运行。我使用的AI编码工具是OpenAI Codex。使用可对Web的HTTP格式查询做出响应的API即可访问OpenAI Codex。使用MicroPython的urequests和ujson库,可以直接构建和发送查询。在目前的测试阶段,使用OpenAI Codex API是免费的,但需要注册,而且查询限制为每分钟20次,即使是最狂热的《乒乓球》游戏玩家,这也足够了。

下一步是创建容器程序。该程序负责检测何时通过按钮请求《乒乓球》的新版本,向OpenAI Codex发送提示、接收结果并启动游戏。容器程序还设置了一个硬件抽象层,处理Pico和LCD/控制模块之间的物理连接。

整个项目中最关键的部分是创建提示,每当我们想要OpenAI Codex吐出新版《乒乓球》时,这个提示都会传输到OpenAI Codex。提示是一段纯文本,带有最简单的源代码框架,用几行代码概述很多电子游戏中常见的结构,即我们要用的库列表、处理事件(如按键)的调用、根据这些事件更新游戏状态的调用,以及在屏幕上显示更新状态的调用。

如何使用这些库以及如何填写调用取决于AI。将这种通用结构转化为《乒乓球》游戏的关键是嵌入注释,这些注释在人工编写的源代码中是可选择的,但在提示中是非常有用的。注释使用简单的英语来描述游戏玩法,例如,“该游戏包括以下类别……球:该类别代表球。它具有一个位置、一种速度和一个调试属性。乒乓球:该类别代表游戏本身。它具有两个挡板和一个球。它知道如何检查游戏结束。”(在Hackaday.io上可以使用树莓派Pico W来玩《乒乓球》游戏;该网站有我的容器和提示代码。)

1e48b308-eb0d-11ed-90ce-dac502259ad0.jpg

AI返回大约300行代码。在我早期的尝试中,代码无法显示游戏,因为我的模块使用的MicroPython帧缓冲(framebuffer)库版本与训练OpenAI Codex的帧缓冲库不同。解决方案是添加提示注释,描述我的库所使用的方法,例如“de f rectangle (self, x, y, w, h, c)”。另一个问题是,许多训练示例使用的是全局变量,而我最初的提示是将变量属性定义为作用于单个类,这通常是更好的做法。最终我不得不放弃,顺其大流,将我的变量声明为全局变量。

当前,在由我的提示返回的代码中,有80%都能产生可行的《乒乓球》游戏。有时游戏完全不能玩,有时能产生游戏,但不太像《乒乓球》,例如,挡板不仅上下移动,有时还能左右移动。有时是两个人来玩,有时是一人与机器对抗。由于提示中未做指定,因此Codex会采用两个选项之一。与机器对抗时,很想看看Codex如何实施这部分代码逻辑。

那么,这段代码的作者是谁?当然,其中存在一些法律争议,例如,该代码如何获取许可?因为许多训练集都基于开源软件,相关软件对由此衍生的代码规定了特定的许可条件。但对于作者,许可权和所有权是分开的,关于所有权,我认为应属于使用AI工具并验证结果的程序员,这就像你使用某公司制作的绘画程序,使用了公司的画笔和滤镜,创作了一件艺术作品。

至于我的项目,下一步将研究更复杂的游戏,比如1986年推出后风靡一时的街机游戏《打砖块》,有人知道吗?

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1793

    文章

    47567

    浏览量

    239441
  • 树莓派
    +关注

    关注

    117

    文章

    1710

    浏览量

    105781
  • 深度学习
    +关注

    关注

    73

    文章

    5511

    浏览量

    121376

原文标题:​掌上树莓派Pico W能自己编写游戏。

文章出处:【微信号:CloudBrain-TT,微信公众号:云脑智库】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    树莓传感器使用方法 树莓 Raspberry Pi 4优缺点

    树莓传感器使用方法 树莓(Raspberry Pi)是一款由英国树莓基金会开发的小型单板计
    的头像 发表于 12-06 10:35 646次阅读

    Raspberry Pi Pico 2 W 发布

    树莓官方今日宣布推出支持无线连接的新款 MCU(微控制器)主板 Raspberry Pi Pico 2 W,售价 7 美元, 较此前的有线版本高出 2 美元 。     Raspbe
    的头像 发表于 11-25 18:25 549次阅读
    Raspberry Pi <b class='flag-5'>Pico</b> 2 <b class='flag-5'>W</b> 发布

    树莓与Arduino的区别是什么

    Pi): 树莓最初是作为教育工具设计的,旨在帮助学生学习计算机编程和电子工程。随着时间的推移,它已经发展成为一个多功能的微型计算机,可以用于各种项目,包括但不限于: 家庭媒体中心 游戏机 网络服务器 IoT(物联网)设备 教
    的头像 发表于 11-11 11:14 1080次阅读

    ARM开发板与树莓的比较

    ARM开发板和树莓都是基于ARM架构的单板计算机,它们在教育、工业控制、物联网等领域有着广泛的应用。 硬件配置 ARM开发板和树莓的硬件配置各有特点,具体取决于不同的型号和制造商。
    的头像 发表于 11-05 11:11 573次阅读

    树莓gpio有什么用,树莓gpio接口及编程方法

    一、树莓GPIO的用途 树莓(Raspberry Pi)是一款小巧、功能强大的单板计算机,广泛应用于编程教育、物联网项目、家庭媒体中心等领域。GPIO(General Purpos
    的头像 发表于 10-22 18:09 1103次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 1159次阅读

    树莓网关:物联网应用的新标杆

    什么是树莓树莓(Raspberry Pi)是一种基于Linux的小型单板计算机,由英国的树莓
    的头像 发表于 10-09 16:44 365次阅读
    类<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网关:物联网应用的新标杆

    树莓和单片机的优缺点是什么

    树莓(Raspberry Pi)和单片机(Microcontroller)是两种广泛应用于电子项目和嵌入式系统的硬件平台。它们各自具有独特的优缺点,适用于不同的应用场景。 树莓
    的头像 发表于 08-30 18:21 1801次阅读

    树莓的功能用途是什么

    树莓(Raspberry Pi)是一款由英国树莓基金会研发的信用卡大小的单板计算机,自2012年推出以来,已经发展出多个型号和版本。树莓
    的头像 发表于 08-30 18:01 2956次阅读

    树莓是x86还是arm

    树莓(Raspberry Pi)是一款由英国树莓基金会(Raspberry Pi Foundation)开发的微型计算机。它基于ARM架构,而非x86架构。 一、
    的头像 发表于 08-30 15:42 1263次阅读

    树莓装ubuntu和raspbian哪个更好

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的单板计算机,广泛应用于教育、科研、物联网等领域。树莓
    的头像 发表于 08-30 15:41 1522次阅读

    树莓Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!

    –5.5V DC 在今年年底之前,树莓官方预计将推出一款支持无线的 Pico 2 W,使用与 Pico
    发表于 08-13 10:07

    树莓5,Raspberry Pi 5 评测

    个可靠的选择;这款老型号可以在没有主动散热系统的情况下完成更多任务,并且在市场上已经四年了仍有坚实的支持。如果你不需要Linux,只需要GPIO功能,那么价格8美元的树莓Pico W
    发表于 06-19 14:51

    精选推荐!看大佬用树莓4做个迷你版PS5

    作者在树莓4上设置了RetroPie,并制作了一个3D打印的定制外壳,灵感来自PlayStation 5的设计。就像是PlayStation 5的迷你版,虽然它无法运行现代游戏,不过,这仍然是
    发表于 05-13 10:24

    树莓5实现Steam游戏解锁,流畅运行轻量级游戏

    据悉,此前已有玩家通过树莓5实现过多种有趣玩法,如搭配外部显卡构建高性能电脑,亦或搭建双屏工作站。尽管树莓5具备较高的可玩性,但其硬件条件尚未达到传统PC
    的头像 发表于 03-28 15:29 1054次阅读