quark-n的一些使用技巧

https://wiki.seeedstudio.com/cn/Quantum-Mini-Linux-Development-Kit/

 

 

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

 

系统默认用户和密码

  • 普通用户:
  • Root用户:

 

 

 

  1. 网络配置:

Command to Check WiFi:

  • Check Device List

$ sudo nmcli dev

Note: if a device's status is unmanaged it means this device is not accessed by the NetworkManager and you need to clear the settings under /etc/network/interfaces and reboot.

  • Start WiFi

$ sudo nmcli r wifi on

  • Scan Surrounding WiFi Hotspots

$ sudo nmcli dev wifi

  • Connect to WiFi Hotspot

$ sudo nmcli dev wifi connect "SSID" password "PASSWORD"

The "SSID" and "Password" need to be replaced with your actual WiFi's SSID and password.
If a connection is successfully established your board will be automatically connected to your specified WiFi on system reboot.

  • Disconnect WiFi

$ sudo nmcli dev disconnect wlan0

  • If there are mutiple active WiFi devices you can specify your expected WiFi device by using the ifname option in the following command. For example if you want to operate wlan1 you can do it this way:

sudo nmcli device wifi connect "ssid" password "password" ifname wlan1

 

  1. 启动网络http://wiki.friendlyarm.com/wiki/index.php/Use_NetworkManager_to_configure_network_settings
  1. 镜像文件 https://files.seeedstudio.com/wiki/Quantum-Mini-Linux-Dev-Kit/quark-n-21-1-11.zip
  1. 将TF卡系统拷贝到emmc,count的值需要先确定emmc的扇区数量

 

sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=512 count=30717952 &

sudo watch -n 5 pkill -USR1 ^dd$

 

  1. 擦除emmc,count的值需要先确定emmc的扇区数量 sudo dd if=/dev/zero of=/dev/mmcblk1 bs=512 count=30717952

 

  1. 重启网卡设备

sudo ifconfig wlan0 down

sudo ifconfig wlan0 up

 

  1. 连接网络的时候,如果需要输入提示密码 sudo nmcli --ask c up SSID

 

  1. 如果总是出现提示密码未提供时,并且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

 

  1. Linux下声卡独占的原因和解决 简单解决办法如下: 在/boot/defaults/loader.conf或/etc/sysctl.conf中加入下面两行。

 

hw.snd.pcm0.vchans=4

hw.snd.maxautovchans=4

 

  1. 播放视频

sudo mplayer -vo fbdev2:/dev/fb1 -x 240 -y 135 -zoom /home/pi/Videos/BadApple.mp4

 

视频最好转换到和屏幕一个分辨率,不然就会卡顿掉帧

 

  1. 视频分辨率转换

 ffmpeg -i /home/pi/Videos/BadApple.mp4 -strict -2 -s 240x134 /home/pi/Videos/BadApple_240x134.mp4

         分辨率必须是2的倍数所以,所以不能是240x135,而是240x134

 

  1. 录音测试 查看录音设备:

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 指定生成的文件格式

 

  1. apt-get强制使用Ipv4

sudo apt-get -o Acquire::ForceIPv4=true update

 

永久解决办法:

创建文件 /etc/apt/apt.conf.d/99force-ipv4

加入代码: Acquire::ForceIPv4 "true";

 

  1. 蓝牙连接音箱或耳机 系统默认缺少软件包,安装下列软件包,重启之后删除之前的配对,然后重新配对

sudo apt-get install pulseaudio-module-bluetooth bluez-tools

 

         以下命令用于启动时自动运行

pactl load-module module-bluetooth-discover

 

 

TF卡有系统时启动到emmc分区

  1. 将 npi-config 覆盖拷贝到 /usr/bin/npi-config
  1. 运行sudo npi-config
  1. 3 Boot Options -> B3 Boot device -> D3 emmc

 

 

使用新的dts的中的蓝色led设备

  1. 下载源代码
  1. mkdir ~/GIT

cd ~/GIT

git clone https://gitee.com/coolflyreg163/quark-n.git

 

  1. 将 sun8i-h3-atom_n.dtb 替换到 /boot/sun8i-h3-atom_n.dtb
  1. cp ~/GIT/quark-n/sun8i-h3-atom_n.dtb /boot/
  1. 重启
  1. sudo shutdown -r now
  1. 用于测试的Python代码,gpio_key_led.py
  1. 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()

 

  1. gpio_key_led.py是按下Key后,亮起蓝色led
  1.  
  1. 在/sys/class/leds下,显示 pwr_led(黄), status_led(白), usr_led(蓝)
  1. ls /sys/class/leds/
  1. 或运行以下命令
  1. sudo cat /sys/kernel/debug/gpio
  1. 输出结果里有一行
  1. gpio-359 (|usr_led) out hi
  1. 即表示成功

 

 

用于自带LCD屏的数码时钟

需要先执行:使用新的dts的中的蓝色led设备

 

pip3 install fire ruamel.yaml pygame==1.9.6 python-periphery PyYAML Markdown tornado  smbus Pillow numpy

 

timedatectl  set-timezone  Asia/Shanghai

ln -s  /usr/share/timezone/Asia/Shanghai /etc/localtime

 

# 24小时显示

vi /etc/default/locale

LANG=en_US.UTF-8

LC_TIME=C.UTF-8

 

 

 

  1. 下载源代码
  1. mkdir ~/GIT

cd ~/GIT

git clone https://gitee.com/coolflyreg163/quark-n.git

 

  1. 如果很早之前已经下载过源代码,需要更新,可以运行如下命令(这一步非必须)

cd ~/GIT/quark-n

git pull origin master

 

  1. 备份之前的Clock

cd /home/pi/WorkSpace/

mv Clock Clock_bak

 

  1. 将Clock放置到指定位置

ln -s /home/pi/GIT/quark-n/WorkSpace/Clock ~/WorkSpace/

 

  1. 将启动脚本放置到指定位置

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/

 

  1. 从这里,下载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

 

  1. 运行如下命令进行安装

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

 

  1. ** ruamel.yaml 需要使用阿里云的镜像来安装,豆瓣的镜像里没有! ** 到达这一步,已经在重启后会自动启动。下面是手动命令
  1. 命令提示:
  1. 启动 (手动启动后按Ctrl + C可脱离)

sudo systemctl start ui_clock

  1. 停止

sudo systemctl stop ui_clock

  1. 查看状态

sudo systemctl status ui_clock

  1. 重启系统

sudo shutdown -r now

 

可以手工启动时钟界面:

/home/pi/WorkSpace/Scripts/start_ui_clock.sh

 

数码屏样式

目前数码屏有3种样式,在WorkSpace/Clock/config.yaml中的user-interface.clock.style里配置,值为1、2、3中的一个

  • 样式1:

 

  • 样式2:

 

  • 样式3 (感谢 Geno [格诺] 的PR):

 

 

操作方式

  1. GPIO按钮操作
  1. 按一下松开,界面上元素循环显示,不同界面,有不同反应
  2. 长按会显示进度条,根据时间不同,有不同的功能
    1. 长按 小于 2秒,不做任何操作
    2. 长按 大于等于 2秒 和 小于 3秒之间,界面显示YES,执行确认操作
    3. 长按 大于等于 3秒 和 小于 5秒之间,界面显示Menu View,进入到菜单界面
    4. 长按 大于等于 5秒 和 小于 10秒之间,界面目前无任何操作,会渐渐显示出POWER OFF
    5. 长按 大于等于 10秒,关机
    6. 点击界面元素,会有变化,不同界面有不同反应
    7. 除了菜单界面的,任意界面,将鼠标移动到最左侧,将显示进入菜单的提示,点击鼠标即可进入菜单界面
    8. 欢迎界面
      1. 无任何操作,定时跳转到数字表盘
      2. 数字表盘界面
        1. 界面元素,分为4行
          1. 第一行循环显示,鼠标可点击
            1. CPU温度 + CPU占比
            2. MEM(内存)剩余空间 + 使用量占比
            3. DSK(磁盘,TF或EMMC)剩余空间 + 使用量占比
            4. 第二行时间,12/24小时切换显示,鼠标可点击
            5. 第三行日期
            6. 第四行,鼠标可点击
              1. IP + 下载速度
              2. 上行速度 + 下载速度
              3. GPIO单按,同时循环以上所有元素
              4. 菜单界面,任意界面长按 大于等于 3秒 和 小于 5秒之间,界面显示Menu View,进入到菜单界面
                1. 界面元素
                  1. 时钟:切换到数字表盘(由群内大神 “海 风” 提供原始Clock界面程序)
                  2. 孙悟空:开启关闭wukong-robot。需要修改后的悟空版本。参见 https://gitee.com/coolflyreg163/wukong-in-quark-n
                  3. 相机:可以支持PS3 Eye摄像头进行拍照,或者其他USB免驱动摄像头
                  4. 相册:可以查看通过摄像头拍摄的照片
                  5. 启动画面:切换启动图
                  6. 设置:正在开发中
                  7. 关闭:退出ui_clock
                  8. GPIO操作
                    1. 长按 大于等于 2秒 和 小于 3秒之间,界面显示YES时,执行确认操作
                    2. 其他功能正在开发中
  1. 鼠标操作
  1. 界面说明

 

 

功能列表

  •  数字表盘
  •  启动画面:切换启动欢迎图界面
  •  相机:从USB摄像头拍照
  •  相册:查看摄像头拍照的列表
  •  孙悟空:集成wukong-robot,需细化功能需求
  •  加入MPU6050,进行姿态操作,增加甩飞Quark-N的几率
  •  实现设置界面的功能,可调整一些参数

 

 

与WuKong-robot共同使用

注意:需要先执行:Linux下声卡独占的原因和解决

  1. 备份原始自带的WuKong
  1. cd /home/pi/WorkSpace/WuKong

mv wukong-robot wukong-robot_bak

 

  1. 从 https://gitee.com/coolflyreg163/wukong-in-quark-n 下载WuKong
  1. cd /home/pi/WorkSpace/WuKong

git clone https://gitee.com/coolflyreg163/wukong-in-quark-n wukong-robot

  1. 创建所需目录,执行如下命令:
  1. mkdir /home/pi/WorkSpace/WuKong/wukong-robot/temp

chmod 777 /home/pi/WorkSpace/WuKong/wukong-robot/temp

  1. 把这个库里的 /WuKong/contrib/LcdDisplay.py 替换到 /home/pi/.wukong/contrib/ 文件夹下的同名文件
  1. cp ~/GIT/quark-n/WuKong/contrib/LcdDisplay.py /home/pi/.wukong/contrib/
  1. 在 /home/pi/.wukong/config.yml 中添加配置。注意要符合格式
  1. quark_ui:

    api_host: 'http://127.0.0.1:4096'

    validate: '57b7d993ffbd75aca3fe2060cf204f93'

    enable: true

  1. 目前snowboy的在线训练无法使用了,暂时在配置中改为:hotword: 'wukong.pmdl',唤醒词:孙悟空
  1. 其他可以参考wukong-robot原版的配置
  1. 如果需要使用悟空进行拍照,需要安装fswebcam,运行如下命令安装
  1. sudo apt-get install fswebcam
  1. 安装python3中的websocket的方法:
  1. 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直接可使用

 

从ubuntu 16.04 升级到ubuntu 18.04 LTS

  1. 首先更新系统到最新版本,运行如下命令:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get autoremove

sudo apt dist-upgrade

  1. 安装update-manager-core,执行如下命令:

sudo apt-get install update-manager-core

  1. 执行系统升级,执行如下命令:

sudo do-release-upgrade

 

升级过程中遇到的问题

  1. 提示 “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

  1. 如果还有问题仍然阻止升级,那么我们需要查看升级日志,来确定具体为什么原因无法升级

cat /var/log/dist-upgrade/main.log

 

升级到ubuntu 18.04 LTS后,按照如下步骤,安装ui_clock的依赖包

注意:升级后,python3的版本变为3.6.9,之前系统的3.5.2的包已经无法使用

  1. 首先安装python3的pip模块

sudo apt-get install python3-pip

  1. 安装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

 

从ubuntu 18.04 升级到ubuntu 20.04 LTS

升级的基本的步骤,和从16.04到18.04的步骤1、2、3里的命令是一毛一样的

注意,需要先从16.04升级到18.04

 

升级到ubuntu 20.04 LTS后,按照如下步骤,安装ui_clock的依赖包

  1. 安装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的软件源

ubuntu 18.04的版本代号是bionic,ubuntu 20.04的版本的代号是focal

升级的时候,do-release-upgrade脚本中的部分会自动更换软件源。

也可以手动更换国内的源,链接如下:

https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/

 

posted @ 2022-05-12 20:24  jason_wei  阅读(599)  评论(0编辑  收藏  举报