20251202使用input命令模拟物理旋转让荣品RD-RK3588-MID开发板的LCD屏旋转90度

rk3588_t:/ # settings put system accelerometer_rotation 0
rk3588_t:/ # settings put system user_rotation 0
rk3588_t:/ # settings put system user_rotation 1
rk3588_t:/ # settings put system user_rotation 2
rk3588_t:/ # settings put system user_rotation 3


20251202使用input命令模拟物理旋转让荣品RD-RK3588-MID开发板的LCD屏旋转90度
2025/12/2 19:16


Microsoft Windows [版本 10.0.19045.6216]
(c) Microsoft Corporation。保留所有权利。

C:\Users\QQ>adb shell
rk3588_t:/ $ su
rk3588_t:/ #
rk3588_t:/ # settings put system accelerometer_rotation 0
rk3588_t:/ # settings put system user_rotation 0
rk3588_t:/ #
rk3588_t:/ # settings put system user_rotation 1
rk3588_t:/ #
rk3588_t:/ # settings put system user_rotation 2
rk3588_t:/ #
rk3588_t:/ # settings put system user_rotation 3
rk3588_t:/ #
rk3588_t:/ # settings put system user_rotation 4

Exception occurred while executing 'put':
java.lang.IllegalArgumentException: Invalid value: 4 for setting: user_rotation
        at com.android.providers.settings.SettingsProvider.validateSystemSettingValue(SettingsProvider.java:1972)
        at com.android.providers.settings.SettingsProvider.mutateSystemSetting(SettingsProvider.java:1940)
        at com.android.providers.settings.SettingsProvider.insertSystemSetting(SettingsProvider.java:1856)
        at com.android.providers.settings.SettingsProvider.call(SettingsProvider.java:468)
        at android.content.ContentProvider.call(ContentProvider.java:2511)
        at android.content.ContentProvider$Transport.call(ContentProvider.java:525)
        at com.android.providers.settings.SettingsService$MyShellCommand.putForUser(SettingsService.java:382)
        at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:278)
        at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
        at android.os.ShellCommand.exec(ShellCommand.java:38)
        at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:50)
        at android.os.Binder.shellCommand(Binder.java:1049)
        at android.os.Binder.onTransact(Binder.java:877)
        at android.os.Binder.execTransactInternal(Binder.java:1285)
        at android.os.Binder.execTransact(Binder.java:1244)
255|rk3588_t:/ #
255|rk3588_t:/ #


rk3588_t:/ # settings put system user_rotation 0
rk3588_t:/ #


rk3588_t:/ # settings put system user_rotation 1
rk3588_t:/ #


rk3588_t:/ # settings put system user_rotation 2
rk3588_t:/ #


rk3588_t:/ # settings put system user_rotation 3


https://chat.deepseek.com/a/chat/s/520fa508-bc6c-484d-9fcf-a40fc294768f
RK3588 Android13屏幕旋转命令指南
RK3588的Android13,请问如何使用命令旋转屏幕?
在Android中,屏幕旋转通常可以通过设置系统属性或者使用窗口管理器(WindowManager)来实现。在RK3588的Android13上,我们可以尝试以下几种方法:

使用settings命令修改系统设置中的用户旋转状态。

使用wm命令设置屏幕旋转。

直接设置系统属性persist.demo.hdmirotation或类似属性(这取决于设备制造商,RK平台可能有自己的实现)。

但是,请注意,不同的设备制造商可能会有不同的实现方式。在RK3588上,通常可以通过设置系统属性ro.sf.hwrotation来在启动时旋转屏幕,但这需要重启才能生效。对于动态旋转,我们通常使用Android提供的标准方法。

下面介绍两种常用的命令方法:

方法一:使用settings命令
Android提供了settings命令来修改系统设置。我们可以通过修改accelerometer_rotation(是否允许自动旋转)和user_rotation(用户选择的旋转角度)来实现。

首先,关闭自动旋转,然后设置旋转角度:

bash
# 关闭自动旋转
settings put system accelerometer_rotation 0

# 设置旋转角度(0、90、180、270)
settings put system user_rotation 0
其中,旋转角度可以是0(0度)、1(90度)、2(180度)、3(270度)。

方法二:使用wm命令
wm命令可以直接设置屏幕的旋转角度。

bash
# 设置屏幕旋转角度(0、90、180、270)
wm rotation 0
注意:wm命令在Android中可能已经被移除或限制,但在一些系统上仍然可用。如果不可用,可以尝试使用settings命令。

方法三:使用系统属性(特定平台)
在RK平台上,有时可以通过设置系统属性persist.demo.hdmirotation来旋转HDMI显示,但这可能不是标准方法,并且可能因系统版本而异。

例如,设置HDMI旋转90度:

bash
setprop persist.demo.hdmirotation 90
然后重启设备,或者重新插拔HD线(如果可行的话)。但这种方法不一定适用于动态旋转,而且可能只适用于HDMI显示。

总结
对于动态旋转屏幕,建议先尝试settings命令,因为这是Android的标准方法。如果不行,再尝试wm命令。如果是在特定平台上(如RK3588)且上述方法无效,可以查阅该平台的开发文档或咨询设备制造商,看是否有特定的系统属性可以控制。

注意:这些命令通常需要root权限才能执行。在非root设备上,普通应用无法修改这些设置,除非有系统签名权限。

请根据你的实际设备情况选择合适的方法。

在RK3588的Android 13系统中,有多种方法可以旋转屏幕。以下是几种常用的命令方式:

方法一:使用 wm 命令(推荐)
bash
# 旋转到竖屏(0度)
adb shell wm rotation 0

# 旋转到横屏(90度)
adb shell wm rotation 90

# 旋转到倒竖屏(180度)
adb shell wm rotation 180

# 旋转到倒横屏(270度)
adb shell wm rotation 270
方法二:修改系统属性
bash
# 设置屏幕旋转角度
adb shell setprop persist.vendor.sys.fw.rotation 0    # 竖屏
adb shell setprop persist.vendor.sys.fw.rotation 90   # 横屏
adb shell setprop persist.vendor.sys.fw.rotation 180  # 倒竖屏
adb shell setprop persist.vendor.sys.fw.rotation 270  # 倒横屏

# 重启显示服务使设置生效
adb shell killall surfaceflinger
方法三:使用 input 命令模拟物理旋转
bash
# 强制横屏
adb shell settings put system accelerometer_rotation 0
adb shell settings put system user_rotation 1

# 强制竖屏
adb shell settings put system accelerometer_rotation 0
adb shell settings put system user_rotation 0
方法四:通过 dumpsys 修改显示配置
bash
# 查看当前显示信息
adb shell dumpsys display

# 修改显示方向(需要root权限)
adb shell wm set-user-rotation 1  # 横屏
adb shell wm set-user-rotation 0  # 竖屏
方法五:永久性配置(需修改系统配置)
如果需要开机默认旋转,可以修改系统属性:

bash
# 设置永久性横屏
adb shell setprop ro.sf.hwrotation 90
adb shell setprop ro.sf.lcd_density 160  # 可能需要调整DPI

# 重启生效
adb reboot
实用脚本示例
创建一个批量执行脚本 rotate_screen.sh:

bash
#!/bin/bash
# 旋转屏幕脚本

echo "选择屏幕方向:"
echo "1. 竖屏 (0°)"
echo "2. 横屏 (90°)"
echo "3. 倒竖屏 (180°)"
echo "4. 倒横屏 (270°)"

read -p "请输入选择 [1-4]: " choice

case $choice in
    1)
        adb shell wm rotation 0
        echo "已设置为竖屏"
        ;;
    2)
        adb shell wm rotation 90
        echo "已设置为横屏"
        ;;
    3)
        adb shell wm rotation 180
        echo "已设置为倒竖屏"
        ;;
    4)
        adb shell wm rotation 270
        echo "已设置为倒横屏"
        ;;
    *)
        echo "无效选择"
        ;;
esac
注意事项
权限要求:部分命令可能需要root权限

ADB连接:确保设备已开启USB调试并连接成功

系统版本:不同Android版本命令可能略有差异

恢复默认:要恢复自动旋转,可执行:

bash
adb shell settings put system accelerometer_rotation 1
验证旋转结果
bash
# 检查当前旋转状态
adb shell dumpsys display | grep mCurrentOrientation
adb shell wm rotation
推荐使用方法一的 wm rotation 命令,这是Android官方推荐的方式,兼容性最好且无需重启即可生效。

内容概要:本文围绕六自由机械臂的人工神经网络(ANN)设计展开,重点研究了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程,并通过Matlab代码实现相关算法。文章结合理论推导与仿真实践,利用人工神经网络对复杂的非线性关系进行建模与逼近,提升机械臂运动控制的精与效率。同时涵盖了路径规划中的RRT算法与B样条优化方法,形成从运动学到动力学再到轨迹优化的完整技术链条。; 适合人群:具备一定机器人学、自动控制理论基础,熟悉Matlab编程,从事智能控制、机器人控制、运动学六自由机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)建模等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握机械臂正/逆运动学的数学建模与ANN求解方法;②理解拉格朗日-欧拉法在动力学建模中的应用;③实现基于神经网络的动力学补偿与高精轨迹跟踪控制;④结合RRT与B样条完成平滑路径规划与优化。; 阅读建议:建议读者结合Matlab代码动手实践,先从运动学建模入手,逐步深入动力学分析与神经网络训练,注重理论推导与仿真实验的结合,以充分理解机械臂控制系统的设计流程与优化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值