树莓派设置自启动程序后不能通过JS停止Python程序

JavaScript015

树莓派设置自启动程序后不能通过JS停止Python程序,第1张

首先申明js我不会

看到楼主你的思路,我感觉你应该不会成功,看我分析一下:

当程序自启动,python程序开始运行,running= Ture,那么程序将一直按照running= Ture执行下去,外部任何输入都是没有用,除非程序停下来检测一下,running的状态,换句话说:你启动的时候running就是Ture,那么我就运行,你什么时候改变状态我也不知道,建议楼主,能在循环中检测一下running状态。这样才能有效的控制程序运行,下面是都伪代码:

while Ture:        # 程序一直循环开启

    if running:      # 如果如果运行状态是真

        do something  # 开始执行

当然这里要注意一下 全局变量问题,我这没有测试,怕全局变量会有影响!!!

首先去Node.js官网下载.msi文件 直接安装就可以了,可以自定义路径。然后去配置环境变量,打开我的电脑-->高级系统设置-->环境变量-->用户变量,选择path变量编辑,将你的node安装路径复制下来粘贴到path变量里,注意两路径之间加分号隔开,打开cmd,查看node版本信息:node -v表示安装成功。现在可以写第一个node程序了server.js

var http = require('http')

http.createServer(function(request,response){

// 发送 HTTP 头部

// HTTP 状态值: 200 : OK

// 内容类型: text/plain

response.writeHead(200,{'Content-Type':'text/plain'})

// 发送响应数据 "Hello World"

response.end('hello world\n')

}).listen(8888)

console.log('Server running at http://127.0.0.1:8888/')

现在测试一下,首先在命令窗口下进入到你的node程序路径下,比如我的在e:/node下:然后运行程序 node server.js在浏览器中打开本机ip看到下面的界面就成功了。最后,不知道有没有小白和我一样刚开始的时候以为打开node.js的命令窗口啊,然后发现根本运行不了,一定要注意啊是打开cmd。

大数据文摘出品

作者:Olivia、曹培信

用280个字符编写一个程序,你能写出什么?

也许你会说,我用Python调个包,啥功能都能给你实现了。

那可不行,你还得 用BBC BASIC语言编写,在BBC Micro Model B上运行 ,是不是听着很陌生?

BASIC,一个有着56年 历史 的直译式编程语言,是许多程序员大佬的入门语言,BBC BASIC是由Acorn Computers为BBC编写的版本,相比原来的BASIC加入了许多额外的结构体关键字;BBC Micro Model B则是20世纪80年代的8位计算机,是当时风靡一时的微型电脑开发板,也是许多程序员大佬的入门神器。

我们先来看看大神用这两个古董加上280字符的程序能实现什么?

一个充满 历史 厚重感的 Windows 95 logo ,没错,这就是用280个字符写出来的BASIC程序的输出结果!当然,如果你也想亲手试一下,倒不用去淘一台BBC Micro Model B古董机,现在 只要发条Twitter就可以一试!

首个云端的“8位机”,被各路大佬玩坏

Arduino业务开发副总裁Dominic Pajak创建了一个名为 “@bbcmicrobot” 的推特账户,又叫做 BBC Micro Robot

你只要用编写一段BBC BASIC程序,然后发推特@bbcmicrobot,机器人就会接收推文并通过BBC Micro Model B的仿真器运行Basic程序来处理推文,再将结果推回仿真器输出三秒钟的动图。

据统计,这个机器人在最初的几周内获得了超过 1000万次 的浏览,并且每周要处理超过 1000个Basic程序

许多大佬也爱上了这个机器人,包括喜剧演员达拉 · 布莱恩(Dara Ó Briain),科普作家本 · 戈达克(Ben Goldacre),当然,最著名的要数树莓派创始人 埃本 · 厄普顿 (Eben Upton)。

厄普顿编写的是一个 Game of Life (生命的 游戏 )程序,我们先来看看输出结果。

你可能会很疑惑,这是个啥?其实,这是一个经典的 细胞自动机 ,也可以说是一个零玩家 游戏 ,它的演变是由它的初始状态决定的,不需要进行后续的输入,是最一种模拟包括自组织结构在内的复杂现象的一个强有力的方法。

大佬的炫技,我们看不懂。

也有人做了一些大佬做的是一看就知道很厉害的东西,比如这个三维的滚动的小球,作者是 游戏 巨头Activision的技术总监 Paul Malin ,他使用了一种特殊的编码将361个ASCII代码字符压缩成了280个Unicode字符推文。

据Pajak介绍,这款BBC Micro Robot原本部署在树莓派4上,但此后转移到了亚马逊云服务器上,大概是是 世界上唯一一个云端的8位计算机 了。

BBC Micro Robot是用Javascript编写的,运行环境是Node.js,具体来说,当机器人发现一条是Basic程序的推文时,它会进行过滤,再将文本输入模拟的BBC Micro缓冲区中,在30秒后使用ffmpeg创建一个3秒的视频。

发个Twitter缅怀40年前的极简编程岁月

之所以这个BBC Micro Robot会得到像树莓派创始人厄普顿这样的大佬的回应,这背后的原因主要还是情怀。

1988年,当埃本 · 厄普顿还是一个10岁的小孩时,他买了他人生中的第一台电脑—— 一台二手的BBC Micro ,没错,就是BBC Micro Robot模拟的那个8位计算机!

电脑一到手,厄普顿就开始用BBC BASIC语言开始编写程序,很快便得心应手。

所以,当厄普顿发现了这个发个Twitter就能用BBC BASIC编写一个小程序的时候,他一定想起了30多年前的少年时代。

埃本 · 厄普顿和他的树莓派

其实作者的经历也是如此,Dominic Pajak也是成长于20世纪80年代的英国,在学校里学会了BBC Micro编程。

Pajak说:“BBC Basic主要由Sophie Wilson(就是后来设计ARM架构的那个大神)开发,而这是 迄今为止最好的Basic实现语言 ,其中一些非常好的特征允许我们 将代码最小化 。”

受制于当时的技术,老一代的程序员大佬们对于用有限的代码实现更多的功能可谓是乐此不疲,也可以说是那一代人的情怀。

正如Ableton创始人罗伯特•亨克(Robert Henke)所说,“ 当技术在表达方面受到限制时,极简主义是必要的。

如果你也想试一试

如果你也想试一试,缅怀一下30多年前的编程岁月,很简单,只要发一个推特@bbcmicrobot就可以了。

当然,你的推文内容必须是BBC BASIC语言,BASIC(Beginner's All-purpose Symbolic Instruction Code),意思就是“ 初学者的全方位符式指令代码 ”,是一种设计给初学者使用的程序设计语言。BASIC是一种直译式的编程语言,在完成编写后不须经由编译及连结等手续即可运行,但如果需要单独运行时仍然需要将其创建成可执行文件。

如果你还不熟悉BBC BASIC语言,没关系,作者也提供了很好的学习教程。

网站链接:

https://www.dompajak.com/bbcmicrobot.html

入门教程肯定是从“Hello World”开始了。

如果想要进一步 探索 BBC BASIC,也可以看一些专门的博客,比如Paul Malin的 “Fun with BBC Micro Bot”

博客地址:

https://blog.mousefingers.com/post/bbc/bbc_bbcmicrobot/

“发推”编程,乐趣无穷,文摘菌推荐大家自己动手一试。