① 電梯的工作程序代碼用JAVA語言可以嗎可以的話速求!
java 肯定可以,首先要解決虛擬機,就是電梯程序當中要有虛擬機運行,然後在虛擬機的基礎上編寫java程序去執行。
但是一般直接和硬體交互 一般用PLC
② 樂高ev3單光感巡線程序怎麼編
採用反光強度模式,設置一個閾值,低於閾值左轉,高於閾值右轉。右側巡線模式。
③ c語言編寫樂高ev3的軟體及基本演算法最好有圖。
#include<stdlib.h> #include<stdio.h> /*n表示幾等分,n+1表示他輸出的個數*/ int RungeKutta(double y0,double a,double b,int n,double *x,double *y,int style,double (*function)(double,double)) { double h=(b-a)/n,k1,k2,k3,k4; int i; // x=(double*)malloc((n+1)*sizeof(double)); // y=(double*)malloc((n+1)*sizeof(double)); x[0]=a; y[0]=y0; switch(style) { case 2: for(i=0;i<n;i++) { x[i+1]=x[i]+h; k1=function(x[i],y[i]); k2=function(x[i]+h/2,y[i]+h*k1/2); y[i+1]=y[i]+h*k2; } break; case 3: for(i=0;i<n;i++) { x[i+1]=x[i]+h; k1=function(x[i],y[i]); k2=function(x[i]+h/2,y[i]+h*k1/2); k3=function(x[i]+h,y[i]-h*k1+2*h*k2); y[i+1]=y[i]+h*(k1+4*k2+k3)/6; } break; case 4: for(i=0;i<n;i++) { x[i+1]=x[i]+h; k1=function(x[i],y[i]); k2=function(x[i]+h/2,y[i]+h*k1/2); k3=function(x[i]+h/2,y[i]+h*k2/2); k4=function(x[i]+h,y[i]+h*k3); y[i+1]=y[i]+h*(k1+2*k2+2*k3+k4)/6; }
④ 樂高ev3編程課程怎麼上的
樂高EV3是模塊化編程,使用滑鼠拖拽可以實現編程。
對於Python愛好者,ev3dev是個不錯的選擇,它和LeJOS的環境准備很相似,也需要microSD卡來製作操作系統,用VS Code裡面的擴展可以很
容易的進行開發、下載程序到EV3。
對於剛開始接觸編程的小朋友(如果上初中了,別再搭積木了,還是開始學編程語言吧),可能直接學習編程語言稍有困難,Scratch 這樣的拖拽
積木(我習慣稱之為功能塊)倒是不錯的選擇。Scratch升級到3.0後,除了界面發生變化,還提供了和EV3相關的擴展功能塊。
⑤ 急求電梯的匯編程序代碼
經過兩天的編寫,,寫了一個大概樣子吧
功能如下:1,先假設沒上樓之前,樓層運行看不到(沒圖形),可以當做隨機看待。
2。當在某層按電梯開關後,在屏幕顯示電梯停到該指定樓層的圖形狀態。
3。隨後可以按想去的樓層,在屏幕顯示電梯運動過程,,
4,可選擇是否還執行本程序(坐電梯)
匯編運行本程序過程:
FLOOR YOU SIT NOW(1-9H): (輸入某要在的樓層)
FLOOR YOU WANT GO(1-9H); (輸入某想去的樓層)
WANT EXPERIENCE AGAIN(Y/N).. (選擇是否繼續)
源程序如下:(其中由於時間有限解釋得不是很細)
;用於在模擬樓房方框左邊顯示樓層號碼
.8086
FNUM MACRO
LOCAL ML1
PUSH CX
PUSH AX
PUSH DX
PUSH SI
MOV CH,13H
MOV CL,31H
MOV SI,9
ML1: MOV AH,02H
MOV DH,CH
MOV DL,1FH
INT 10H
MOV AH,02H
MOV DL,CL
INT 21H
DEC CH
INC CL
DEC SI
JNZ ML1
POP SI
POP DX
POP AX
POP CX
ENDM
;用於顯示未上電梯時的模擬狀態圖形
SITUATION MACRO NOWF
LOCAL L1,L2,L3,L4,L5,L6,L7,L8,PASS1
MOV AH,03H
INT 10H
FNUM
MOV AH,02H
INT 10H
MOV SI,101H
L0: MOV AH,0CH
MOV DX,LASTF
MOV CX,SI
MOV AL,0
INT 10H
INC SI
CMP SI,120H
JNE L0
MOV BH,1H
MOV SI,100H
L1: MOV AH,0CH
MOV DX,20H
MOV CX,SI
MOV AL,BH
INT 10H
ADD SI,1H
INC BH
CMP SI,120H
JNE L1
MOV SI,20H
MOV BH,1H
L2: MOV AH,0CH
MOV DX,SI
MOV CX,100H
MOV AL,BH
INT 10H
ADD SI,1H
INC BH
CMP SI,9BH
JNE L2
MOV SI,100H
MOV BH,1H
L3: MOV AH,0CH
MOV DX,9BH
MOV CX,SI
MOV AL,BH
INT 10H
INC BH
INC SI
CMP SI,120H
JNE L3
MOV SI,20H
MOV BH,1H
L4: MOV AH,0CH
MOV DX,SI
MOV CX,120H
MOV AL,BH
INT 10H
ADD SI,1H
INC BH
CMP SI,9BH
JNE L4
MOV FLAG1,1
MOV DI,NOWF ;NOWFLOOR
MOV SI,101H
L5: MOV AH,0CH
MOV DX,DI
MOV CX,SI
MOV AL,1
INT 10H
INC SI
CMP SI,120H
JNE L5
ENDM
;用於顯示電梯運動
MOVEF MACRO NOWF,LASTF
LOCAL L1,L2,L3,L4,L5,L6,L7,L8,PASS1
MOV BH,1H
MOV SI,100H
L1: MOV AH,0CH
MOV DX,20H
MOV CX,SI
MOV AL,BH
INT 10H
ADD SI,1H
INC BH
CMP SI,120H
JNE L1
MOV SI,20H
MOV BH,1H
L2: MOV AH,0CH
MOV DX,SI
MOV CX,100H
MOV AL,BH
INT 10H
ADD SI,1H
INC BH
CMP SI,9BH
JNE L2
MOV SI,100H
MOV BH,1H
L3: MOV AH,0CH
MOV DX,9BH
MOV CX,SI
MOV AL,BH
INT 10H
INC BH
INC SI
CMP SI,120H
JNE L3
MOV SI,20H
MOV BH,1H
L4: MOV AH,0CH
MOV DX,SI
MOV CX,120H
MOV AL,BH
INT 10H
ADD SI,1H
INC BH
CMP SI,9BH
JNE L4
MOV FLAG1,1
MOV DI,NOWF ;NOWFLOOR
L6: MOV SI,101H
L5: MOV AH,0CH
MOV DX,DI
MOV CX,SI
MOV AL,1
INT 10H
INC SI
CMP SI,120H
JNE L5
MOV AX,FLAG1
CMP AX,1
JNE PASS1
XOR AX,AX
MOV FLAG1,AX
MOV AH,09H
MOV DX,OFFSET MSGEN
INT 21H
MOV DX,OFFSET MSG3
INT 21H
MOV AH,01H
INT 21H
PASS1:MOV BX,06FFH ;可修改速度
MOV CX,0FFFFH
TIME: LOOP TIME ;延時
DEC BX
CMP BX,0
JNE TIME
MOV SI,101H
L7: MOV AH,0CH
MOV DX,DI
MOV CX,SI
MOV AL,0
INT 10H
INC SI
CMP SI,120H
JNE L7
MOV AX,NOWF
CMP AX,LASTF
JA PASS2
INC DI
JMP PASS3
PASS2: CMP AX,LASTF
JNE PASS4
JMP PASS3
PASS4: DEC DI
PASS3:
CMP DI,LASTF ;LASTFLOOR
JNE L6
MOV SI,101H
L8: MOV AH,0CH
MOV DX,DI
MOV CX,SI
MOV AL,1
INT 10H
INC SI
CMP SI,120H
JNE L8
ENDM
;定義程序中要用到的數據段
DATA SEGMENT
MSG1 DB 'FLOOR YOU SIT NOW(JUST 1-9F):$'
MSG2 DB 'FLOOR YOU WANT GO(JUST 1-9F):$'
MSG3 DB 'INPUT ANY KEY TO START...$'
MSG4 DB 'WANT EXPERIENCE AGAIN (Y/N)..$'
MSGEN DB 0AH,0DH,'$'
NOWF DW ? ;NOWF變數表示原在樓層號碼
LASTF DW ? ;LASTF表示目的樓層號碼
FLAG1 DW 1 ;起一定小作用的變數
DATA ENDS
;定義程序中用到的堆棧段
STACK SEGMENT
BUFS DB 100 DUP(?)
TOPS LABEL WORD
STACK ENDS
;主代碼段CODE1用於程序的執行或結束
CODE1 SEGMENT
ASSUME CS:CODE1, DS:DATA, SS:STACK
MAIN PROC
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,TOPS
MOV AH,0H
MOV AL,04H
INT 10H
REPEAT1:
CALL FAR PTR ELEVATOR
MOV AH,09H
MOV DX,OFFSET MSGEN
INT 21H
MOV DX,OFFSET MSG4
INT 21H
MOV AH,01H
INT 21H
CMP AL,'Y'
JE REPEAT1
CMP AL,'y'
JE REPEAT1
MOV AH,4CH
INT 21H
RET
MAIN ENDP
CODE1 ENDS
;子段碼CODE2用於控制樓層狀態和運動
CODE2 SEGMENT
ELEVATOR PROC FAR
ASSUME CS:CODE2, DS:DATA, SS:STACK
MOV AX,DATA
MOV DS,AX
MOV AX,SS
MOV SS,AX
REPUT1:MOV AH,09H
MOV DX,OFFSET MSGEN
INT 21H
MOV DX,OFFSET MSG1
INT 21H
MOV AH,01H
INT 21H
CMP AL,'1'
JB REPUT1
CMP AL,'9'
JA REPUT1
SUB AL,30H
XOR AH,AH
DEC AX
MOV DX,08H
MUL DX
MOV DX,AX
MOV AX,9BH
SUB AX,DX
MOV NOWF,AX
SITUATION NOWF
REPUT2: MOV AH,09H
MOV DX,OFFSET MSGEN
INT 21H
MOV DX,OFFSET MSG2
INT 21H
MOV AH,01H
INT 21H
XOR AH,AH
CMP AL,'1'
JB REPUT2
CMP AL,'9'
JG REPUT2
SUB AL,30H
XOR AH,AH
DEC AX
XOR DX,DX
MOV DX,AX
MOV AX,08H
SUB AX,DX
MOV DX,AX
MOV AX,08H
MUL DX
ADD AX,5BH
MOV LASTF,AX
CMP AX,NOWF
JE REPUT2
MOVEF NOWF,LASTF
RETF
ELEVATOR ENDP
CODE2 ENDS
END START
;聲明:由於本人能力和時間有限不能把所有的功能都完善,如有需要,可留言
;星雲製作
⑥ 基於arino電梯程序
一、工作原理
生活中的升降電梯組成比較復雜,包含轎廂系統、導向系統等等,如下圖1所示。但是功能卻相對好操作,就是按下對應的樓層時,轎廂系統就可以達到對應的樓層。
圖1升降電梯的組成
那麼這一簡單的操作,背後的原因是怎樣的?我們以三層樓為例,為了實現樓梯准確智能的切換,可以引入兩個變數實現。開始設定一個變數a數值為0,電梯在1層;當按下3層時,變數b設為3。程序執行「b-a」的數值乘以運動一層的時間,即可到達3層的位置,並讓b的值賦予a。同樣如果此時再按下2層時,則變數b的值設為2,當「b-a」小於0時,則反轉,乘以一層運動的時間,就可以到達2層啦。
二、硬體裝置
那麼如何控制電梯的升降?需要開源硬體Arino、按鈕、電機驅動板和電機等材料。
製作本作品所需要的材料和說明如表 1所示:
表 1 實驗材料
名稱
數量
說明
Arino UNO 主板
1個
控制器
Arino 擴展板
1個
擴展介面
按鈕
3個
控制樓層
電機驅動板
1個
控制電機的運動
樓梯模型
1個
骨架材料
小電機
1個
驅動轎廂移動
三、L298N電機驅動板的使用
可能大部分老師同學對Arino的使用比較熟練,但是對於電機驅動板的使用還不是熟悉。L298N電機驅動板具體的功能,如下圖2和3所示。
圖2 L298N電機驅動板的功能圖
圖3 針腳的功能
在這里需要提醒的是:1.當IN1和IN2的電平不一樣時,才能控制輸出A電機的方向;同樣,IN3和IN4也是一樣的;2.ENA和ENB針腳分別控制M1和M2的PWM,也就是電機的轉速;
四、代碼編寫
原理清晰了,代碼就比較簡單書寫,本案例我們使用Mixly編程軟體。具體如圖4和5所示。
圖4 主程序
圖5 控制上升下降的函數
程序介紹:剛開始設置兩個變數a和b,分別賦值為1和0。如果按下2樓時,則b賦值為2,執行「控制上升下降的函數」。在這個函數中,通過兩者差值的大小乘以一層樓運行的時間,來控制到達的樓層;如果b>a,則向上運動;如果b<a,則改變管腳2和3的高電平和低電平,改變運動方向;待執行完之後,將b的值賦予給a。如果按下3層時,b的值為3,同樣通過判斷a和b的值,執行「控制上升下降的函數」」,來執行電梯移動到指定的位置,不斷循環。
五、運行效果
根據要求,將各硬體材料組裝測試,如下圖6所示。正如生活中的電梯一樣,當按下對應的樓層按鈕時,則電梯的轎廂可以到達對應的樓層
⑦ 用C語言編寫一個關於電梯的程序
這是以前作的課程設計,是一個10層電梯的模擬,供樓主參考吧:
printf("上下選擇:1-上樓,2-下樓\t");
scanf("%d",&input_direction);
fflush(stdin);
printf("輸入該層的乘客想到達的樓層,以-1結束\n");
void check(liftor &myliftor) int flag1=0,flag2=0,flag3=0;
for(i=0;i<10;i++)
{
if(myliftor.stored_flare[i]!=0)
flag1=1;
if(myliftor.stored_flare[i]==1)
flag2=1;
if(myliftor.stored_flare[i]==2)
flag3=1;
}
if(!flag1) myliftor.set_direction(0);
else if(!flag2&&flag3) myliftor.set_direction(2);
else if(!flag3&&flag2) myliftor.set_direction(1);
int main(int argc, char *argv[])
liftor myliftor;
char flag;
int j;
myliftor.direction=1;
printf("**************************************\n");
printf("該程序用於模擬10(0-9)層的電梯控制\n");
printf("先輸入按下電梯的層號及上下選\n擇(類似電梯外的按鈕)\n");
printf("每到一層時,輸入乘客要到的樓\n層號(類似電梯內的按鈕)\n");
⑧ ev3 程序會用到分支結構,有幾種分支結構,分別是怎樣的
三種
無論EV3程序多麼復雜,都可以分解為三大程序結構(等待、切換、循環)與兩大運行模式(順序程序、並行程序)的組合。三大程序結構與兩大運行模式多種組合方式的適用環境。結構由一些初始操作、一個包含主程序的循環和一些關閉操作組成。循環的主程序可能只是一個連續的程序。
⑨ 用Java編寫程序,設計一個模擬電梯運行的類
最佳答案代碼如下:
public class ElevatorModel implenent ElevatorModelListener{
ElevatorShaft elevatorShaft;//電梯車箱
Floor firstFloor;
Floor secondFloor;
public void addPerson(Person person);
//實現ElevatorModelListener介面的所有方法
}
public abstract class Location{
String locationName;//可能占據的三個位置firstFloor; secondFloor;elevator中的其中一個位置。
public Button getButton();
public Door getDoor();
}
public class Floor extends Location{
public Floor(String firstFloor,String secondFloor);
public Button getButton();//具體實現
public Door getDoor();//具體實現
public ElevatorShaft getElevatorShaft();
}
public class Door implenent ElevatorMoveListener{
boolean open;//門是開的關的
public void openDoor();//開門
public viod clossDoor();//關門
}
public class Button implenent ElevatorMoveListener{
boolean pressed;
public void pressButton();//按下按鈕
public void resetButton();//釋放按鈕
public void elevatorArrived();//電梯到來
}
public class ElevatorShaft{//電梯乘箱
Elevator elevator;//電梯
Button firstFloorButton,secondFloorButton;//出發層的按鈕和到達層的按鈕 Door firstFloorDoor,secondFloorDoor;//出發的門和到達的門
Light firstFloorLight,secondFloorLight;//燈
//監聽器
DoorListener doorListener;
ButtonListener buttonListener;
LightListener ligthListener;
BellListener bellListener;
ElevatorMoveListener elevatorMoveListener;
Set set;
}
public class Light implenent ElevatorMoveListener{
boolean lightOn;//代表燈的狀態,亮或滅
public void turnOnLight();
public void turnOffLight();
public void elevatorDeparted();//具體實現
public void elevatorArrived();//具體實現
}
public class Bell implenent ElevatorMoveListener{
public void ringBell();
public void elevatorDeparted();//具體實現
public void elevatorArrived();//具體實現
}
public class Elevator extends Location implenets
ButtonListener,DoorListener,BellListener,Runable
{//電梯乘箱
boolean moving;
boolean summoned;//描述Elevator是在移動還是已經補召喚
Floor currentFloor;//當前正在提供服務的Floor
Floor destinationFloor ; //代表將要到達的Floor
Button elevatorButton;
Door elevatorDoor;
Bell bell;
public void run();// 實現
public void requestElevator();//請求Elevator並產生排隊請求。 }
public class Person extends Thread{
Location類對象(或是位於Floor上,或是出處在Elevator中); int ID;
boolean moving;
public void run();//具體實現
public void enterAndRideElevator();
}
⑩ ev3機器人編程是什麼
EV3是樂高公司開發的第三代MINDSTORMS機器人,它無需計算機也可實現編程,遠遠超出了人們對傳統玩具的期待,成為少兒和成人皆宜的高級創意玩具。
EV3讓拼砌玩家釋放自己的創造力。拼砌出可行走、說話和思考的機器人,它們能完成你能想像到的任何事。
EV3與NXT的不同、機器人的搭建、機器人的改造,並為EV3編寫巡線程序、地板清潔程序、撲克魔術程序等,同時還從菊鏈項目和擴展玩法等多個方面介紹EV3的強大功能。
《樂高EV3機器人編程超簡單》:
是2018年9月人民郵電出版社出版的圖書,作者是曾吉弘、盧玟攸、翁子麟、蔡雨錡、薛皓雲。
本書由CAVEDU 教育團隊編寫,全面細致地介紹了樂高機器人的部件及EV3 編程技巧。全書包含12 章內容,不僅詳細介紹了樂高機器人的發展史及其零部件,同時也通過豐富的設計案例教會讀者實用的機器人設計及編程技巧。
除此之外,本書還以附錄的形式給出了一系列補充資源,方便讀者參考使用。讀者可以通過循序漸進的學習來了解樂高機器人,並在詳盡的操作指導下,更好地掌握編程技巧。