双轴代码转换

目录

双轴代码转换

二维转三维

5.0转6.0


双轴代码转换


二维转三维

添加z方向数值

domain extent [-width*2.0] [width*2.0] [-width*2.0] [width*2.0] ...
        [-height*2.0] [height*2.0]
set random 10001
;比较标准的话可能设置40000个颗粒

更新墙体指针,并重新定义y和z方向的尺寸/应力

def wall_ini
    wpup=wall.find(2)
    wpdown=wall.find(1)
    wpleft=wall.find(3)
    wpright=wall.find(4)
    wpfront=wall.find(5)
    wpback=wall.find(6)
end
@wall_ini

def computer_chicun
    wlx=wall.pos.x(wpright)-wall.pos.x(wpleft)
    wly=wall.pos.y(wpback)-wall.pos.y(wpfront)
    wlz=wall.pos.z(wpup)-wall.pos.z(wpdown)
end

伺服系数除以面积

gx=1.0*servo_factor*(wly*wlz)/(zongKNX*global.timestep) 
gy=1.0*servo_factor*(wlx*wlz)/(zongKNY*global.timestep) 

除此之外,因为2D的y变为了现在3D的z,一些对应的细节也需要更改。

[strainRate=1e-2]
wall attribute zvel [strainRate*wlz] range id 1
wall attribute zvel [-strainRate*wlz] range id 2

5.0转6.0


new 转为 model new

restore sample 转为 model restore "sample"

关于模型的操作在前面需要加上model

字符串需要加上双引号

model cycle 2000 calm 50
ball property "fric" 0.5
model solve
model save "sample"

cmat需要在前面加上contact

contact cmat add 1 model linearpbond method deform "emod" 1e8 "kratio" 1.5 ...
                            pb_deform "emod" 1e8 "kratio" 1.5 ...
                            property "pb_coh" 1e6 "pb_ten" 1e6 "pb_fa" 40 "fric" 0.5 ...
                            range contact type "ball-ball"
contact cmat apply

fish call back -1.0 @computer_strain  改为 fish callback add @computer_strain -1.0

在PFC6.0中,yvel 被改为了velocity-y

→找不到对应字符的情况应该到手册中查找

### Arduino 双轴按键摇杆控制蜂鸣器 对于Arduino项目中使用双轴按键摇杆来控制蜂鸣器的情况,可以编写一段程序实现当按下摇杆按钮时发出声音,并且根据X或Y轴的位置改变音调。下面是一个简单的例子说明如何连接并编程这样的电路。 硬件设置方面,假设已经按照教程中的指导完成了PS2游戏摇杆与Arduino之间的接线工作[^1]。接下来展示的是具体的软件部分——即上传到微控制器上的草图(sketch),它会读取来自Joystick的数据并通过模拟信号调整PWM引脚上连接的压电式蜂鸣器频率。 ```cpp // 定义输入输出针脚编号 const int buzzerPin = 9; // 连接到蜂鸣器的PWM端口 const int buttonPin = 2; // 摇杆开关所连DIO管脚 const int xAxisPin = A0; // X方向位移对应的ADC通道 const int yAxisPin = A1; // Y方向位移对应的ADC通道 void setup() { pinMode(buttonPin, INPUT_PULLUP); // 设置内部上拉电阻使默认状态为高电平(HIGH) } void loop() { static unsigned long lastDebounceTime = 0; bool isPressedNow = digitalRead(buttonPin) == LOW; if (isPressedNow && millis() - lastDebounceTime > 50){ lastDebounceTime = millis(); int xValue = analogRead(xAxisPin); int yValue = analogRead(yAxisPin); tone(buzzerPin, map(constrain((xValue + yValue)/2 , 0, 1023), 0, 1023, 100, 4000)); // 发声 delay(100); // 延迟一段时间防止抖动触发多次事件 } else{ noTone(buzzerPin); // 如果未按则停止发声 } } ``` 这段代码实现了基本的功能:每当检测到摇杆被按下之后就会播放一次由当前位置决定的声音;而一旦松开,则立即静音。这里采用`map()`函数将从两个轴得到的平均值转换成适合驱动扬声器元件变化范围内的数值,并通过`tone()`命令让其产生相应周期性的方波形电压波动从而形成不同高低频次的声音效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值