quark-n的一些使用技巧
wiki: https://wiki.seeedstudio.com/cn/Quantum-Mini-Linux-Development-Kit/
大神项目地址:https://github.com/peng-zhihui/Project-Quantum
对应的外壳:https://gitee.com/coolflyreg163/quark-n-3d
-
启动网络 http://wiki.friendlyarm.com/wiki/index.php/Use_NetworkManager_to_configure_network_settings
-
镜像文件 https://files.seeedstudio.com/wiki/Quantum-Mini-Linux-Dev-Kit/quark-n-21-1-11.zip
-
将TF卡系统拷贝到emmc,count的值需要先确定emmc的扇区数量
sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=512 count=30717952 &
sudo watch -n 5 pkill -USR1 ^dd$
-
擦除emmc,count的值需要先确定emmc的扇区数量 sudo dd if=/dev/zero of=/dev/mmcblk1 bs=512 count=30717952
-
重启网卡设备
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
-
连接网络的时候,如果需要输入提示密码 sudo nmcli --ask c up SSID
-
如果总是出现提示密码未提供时,并且wifi的加密是wpa/wpa2个人级时,按照下方配置参数 主要参数:
- 802-11-wireless-security.key-mgmt: wpa-psk
- 802-11-wireless-security.proto: wpa
- 802-11-wireless-security.pairwise: ccmp,tkip
- 802-11-wireless-security.group: ccmp,tkip
- 802-11-wireless-security.psk-flags: 1 (agent-owned)
密码写入文件,wpa-psk类型内容格式:802-11-wireless-security.psk:secret12345
执行如下命令启动wifi连接
sudo nmcli c up [CONNECTION NAME | UUID] passwd-file /home/pi/.nmcli/passwd-wlan0
- Linux下声卡独占的原因和解决 简单解决办法如下: 在/boot/defaults/loader.conf或/etc/sysctl.conf中加入下面两行。
hw.snd.pcm0.vchans=4
hw.snd.maxautovchans=4
- 播放视频
sudo mplayer -vo fbdev2:/dev/fb1 -x 240 -y 135 -zoom /home/pi/Videos/BadApple.mp4
视频最好转换到和屏幕一个分辨率,不然就会卡顿掉帧
- 视频分辨率转换
ffmpeg -i /home/pi/Videos/BadApple.mp4 -strict -2 -s 240x134 /home/pi/Videos/BadApple_240x134.mp4
分辨率必须是2的倍数所以,所以不能是240x135,而是240x134
- 录音测试 查看录音设备:
sudo arecord –l
录音和播放
sudo arecord -Dhw:2,0 -d 10 -f cd -r 44100 -c 2 -t wav test.wav
sudo arecord -Dhw:2,0 -f cd -r 16000 -c 1 -t wav record.wav
sudo aplay -Dhw:2,0 /home/pi/Music/test.wav
参数解析
- -D 指定了录音设备,0,1 是card 0 device 1的意思,也就是TDM_Capture
- -d 指定录音的时长,单位时秒
- -f 指定录音格式,通过上面的信息知道只支持 cd cdr dat
- -r 指定了采样率,单位时Hz
- -c 指定channel 个数
- -t 指定生成的文件格式
- apt-get强制使用Ipv4
sudo apt-get -o Acquire::ForceIPv4=true update
永久解决办法:
创建文件 /etc/apt/apt.conf.d/99force-ipv4
加入代码: Acquire::ForceIPv4 "true";
- 蓝牙连接音箱或耳机 系统默认缺少软件包,安装下列软件包,重启之后删除之前的配对,然后重新配对
sudo apt-get install pulseaudio-module-bluetooth bluez-tools
以下命令用于启动时自动运行
pactl load-module module-bluetooth-discover
- 将 npi-config 覆盖拷贝到 /usr/bin/npi-config
- 运行sudo npi-config
- 3 Boot Options -> B3 Boot device -> D3 emmc
- 下载源代码
mkdir ~/GIT cd ~/GIT git clone https://gitee.com/coolflyreg163/quark-n.git
- 将 sun8i-h3-atom_n.dtb 替换到 /boot/sun8i-h3-atom_n.dtb
cp ~/GIT/quark-n/sun8i-h3-atom_n.dtb /boot/
- 重启
sudo shutdown -r now
- 用于测试的Python代码,gpio_key_led.py
from periphery import LED import time ledUser = LED("usr_led", True) while True: time.sleep(1) ledUser.write(255) time.sleep(1) ledUser.write(0) ledUser.close()
- gpio_key_led.py是按下Key后,亮起蓝色led
- 在/sys/class/leds下,显示 pwr_led(黄), status_led(白), usr_led(蓝)
或运行以下命令
ls /sys/class/leds/
输出结果里有一行sudo cat /sys/kernel/debug/gpio
即表示成功gpio-359 ( |usr_led ) out hi
需要先执行:使用新的dts的中的蓝色led设备
- 下载源代码
mkdir ~/GIT cd ~/GIT git clone https://gitee.com/coolflyreg163/quark-n.git
- 如果很早之前已经下载过源代码,需要更新,可以运行如下命令(这一步非必须)
cd ~/GIT/quark-n git pull origin master
- 备份之前的Clock
cd /home/pi/WorkSpace/ mv Clock Clock_bak
- 将Clock放置到指定位置
ln -s /home/pi/GIT/quark-n/WorkSpace/Clock ~/WorkSpace/
- 将启动脚本放置到指定位置
chmod +x /home/pi/GIT/quark-n/WorkSpace/Scripts/start_ui_clock.sh mkdir -p ~/WorkSpace/Scripts/services ln -s /home/pi/GIT/quark-n/WorkSpace/Scripts/services/ui_clock.service ~/WorkSpace/Scripts/services/ ln -s /home/pi/GIT/quark-n/WorkSpace/Scripts/start_ui_clock.sh ~/WorkSpace/Scripts/
- 从这里,下载2个字体文件:“STHeiti Light.ttc”,“PingFang.ttc”,拷贝到~/WorkSpace/Clock/fonts。
或运行命令
https://gitee.com/coolflyreg163/quark-n/releases/Fonts
cd ~/WorkSpace/Clock/fonts wget https://gitee.com/coolflyreg163/quark-n/attach_files/603438/download/STHeiti%20Light.ttc wget https://gitee.com/coolflyreg163/quark-n/attach_files/603439/download/PingFang.ttc
- 运行如下命令进行安装
** ruamel.yaml 需要使用阿里云的镜像来安装,豆瓣的镜像里没有! ** 到达这一步,已经在重启后会自动启动。下面是手动命令
cd /home/pi/WorkSpace/Clock/ sudo python -m pip install --index http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r requirements.txt mkdir /home/pi/WorkSpace/Clock/logs sudo ln -s /home/pi/WorkSpace/Scripts/services/ui_clock.service /lib/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable ui_clock
- 命令提示:
- 启动 (手动启动后按Ctrl + C可脱离)
sudo systemctl start ui_clock
- 停止
sudo systemctl stop ui_clock
- 查看状态
sudo systemctl status ui_clock
- 重启系统
sudo shutdown -r now
- 启动 (手动启动后按Ctrl + C可脱离)
目前数码屏有4种样式,在WorkSpace/Clock/config.yaml中的user-interface.clock.style里配置,值为1、2、3、4中的一个
- 样式1:
- 样式2:
- 样式3 (感谢 Geno [格诺] 的PR):
- 样式4 (感谢墨云提供的行星运行基础程序)
- GPIO按钮操作
- 按一下松开,界面上元素循环显示,不同界面,有不同反应
- 长按会显示进度条,根据时间不同,有不同的功能
- 长按 小于 2秒,不做任何操作
- 长按 大于等于 2秒 和 小于 3秒之间,界面显示YES,执行确认操作
- 长按 大于等于 3秒 和 小于 5秒之间,界面显示Menu View,进入到菜单界面
- 长按 大于等于 5秒 和 小于 10秒之间,界面目前无任何操作,会渐渐显示出POWER OFF
- 长按 大于等于 10秒,关机
- 鼠标操作
- 点击界面元素,会有变化,不同界面有不同反应
- 界面说明
- 除了菜单界面的,任意界面,将鼠标移动到最左侧,将显示进入菜单的提示,点击鼠标即可进入菜单界面
- 欢迎界面
- 无任何操作,定时跳转到数字表盘
- 数字表盘界面
- 界面元素,分为4行
- 第一行循环显示,鼠标可点击
- CPU温度 + CPU占比
- MEM(内存)剩余空间 + 使用量占比
- DSK(磁盘,TF或EMMC)剩余空间 + 使用量占比
- 第二行时间,12/24小时切换显示,鼠标可点击
- 第三行日期
- 第四行,鼠标可点击
- IP + 下载速度
- 上行速度 + 下载速度
- 第一行循环显示,鼠标可点击
- GPIO单按,同时循环以上所有元素
- 界面元素,分为4行
- 菜单界面,任意界面长按 大于等于 3秒 和 小于 5秒之间,界面显示Menu View,进入到菜单界面
- 界面元素
- 时钟:切换到数字表盘(由群内大神 “海 风” 提供原始Clock界面程序)
- 孙悟空:开启关闭wukong-robot。需要修改后的悟空版本。参见 https://gitee.com/coolflyreg163/wukong-in-quark-n
- 相机:可以支持PS3 Eye摄像头进行拍照,或者其他USB免驱动摄像头
- 相册:可以查看通过摄像头拍摄的照片
- 启动画面:切换启动图
- 设置:正在开发中
- 关闭:退出ui_clock
- GPIO操作
- 长按 大于等于 2秒 和 小于 3秒之间,界面显示YES时,执行确认操作
- 其他功能正在开发中
- 界面元素
- 数字表盘
- 启动画面:切换启动欢迎图界面
- 相机:从USB摄像头拍照
- 相册:查看摄像头拍照的列表
- 孙悟空:集成wukong-robot,需细化功能需求
- 加入MPU6050,进行姿态操作,增加甩飞Quark-N的几率
- 实现设置界面的功能,可调整一些参数
注意:需要先执行:Linux下声卡独占的原因和解决
- 备份原始自带的WuKong
cd /home/pi/WorkSpace/WuKong mv wukong-robot wukong-robot_bak
- 从 https://gitee.com/coolflyreg163/wukong-in-quark-n 下载WuKong
cd /home/pi/WorkSpace/WuKong git clone https://gitee.com/coolflyreg163/wukong-in-quark-n wukong-robot
- 创建所需目录,执行如下命令:
mkdir /home/pi/WorkSpace/WuKong/wukong-robot/temp chmod 777 /home/pi/WorkSpace/WuKong/wukong-robot/temp
- 把这个库里的 /WuKong/contrib/LcdDisplay.py 替换到 /home/pi/.wukong/contrib/ 文件夹下的同名文件
cp ~/GIT/quark-n/WuKong/contrib/LcdDisplay.py /home/pi/.wukong/contrib/
- 在 /home/pi/.wukong/config.yml 中添加配置。注意要符合格式
quark_ui: api_host: 'http://127.0.0.1:4096' validate: '57b7d993ffbd75aca3fe2060cf204f93' enable: true
- 目前snowboy的在线训练无法使用了,暂时在配置中改为:hotword: 'wukong.pmdl',唤醒词:孙悟空
- 其他可以参考wukong-robot原版的配置
- 如果需要使用悟空进行拍照,需要安装fswebcam,运行如下命令安装
sudo apt-get install fswebcam
- 安装python3中的websocket的方法:
sudo aptitude install python3-websocket python3-websockets
- RTL8821CU(8811cu): https://gitee.com/coolflyreg163/rtl8821cu 内有ko文件,quark-n可直接可使用
- RTL8723DU:https://gitee.com/coolflyreg163/rtl8723du 内有ko文件,quark-n直接可使用
- 首先更新系统到最新版本,运行如下命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt dist-upgrade
- 安装update-manager-core,执行如下命令:
sudo apt-get install update-manager-core
- 执行系统升级,执行如下命令:
sudo do-release-upgrade
- 提示 “Your python3 install is corrupted. Please fix the ‘/usr/bin/python3’ symlink.”,执行如下命令:
sudo ln -sf /usr/bin/python2.7 /usr/bin/python
sudo ln -sf /usr/bin/python3.5 /usr/bin/python3
- 如果还有问题仍然阻止升级,那么我们需要查看升级日志,来确定具体为什么原因无法升级
cat /var/log/dist-upgrade/main.log
注意:升级后,python3的版本变为3.6.9,之前系统的3.5.2的包已经无法使用
- 首先安装python3的pip模块
sudo apt-get install python3-pip
- 安装python3的包 注意:安装pygame的时候,时间比较长,耐心等待
sudo python3 -m pip install fire
sudo python3 -m pip install ruamel.yaml
sudo python3 -m pip install pygame==1.9.6
sudo python3 -m pip install python-periphery
sudo python3 -m pip install PyYAML
sudo python3 -m pip install Markdown
sudo python3 -m pip install tornado
sudo python3 -m pip install smbus
sudo python3 -m pip install Pillow
sudo python3 -m pip install numpy
注意:如果使用pip安装numpy失败,可以使用如下命令安装numpy
sudo apt-get install python3-numpy
升级的基本的步骤,和从16.04到18.04的步骤1、2、3里的命令是一毛一样的
注意,需要先从16.04升级到18.04
- 安装python3的包 注意:安装pygame的时候,时间比较长,耐心等待
sudo python3 -m pip install fire
sudo python3 -m pip install ruamel.yaml
sudo python3 -m pip install pygame==1.9.6
sudo python3 -m pip install python-periphery
sudo python3 -m pip install PyYAML
sudo python3 -m pip install Markdown
sudo python3 -m pip install tornado
sudo python3 -m pip install smbus
sudo python3 -m pip install Pillow
sudo python3 -m pip install numpy
ubuntu 18.04的版本代号是bionic,ubuntu 20.04的版本的代号是focal
升级的时候,do-release-upgrade脚本中的部分会自动更换软件源。
也可以手动更换国内的源,链接如下:
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/