树莓派+电子墨水屏+Spotify = 实时播歌

Spotify是一个流行的流媒体服务,允许用户收听音乐、播客和有声读物。作为一个开发者,你可以使用Spotify Web API来访问Spotify的音乐目录和用户数据,并将Spotify的功能整合到你自己的应用程序中。

如何用树莓派和5.7英寸的电子墨水屏创建一个电子相框,来实时显示你在Spotify上听的歌曲封面?说实话,这个让我想起了以前实时显示歌曲封面的CD机。

操作步骤:

首先你要有一个Spotify的开发者账号,注册地址:

https://developer.spotify.com/

在仪表盘中编辑应用程序的设置。比如:

http://localhost/redirect

设置完成后,登录树莓派。

运行“raspi-config”命令,找到“Interface Options”,把SPI和I2C设置为可用。 

下载以下文件,并在树莓派上执行。最后根据提示,填写你的Spotify账号和API信息即可。

wget https://raw.githubusercontent.com/ryanwa18/spotipi-eink/main/setup.sh
chmod +x setup.sh
bash setup.sh

相关配件:

Raspberry Pi Zero 2
Inky Impression 5.7

关于外壳的3D打印文件:

https://cults3d.com/en/3d-model/gadget/spotipi-e-ink-inky-impression-5-7-case

相关视频地址:

https://mp.weixin.qq.com/s/tMx-RSDyAZZMUo04oYRRqw

为年轻人做的在线代码编辑器

树莓派官方最近出了一款免费的在线编辑器,以帮助 7 岁以上的年轻人学习程序开发。比较有意思的是,这个在线编辑器支持emoji表情。

在线编辑界面

不管你是参加 Code Clubs 和 CoderDojos 的选手,还是普通的在校学生,树莓派用户……都可以用它在线调试自己的程序。

目前该编辑器还在公测阶段,主要目标是让使学习者能够:

  • 直接在浏览器中编写和运行 Python 代码,无需任何设置。界面简单直观,这使得基于文本的编码更加容易。
  • 让那些拥有Raspberry Pi Foundation 帐户的人可以在线保存他们的代码。树莓派基金会希望代码学习者不管是在家里,还是在课堂上,都可以更方便的构建自己的项目。

目前,树莓派基金会选择了Python 作为代码编辑器支持的第一个语言,因为它在学校、CoderDojos 和代码俱乐部中很流行,很多专业开发人员也在用它。

将来会向编辑器添加对 Web 开发语言 (HTML/CSS/JavaScript) 的支持,以及项目共享和协作等功能。树莓派基金会希望这个编辑器是安全、易于访问且适龄的。

关于ICO 的适龄设计规范:

https://ico.org.uk/for-organisations/guide-to-data-protection/ico-codes-of-practice/age-appropriate-design-a-code-of-practice-for-online-services/

经过笔者的测试,目前该编辑器主要支持turtle在内的Python标准库,以及P5高级绘图库,大家可别在里面跑PyGame咯。

官方推荐的入门项目:

https://projects.raspberrypi.org/en/pathways/python-intro-code-editor

Windows 10查看Wi-Fi密码

确保wlansvc服务启动中,没有无线网络的台式机,该服务未启动
$ sc query wlansvc | findstr STATE
STATE : 4 RUNNING

查看曾经连接过的无线网络
$ netsh wlan show profiles

User profiles
All User Profile : any All User Profile : some All User Profile : meeting_5GHz All User Profile : meeting_2.4GHz

若wlansvc服务未启动,上述命令报错
$ netsh wlan show profiles
The Wireless AutoConfig Service (wlansvc) is not running.

假设一切顺利,如下命令可查看指定无线网络的明文密码
$ netsh wlan show profiles name=”some” key=clear | findstr /C:”Key Content”
Key Content : XXXXXXXXXXXXXXXX

来自:沈沉舟

基于ESP8266的智能配电板

This is the final curcuit: 

This is components you need for the project:

PZEM-004T: https://s.click.aliexpress.com/e/_9hYStD

ESP8266: https://s.click.aliexpress.com/e/_97j7kp

Resistors: https://s.click.aliexpress.com/e/_9AslPB

Electrolytic Capacitor: https://s.click.aliexpress.com/e/_A2atvx

PCB 6X8: https://s.click.aliexpress.com/e/_d7XpQnS

Pin Header: https://s.click.aliexpress.com/e/_AUvLzT

Female PCB Header: https://s.click.aliexpress.com/e/_AClQip

5V relay module: https://s.click.aliexpress.com/e/_AAXY9i

1602 I2C Display: https://s.click.aliexpress.com/e/_AF3L2o

Compilation

Use core 2.7.4 for this project (Tested with this version)  upd: 08/12/2021 made some changes, tested with 3.0.2 (works)

please download the necessary libraries: https://github.com/electrical-pro/SmartBoard/blob/main/libraries.zip copy them from the archive to: C:\Users\Documents\Arduino\libraries

P.S. I modified the LiquidCrystal_I2C library, I removed Wire.begin(5, 14);

Uploading files from data folder

The project uses SPIFFS to store files on ESP8266, upload them to the ESP8266 (read about SPIFFS if you dont know what that is.) 

 If you don’t see this option install the plugin from here: https://github.com/esp8266/arduino-esp8266fs-plugin

Connecting to router

After flashing connect to “PowerControlESP | Offline” pass is “PowerControlPass” then go to 192.168.4.1 (WI-Fi manager) and connect to your Wi-Fi router. 

Power server is at 192.168.x.x:8089 (port is 8089)

Very unusual authorization that I implemented

If it says “The file exists, but you are not authorized!” – is a simple safety feature that I implemented, so in order to access files you need to go to a secret URL first http://192.168.x.x:8089/me (you can program another one) When you go to http://192.168.x.x:8089/me it puts a cookie in your browser and you become an authorized user

to make it work right set it to false in the sketch

// set it to false, and then get auth cookie by going to 192.168.x.x:8089/me
bool PublicAccess = true;  // authorization 

If it is true it only allows you to go to http://192.168.x.x:8089

if it is false nothing is allowed unless you go to http://192.168.x.x:8089/me first

Serial

Note that I use Serial for PZEM004Tv30 module

PZEM004Tv30 pzem(&Serial);

Other information goes to Serial1 not Serial (so you will not see things in serial monitor)

Serial1.begin(115200);

远程连接AVH的主机

这里的AVH是指Arm Virtual Hardware,可以在线访问的虚拟开发板。

AVH支持两种模式远程登录内网的主机。

一是OpenVPN,下载配置文件导入即可。

二是SSH,添加密钥后即可。

OpenVPN的比较傻瓜,这里就不赘述了。

SSH的话,可以用以下命令:
ssh -J c9922a0f-edcb-486d-b84f-9508262abeb1@proxy.app.avh.arm.com pi@10.11.0.1

你也可以使用~/.ssh/config提前配置好跳转主机。

容器化构建聆思科技CSK6开发编译环境

聆思科技发布的新一代AI芯片CSK6,集成了安谋科技星辰“STAR-MC1”处理器。

采用 NPU+DSP+MCU 三核异构技术,算力达到 128 GOPS。使芯片能以较低功耗满足音频及图像视频的 AI 应用需求。

同时他们也发布了一个基于开发板的解决方案,并提供了相关工具和例程。

为了方便大家调试、编译聆思科技CSK6开发板,我在这里构建了一个容器化编译环境。一条命令拉取即可开始编译工作。

docker run -it verdureorange/listenai:latest

里面自带的Lisa工具,以及相关例程均来自聆思科技官方网站。

VERSION:

@listenai/lisa/2.4.5 linux-x64 node-v16.14.0

如果你正在使用聆思科技的CSK6开发板,又懒的自己配环境,可以用它试试。

教学视频:

容器化构建聆思科技CSK6开发编译环境_哔哩哔哩_bilibili

镜像:

https://hub.docker.com/r/verdureorange/listenai

相关文章:
带NPU和DSP的聆思科技MCU来了
https://aijishu.com/a/1060000…

有问题和意见可以联络:Medivh

邮箱:verdureorange@gmail.com

国内安装Ubuntu server速度慢的解决方法

在本地的 vmware 虚拟机管理系统中 安装 Ubuntu 20.x 时,发现全新系统安装的特别慢。一直卡在 installing kernel /  这个页面。

通过日志排查发现 在安装之前 系统源虽然自动切换到  http://cn.archive.ubuntu.com/ubuntu/ 这个官方系统源地址,但这个地址的数据服务器其实是在 美国数据中心,导致我们系统一直无法进行相关文件的下载。

解决方法:

将官方安装源:

http://cn.archive.ubuntu.com/ubuntu/ 

替换成 阿里云

http://mirrors.aliyun.com/ubuntu/

这样就可以很好的解决了 系统一直卡在安装界面中, 另外系统安装完成后,你更新 系统 以及 安装 各种组件时 都会默认使用 阿里云的镜像进行下载,而不会在通过 Ubuntu 官方的美国机器。

用树莓派自制反跟踪装置

马特·埃德蒙森(Matt Edmondson)是一名数字取证专家,也是国土安全部的联邦特工。

在一位朋友担心被跟踪后,他制作了一个基于Raspberry Pi的反跟踪工具。

马特·埃德蒙森的家伙什儿

它是由什么构成的?

整个设备都装在鞋盒大小的防水箱内。基础由树莓派3构成。

外接无线网卡和无线信号探测器,可查找附近的设备。

充电宝为一切提供动力,触摸屏显示设备发送的每个警报。

以便用户可以直观地看到哪些设备不断弹出以及多久弹出一次。

它是如何工作的?

该设备运行Kismet软件来检测附近正在寻找Wi-Fi或尝试连接到蓝牙设备的智能手机和平板电脑。Kismet 是一个网络检测器、数据包嗅探器和入侵检测系统,它可与任何支持原始监视模式的无线网卡一起运行。

我们都知道我们的手机会记录应用程序使用情况和位置。

但你可能不知道,你的手机也在不断寻找周围的无线网络。当它找到一个以前连接过的网络时,它会特别兴奋。

“特别兴奋”是指“做一些不同的事情,以一种特殊的方式通知Kismet”。

如果Kismet发现它在过去二十分钟内看过这个设备,它会发出一条警告,让用户知道他们可能被跟踪。

Matt用Python编写了一些代码,以便保留反跟踪工具接触过的设备列表,检查日志并查看上次遇到每个设备的时间。

这种自制的反跟踪设备专为人们在移动中设计。

如果你在一个地方坐了很长时间,而有些人总在你周围闲逛(比如电影院或餐馆),那你每二十分钟就会被提醒一次,让你知道周围可能有人跟踪你。

你可以在2022年8月的黑帽美国安全会议上看到Matt在此设备上的演示文稿,或者前往GitHub查看他针对此反跟踪构建的代码

如何使用Python自带编辑器IDLE

IDLE的调试方法:
1.设置断点:在Python编辑器中要调试的代码行右击->Set Breakpoint,之后该行底色就变黄了
2.打开debugger:Python Shell->Debug->Debugger
3.编辑窗口按F5
4.debug过程略
Go表示运行完相当于eclipse的F8,不过按F5后先要go一下才能往下走,默认是不运行的
Step表示一步一步相当于eclipse的F5
Over表示跳过函数方法相当于eclipse的F6
Out表示跳出本函数相当于eclipse的F7


IDLE编辑器快捷键

自动补全代码 Alt+/(查找编辑器内已经写过的代码来补全)
补全提示 Ctrl+Shift+space(默认与输入法冲突,修改之)
(方法:Options->configure IDLE…->Keys-> force-open-completions
提示的时候只要按空格就出来对于的,否则翻上下键不需要按其他键自动就补全了)
后退 Ctrl+Z
重做 Ctrl+Shift+Z
加缩进 Ctrl+]
减缩进 Ctrl+[
加注释 Alt+3
去注释 Alt+4

Python Shell快捷键
自动补全同上
上一条命令 Alt+P
下一条命令 Alt+N

树莓派摄像头学习必备 —— Picamera2 测试版发布

最近发布的 Raspberry Pi OS 映像,终于预装了Picamera2库的 beta 版本。它是旧 PiCamera 库的替代,也是未来树莓派摄像头的官方首选开发库。

从早期版本开始,PiCamera 就非常受用户欢迎,因为它提供了一种非常简单而开放的Raspberry Pi 摄像头调用方式,让大家远离了专有和闭源的摄像头API(比如Broadcom的)。

Picamera2 主要特点

1、支持命令行驱动,你可以将 Picamera2 的命令直接通过Python 解释器或 Python 脚本调用。
2、使用OpenGL加速硬件辅助渲染,或在X windows未运行时使用DRM/KMS进行高速渲染。
3、支持将现成的 Picamera2 组件嵌入到 Qt 应用程序中。
4、原生支持 numpy,使其与 OpenCV、TensorFlow 和其他 Python 库一起使用非常自然。
5、所有源代码都可以在Picamera2 GitHub 页面上获得,或者作为libcamera 项目的一部分。
6、支持所有官方树莓派相机,也支持一些第三方相机

还有一些功能,例如视频编码和录制(可自定义输出对象),同时录制音频和视频的能力。在摄像头图像上显示叠加层等等。

要了解更多信息,请查阅大量示例脚本应用程序,或查阅我们的Picamera2 用户手册

Picamera2 可以在 TensorFlow 的帮助下检测和圈出狗

安装和升级

Picamera2 仅在最近的 Bullseye (新的树莓派系统代号)上受支持。

Buster 或更早的版本不支持它,Raspberry Pi OS Legacy 也不支持。所有这些用户都只能继续使用旧的 PiCamera 库。

在最新的 Bullseye 系统上已经安装了 Picamera2。

需要命令行安装的话可以输入:

sudo apt install -y python3-picamera2

树莓派操作系统

Raspberry Pi OS 用户会发现新的系统中, Picamera2 已经完整安装,包括 Qt 和 OpenGL。

Raspberry Pi OS Lite 默认随 Picamera2 一起安装,但没有 Qt 和 OpenGL。原因是用 Raspberry Pi OS Lite 的低配Pi 运行基于 X Windows 的应用程序或通过 X Windows 显示堆栈进行渲染会比较卡。

如果需要在Raspberry Pi OS Lite上使用 Qt 和 OpenGL,可以这么安装。

sudo apt install -y python3-pyqt5 python3-opengl

如果你用的是未安装 Picamera2 的较早版本的 Bullseye,又不用 Qt 和 OpenGL 的话,安装它的命令:

sudo apt install -y python3-picamera2 –-no-install-recommends

之前通过 pip 安装过 Picamera2 的用户

一些用户可能以前使用pip,那需要先卸载再安装。当然,你可以继续用pip的方式。

如何尝试 Picamera2?

有一些示例脚本很有帮助,你可以下载并运行它们:

git clone https://github.com/raspberrypi/picamera2.git

python picamera2/examples/preview.py

在 Python 解释器中输入 Picamera2 指令

提示

如果遇到任何困难,请注意以下几点:

  • Raspberry Pi 3 或更早版本设备的用户将需要重新启用 Glamour(如果他们以前没有这样做)才能使用任何 X Windows/OpenGL 预览功能。
  • libcamera 在控制台窗口中可以非常“健谈”。如果这让你感到困扰,请在运行 Python 之前键入:export LIBCAMERA_LOG_LEVELS=*:3(或将其放入.bashrc)。
  • Picamera2使用一种特定类型的 Linux 系统内存,称为 CMA 内存。系统资源不足的话会有问题。

如果有任何其他问题或疑问,可加入树莓派摄像头论坛讨论。