0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

帶Arduino的差速轉向車的制作教程

454398 ? 來源:網(wǎng)絡整理 ? 作者:佚名 ? 2019-11-06 10:07 ? 次閱讀

步驟1:附件

所需的附件是:

框架

Arduino UNO R3主板

擴展板

電機驅動模塊

PS2無線控制器SONY(模型遙控器或槍支遙控器)

聚合物電池(Li-Po 2S)

步驟2:轉向杯和變速箱

每個附件是2套,可以組裝2套,然后在底盤上安裝。

黑色轉向杯x 2

旋轉軸x 2

軸承x 4(內(nèi)側4外側8mm,內(nèi)側8外側12mm)

銷x 2

六角形x 2

車輪x 2

M4防松螺母x 2

65mm車輪x 2

步驟3:安裝伺服配件

將L形支架固定在伺服系統(tǒng)上,注意到括號的長度(紅色圓圈)。在轉向器上安裝轉向角之前,請先將其對準90°(1500μs),以方便后續(xù)安裝和調試。

M2.5 x 10mm螺釘x 1

M3 x 6mm螺絲x 1

M3 x 8mm螺絲x 4

M2.5防松螺母x 1

M3螺母x 4

MG996R伺服x 1

球頭操縱桿(短)x 1

舵角x 1

L型支架x 1

名稱:MG996R

電壓:4.8-7.2V

電流:400-800MA

轉向器扭矩:10kg.cm

極端角度:180°

電線長度:30CM

齒輪材料:金屬

控制系統(tǒng):更改脈沖寬度

伺服接線:數(shù)字端口I/O4

步驟4:連接2個側面轉向杯

長連桿在上孔中,連接兩個側轉向杯;短連桿位于下孔中,方向盤連接在一側,舵角連接在另一側,長連桿和短連桿不在同一孔位置。

長連桿孔間距65mm,短連桿孔間距46mm,如有偏差,可進行微調。

M2.5 x 10mm螺釘x 3

長短連桿x 2

步驟5:扁平前部

之前安裝時,請確保底盤正反,向上彎曲并將先前裝備的轉向器和轉向杯固定到底盤上。轉向盤通過銅柱支撐固定在兩側,塑料缸放置在轉向盤下方(前后高度一致),不能擰緊轉向盤固定螺釘,以確保轉向靈活。

機箱x 1

M3 x 26毫米銅柱x 4

M2.5 x 8毫米螺釘x 2(向上)

M2.5 x 12mm螺絲x 2(向下)

M3 x 8mm螺絲x 12

M3螺母x 4

黑色圓柱x 2(紅色框)

步驟6:后輪差速器部分

最后需要固定后輪座。首先將驅動軸固定在輸出軸上。后輪的安裝方式與前輪類似;后輪座椅安裝在左右兩側, *頂部R安裝在左側,標準L安裝在右側。

下支架是Z形結構。安裝時要注意方向,靠近差速器箱寬度,并且輪距很窄。如果不清楚,則可以與圖中的視角保持一致。上支架固定需要卸下螺釘才能安裝。

差x 1

傳動軸x 2

三角支架x 4

Z型支架x 4

后輪座x 2

軸承x 4

六角適配器x 2

銷釘x 2

鋁制圓柱體x 2(固定在上支架(三角形)和后輪座之間)

65mm車輪x 2

M2 x 12mm螺絲x 2

M2防松螺母x 2

M2.5 x 16mm螺絲x 4

M2.5 x 25mm螺絲x 2

M2.5 x 30mm螺絲x 2

M2.5防松螺母x 8

M4 Locknut x 2

步驟7:將差速器箱固定到機箱上

將銅齒輪安裝到輸入軸上減速齒輪箱,將鎖緊螺釘固定在D型平面上,用L型扳手將其緊固,然后將差速器箱固定在底盤上

M2.5 x 8mm螺釘x 4

齒輪圈0.5模數(shù)54齒x 1

步驟8:電機固定

首先將電動機固定到大支架,然后再固定到機架。支架用M3螺釘固定。電動機固定在支架上,可以調節(jié)電動機的左右位置以設置齒輪的緊度。

M2.5 x 5mm螺釘x 2(平頭螺釘)

M3 x 6mm螺釘x 3(帶墊圈)

L型電動機支架

RS380直流電動機

參數(shù)

工作電壓范圍:3.0-9.0V

額定電壓:7.2V

空載速度:16200rpm

空載電流:0.50A

額定速度:14000rpm

最大電流:3.29A

額定扭矩:110g.cm

額定功率:15.8W

啟動扭矩:840g.cm

電極的紅點為正。

步驟9:上部機箱安裝(丙烯酸)

上部機箱由丙烯酸材料制成,并集成了Arduino UNO和Raspberry Pi孔,并安裝了Rocker開關在矩形孔中

M3 x 8mm螺釘x 9

M3 x 35mm銅柱x 5

Rocker Switch x 1

丙烯酸x 1

步驟10:防撞棉

紅色圓圈是銅柱固定孔,保險杠棉被墊圈壓住了

M3 x 8mm螺釘x 8

M3墊片x 4

M3 x 16mm銅柱x 4

防碰撞棉x 1

步驟11:電動機驅動模塊

MD01電機驅動器由單個H橋驅動器IC和四個外部N溝道MOS晶體管組成。其體積小巧(長*寬:3.3 * 2cm),主板支持5.9V至30V寬電壓輸入,連續(xù)電流可達到17A,支持100%脈寬調制。該模塊通過方向DIR引腳和速度控制PWM引腳實現(xiàn)電動機的正向,反向和速度控制。

控制端子支持1.8V-5V邏輯輸入,驅動器IC集成了PWM電流調節(jié)功能,限制了電機浪涌電流。 SLP引腳的低電平允許MD01驅動器模塊進入低功耗模式,從而導致大約9uA的低靜態(tài)電流消耗。

注:SLP低功耗模式下,默認為低電平,使用時需要保持SLP引腳為高電平,如果不需要使用低功耗模式,則可以直接連接+ 5V。

工作電壓:5.9-13V

工作電流:17A

邏輯輸入:1.8V,3.3V,5V(max)

PWM頻率:100kHz

電流檢測:50mV/A(僅在正向或反向時有效)

反射電壓保護:無(VM和GND不得反向)

步驟12:遙控器(2.4Ghz)

2.4Ghz遙控器我們使用Sony的PS2也可以使用RC模型控制器;如果您有電子調速器,可能不需要Arduino UNO即可加入,但我們正在學習使用Arduino。

手柄配有適配器板,以方便接線和反向連接保護。該接口從最下面開始: GND VCC DAT CMD CS CLK

/****************************************************************************

* The program controls the forward and backward

* movement of the motor through the Y-axis of the left joystick,

* the X-axis of the right joystick controls the left and right of the servo,

* the button part also writes forward and backward,

* and the right button controls the left and right.

*****************************************************************************/

#include

#include

//for v1.6

PS2X ps2x;

Servo myservo;

#define PS2_DAT A0

#define PS2_CMD A1 //PS2

#define PS2_SEL A2

#define PS2_CLK A3

#define PWM 5 //Motor A‘s pin

#define DIR 6 //Motor A’s pin

#define SERVOPIN 4 //servo‘s pin

#define SERVOMIN 40 //the angle of servo

#define SERVOMID 90

#define SERVOMAX 130

#define TURNLEFT myservo.write(SERVOMIN) //turn left

#define TURNMID myservo.write(SERVOMID) //turn middle

#define TURNRIGHT myservo.write(SERVOMAX) //turn right

#define MOTORFOWARD setMotor(100) //motor forward PWM

#define MOTORBACK setMotor(-100) //motor back PWM

#define MOTORSTOP setMotor(0) //motor stop PWM

bool EnableRockerR = 1;

bool EnableRockerL = 1;

int RMid = 0 ;

int LStop = 0 ;

#define pressures false

#define rumble false

int error = 0;

byte type = 0;

byte vibrate = 0;

void(* resetFunc) (void) = 0;

void setup() {

Serial.begin(57600);

pinMode(PWM, OUTPUT);

pinMode(DIR, OUTPUT);

myservo.attach(SERVOPIN);

SERVOMID;

delay(300);

error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, pressures, rumble);

if (error == 0) {

Serial.print(“Found Controller, configured successful ”);

Serial.print(“pressures = ”);

if (pressures)

Serial.println(“true ”);

else

Serial.println(“false”);

Serial.print(“rumble = ”);

if (rumble)

Serial.println(“true)”);

else

Serial.println(“false”);

Serial.println(“Try out all the buttons, X will vibrate the controller, faster as you press harder;”);

Serial.println(“holding L1 or R1 will print out the analog stick values.”);

Serial.println(“Note: Go to www.billporter.info for updates and to report bugs.”);

}

else if (error == 1)

Serial.println(“No controller found, check wiring, see readme.txt to enable debug. visit www.billporter.info for troubleshooting tips”);

else if (error == 2)

Serial.println(“Controller found but not accepting commands. see readme.txt to enable debug. Visit www.billporter.info for troubleshooting tips”);

else if (error == 3)

Serial.println(“Controller refusing to enter Pressures mode, may not support it. ”);

type = ps2x.readType();

switch (type) {

case 0:

Serial.print(“Unknown Controller type found ”);

break;

case 1:

Serial.print(“DualShock Controller found ”);

break;

case 2:

Serial.print(“GuitarHero Controller found ”);

break;

case 3:

Serial.print(“Wireless Sony DualShock Controller found ”);

break;

}

}

void loop() {

if (error == 1) //skip loop if no controller found

resetFunc();

ps2x.read_gamepad(false, vibrate); //read controller and set large motor to spin at ’vibrate‘ speed

if (ps2x.Button(PSB_START)) //will be TRUE as long as button is pressed

Serial.println(“Start is being held”);

if (ps2x.Button(PSB_SELECT))

Serial.println(“Select is being held”);

if (ps2x.ButtonPressed(PSB_PAD_UP)) {

Serial.println(“PAD_UP just pressed”);

MOTORFOWARD;

EnableRockerL = 0;

}else if(ps2x.ButtonReleased(PSB_PAD_UP)) {

Serial.println(“ PAD_UP just released”);

MOTORSTOP;

EnableRockerL = 1;

LStop = 0;

}

if (ps2x.ButtonPressed(PSB_PAD_DOWN)) {

Serial.println(“PAD_DOWN just pressed”);

MOTORBACK;

EnableRockerL = 0;

}else if(ps2x.ButtonReleased(PSB_PAD_DOWN)) {

Serial.println(“ PAD_DOWN just released”);

MOTORSTOP;

EnableRockerL = 1;

LStop = 0;

}

if (EnableRockerL) { //Forward and Back

if (0 《= ps2x.Analog(PSS_LY) && ps2x.Analog(PSS_LY) 《= 110) {

digitalWrite(DIR, HIGH);

analogWrite(PWM, map(ps2x.Analog(PSS_LY), 0, 110, 255,0));

LStop = 0;

} else if (255 》= ps2x.Analog(PSS_LY) && ps2x.Analog(PSS_LY) 》= 140) {

digitalWrite(DIR, LOW);

analogWrite(PWM, map(ps2x.Analog(PSS_LY), 140, 255, 0,255));

LStop = 0;

} else {

if(LStop == 0){

MOTORSTOP;

LStop ++;

}

}

}

if (ps2x.ButtonPressed(PSB_CIRCLE)) { //will be TRUE if button was JUST pressed

Serial.println(“Circle just pressed”);

TURNRIGHT;

EnableRockerR = 0;

} else if (ps2x.ButtonReleased(PSB_CIRCLE)) {

Serial.println(“Circle just released”);

TURNMID;

EnableRockerR = 1;

RMid = 0;

}

if (ps2x.ButtonPressed(PSB_SQUARE)) { //will be TRUE if button was JUST released

Serial.println(“Square just pressed”);

TURNLEFT;

EnableRockerR = 0;

} else if (ps2x.ButtonReleased(PSB_SQUARE)) { //will be TRUE if button was JUST released

Serial.println(“Square just released”);

TURNMID;

EnableRockerR = 1;

RMid = 0;

}

if (EnableRockerR) { //Left and Right

if (0 《= ps2x.Analog(PSS_RX) && ps2x.Analog(PSS_RX) 《= 110) {

myservo.write(map(ps2x.Analog(PSS_RX), 0, 110, 40,90));

RMid = 0;

} else if (255 》= ps2x.Analog(PSS_RX) && ps2x.Analog(PSS_RX) 》= 140) {

myservo.write(map(ps2x.Analog(PSS_RX), 140, 255, 90,130));

RMid = 0;

}else {

if(RMid == 0){

TURNMID;

RMid ++;

}

}

}

if (ps2x.NewButtonState(PSB_CROSS)) { //will be TRUE if button was JUST pressed OR released

Serial.println(“X just changed”);

MOTORSTOP;

}

delay(50);

}

void setMotor(int Speed) //Motor drive function

{

if (Speed 》 0)

{

digitalWrite(DIR, HIGH);

analogWrite(PWM, Speed);

}

else if(Speed 《 0){

digitalWrite(DIR, LOW);

analogWrite(PWM, -Speed);

}else{

digitalWrite(PWM, LOW);

digitalWrite(DIR, LOW);

}

}

步驟13:RC接收器(FS-TH9X)

如果使用模型遙控器,則可以按以下方式控制機器人。我只是用中斷編寫了一些代碼,如果需要,您可以對其進行改進并使其更好。我正在使用FS-TH9X。我正在使用左右油門。為了返回,我使用右操縱桿來控制機器人的前進和后退運動。當我居中時,我停下來。左操縱桿控制左右轉向。對我來說,它可能會被使用。不習慣,如果您需要FS-TH9X信息,請Google。

我使用CH3(油門)和CH4(方向)。接線時易于使用。可以為接收器提供5v和GND。使用Arduino UNO上的5V引腳。也許UNO可能提供的不足。該電流用于維持接收器和伺服器的正常運行。此時,您需要一個外部電源為伺服器或接收器供電。當然,您需要接地。

布線:

CH3 》》 Arduino I/O2

CH4 》》 Arduino I/O3

//The two channels of the receiver are connected to the

//digital port 2 and 3 of the arduino respectively.

int ppm1 = 2;

int ppm2 = 3;

unsigned long rc1_PulseStartTicks,rc2_PulseStartTicks;

volatile int rc1_val, rc2_val;

void setup() {

Serial.begin(9600);

pinMode(ppm1, INPUT); //PPM inputs from RC receiver

pinMode(ppm2, INPUT);

attachInterrupt(0, rc1, CHANGE); // Level change trigger interrupt

attachInterrupt(1, rc2, CHANGE);

}

void rc1(){

// did the pin change to high or low?

if (digitalRead( ppm1 ) == HIGH)

rc1_PulseStartTicks = micros(); // store the current micros() value

else

rc1_val = micros() - rc1_PulseStartTicks;

}

void rc2(){

// did the pin change to high or low?

if (digitalRead( ppm2 ) == HIGH)

rc2_PulseStartTicks = micros();

else

rc2_val = micros() - rc2_PulseStartTicks;

}

void loop() {

Serial.print(“CH1: ”);Serial.print(rc1_val); Serial.print(“ ”);//print values

Serial.print(“CH2: ”);Serial.println(rc2_val);

delay(200);

}

記住在控制時先打開發(fā)射機

#include

Servo myservo;

//The two channels of the receiver are connected to the digital port 2 and 3 of the arduino respectively.

int ppm1 = 2;

int ppm2 = 3;

int servo = 4; //Servo pin

int PWM = 5; //Motor pin

int DIR = 6; //Motor pin

unsigned long rc1_PulseStartTicks,rc2_PulseStartTicks;

volatile int rc1_val, rc2_val;

void setup() {

Serial.begin(9600);

pinMode(DIR ,OUTPUT);

pinMode(PWM ,OUTPUT);

myservo.attach(servo);

pinMode(ppm1, INPUT); //PPM inputs from RC receiver

pinMode(ppm2, INPUT);

attachInterrupt(0, rc1, CHANGE); // Level change trigger interrupt

attachInterrupt(1, rc2, CHANGE);

}

void rc1(){

// did the pin change to high or low?

if (digitalRead( ppm1 ) == HIGH)

rc1_PulseStartTicks = micros(); // store the current micros() value

else

rc1_val = micros() - rc1_PulseStartTicks;

}

void rc2(){

// did the pin change to high or low?

if (digitalRead( ppm2 ) == HIGH)

rc2_PulseStartTicks = micros();

else

rc2_val = micros() - rc2_PulseStartTicks;

}

void loop() {

if(rc1_val 《 1100){ rc1_val = 1100; }

if(rc1_val 》 1900){ rc1_val = 1900; }

if(rc2_val 《 1100){ rc2_val = 1100; }

if(rc2_val 》 1850){ rc2_val = 1850; }

if(rc1_val 》= 1100 && rc1_val 《= 1490)

{

digitalWrite(DIR ,LOW);

analogWrite(PWM,map(rc1_val,1100,1490,255,0));

}

else if(rc1_val 》= 1510 && rc1_val 《= 1900)

{

digitalWrite(DIR ,HIGH);

analogWrite(PWM,map(rc1_val,1510,1900,0,255));

}else{

digitalWrite(PWM, LOW);

digitalWrite(DIR, LOW);

}

if(rc2_val 》= 1100 && rc2_val 《= 1490)

{

myservo.write(map(rc2_val,1100,1490,40,89));

}

else if(rc2_val 》= 1510 && rc2_val 《= 1850)

{

myservo.write(map(rc2_val,1510,1850,91,130));

}

delay(15);

}

責任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 遙控車
    +關注

    關注

    9

    文章

    81

    瀏覽量

    23778
  • Arduino
    +關注

    關注

    188

    文章

    6474

    瀏覽量

    187424
收藏 人收藏

    評論

    相關推薦

    虹科免拆案例 | 2017 款東風風神 AX7 熱機后怠不穩(wěn)

    2017款東風風神AX7熱機后怠不穩(wěn)余姚東江名車專修廠葉正祥故障現(xiàn)象故障診斷故障排除一輛2017款東風風神AX7,搭載DFMA14T發(fā)動機,累計行駛里程約為13.7萬km。該車冷起動后怠
    的頭像 發(fā)表于 01-08 11:41 ?99次閱讀
    虹科免拆案例 | 2017 款東風風神 AX7 <b class='flag-5'>車</b>熱機后怠<b class='flag-5'>速</b>不穩(wěn)

    虹科免拆診斷 | 2017款捷豹F-PACE發(fā)動機偶爾怠不穩(wěn)

    2017款捷豹F-PACE發(fā)動機偶爾怠不穩(wěn)蔡永福故障現(xiàn)象故障診斷故障排除一輛2017款捷豹F-PACE,搭載2.0LGTDi發(fā)動機,累計行駛里程約為16萬km。車主反映,車輛組合儀表上發(fā)動機
    的頭像 發(fā)表于 11-27 14:58 ?153次閱讀
    虹科免拆診斷 | 2017款捷豹F-PACE<b class='flag-5'>車</b>發(fā)動機偶爾怠<b class='flag-5'>速</b>不穩(wěn)

    虹科免拆診斷 | 2016款福特蒙迪歐發(fā)動機怠不穩(wěn)

    2016款福特蒙迪歐發(fā)動機怠不穩(wěn)余姚東江名車專修廠葉正祥故障現(xiàn)象故障診斷故障排除一輛2016款福特蒙迪歐,搭載CAF488WQ3發(fā)動機,累計行駛里程約為12.4萬km。車主反映,怠
    的頭像 發(fā)表于 11-14 01:03 ?224次閱讀
    虹科免拆診斷 | 2016款福特蒙迪歐<b class='flag-5'>車</b>發(fā)動機怠<b class='flag-5'>速</b>不穩(wěn)

    DRV3205-Q1的電動助力轉向設計指南

    電子發(fā)燒友網(wǎng)站提供《DRV3205-Q1的電動助力轉向設計指南.pdf》資料免費下載
    發(fā)表于 09-30 09:55 ?0次下載
    <b class='flag-5'>帶</b>DRV3205-Q1的電動助力<b class='flag-5'>轉向</b>設計指南

    2012 款捷豹 XJ 發(fā)動機怠輕微抖動

    2012款捷豹XJ發(fā)動機怠輕微抖動余姚東江名車專修廠葉正祥故障現(xiàn)象故障診斷故障排除一輛2012款捷豹XJ,搭載3.0T發(fā)動機(型號為306PS),累計行駛里程約為14.7萬km。車主反映
    的頭像 發(fā)表于 08-30 12:09 ?251次閱讀
    2012 款捷豹 XJ <b class='flag-5'>車</b>發(fā)動機怠<b class='flag-5'>速</b>輕微抖動

    虹科免拆診斷 | 2012 款大眾發(fā)動機偶爾抖動

    2012款大眾發(fā)動機偶爾抖動匠卓摯誠汽車維修中心原瑞鎧故障現(xiàn)象故障診斷故障排除一輛2012款大眾,搭載CST發(fā)動機和干式雙離合變速器,累計行駛里程約為17萬km。車主反映,
    的頭像 發(fā)表于 08-30 12:08 ?311次閱讀
    虹科免拆診斷 | 2012 款大眾<b class='flag-5'>速</b>騰<b class='flag-5'>車</b>發(fā)動機偶爾抖動

    鳳凰動力-AGV驅動輪的工作原理

    鳳凰動力致力于提供多元化的AGV核心零部件產(chǎn)品。包括臥式/立式驅動輪、臥式/立式舵輪、電轉向輪、舵輪組、AGV專用高精密腳輪、低壓伺服電機、伺服減速電機、伺服驅動器、專用連接器和高精密行星減速機
    的頭像 發(fā)表于 08-05 09:40 ?545次閱讀
    鳳凰動力-AGV<b class='flag-5'>差</b><b class='flag-5'>速</b>驅動輪的工作原理

    12864B 漢字庫的液晶屏 與 arduino 連接 ,你是否順利顯示

    arduino 驅動漢字庫的12864B
    的頭像 發(fā)表于 05-20 14:16 ?1906次閱讀
    12864B <b class='flag-5'>帶</b>漢字庫的液晶屏 與 <b class='flag-5'>arduino</b> 連接 ,你是否順利顯示

    虹科免拆診斷 | 2006 款林肯領航員發(fā)動機怠抖動

    2006款林肯領航員發(fā)動機怠抖動余姚東江名車專修廠葉正祥故障現(xiàn)象故障診斷故障排除一輛2006款林肯領航員,搭載5.4L發(fā)動機,累計行駛里程約為26萬km。該車因發(fā)動機怠抖動故障
    的頭像 發(fā)表于 04-26 08:09 ?446次閱讀
    虹科免拆診斷 | 2006 款林肯領航員<b class='flag-5'>車</b>發(fā)動機怠<b class='flag-5'>速</b>抖動

    雙電機項目,單側電機轉向改變后、重新輸出時有鳴叫聲是怎么回事?

    各位大神,正在調試電動輪椅無刷控制器,有個問題,困擾已久,求助下。 問題:雙電機(HALL,三相無刷直流電機,六步換相,方波驅動),一側電機的轉向發(fā)生變化后(由正轉到反轉或者由反轉到正轉
    發(fā)表于 04-22 08:05

    什么是線控轉向系統(tǒng)?線控轉向技術淺析

    什么是線控轉向系統(tǒng)?線控轉向簡單說就是徹底取消方向盤和車輪的物理連接,使用電信號來操控車輪轉向,線控轉向系統(tǒng)不僅具有傳統(tǒng)機械轉向系統(tǒng)的所有優(yōu)
    發(fā)表于 03-29 10:06 ?2019次閱讀
    什么是線控<b class='flag-5'>轉向</b>系統(tǒng)?線控<b class='flag-5'>轉向</b>技術淺析

    如何制作自己的Arduino電容計

    在這個項目中,您將學習如何制作自己的Arduino電容計(測量電容器的值,范圍從pF到1000的uF)。一般來說,電子愛好者喜歡設計自己的小工具而不是購買。在這個項目中,我們使用兩種電容測量方法,即
    的頭像 發(fā)表于 02-25 15:10 ?1654次閱讀
    如何<b class='flag-5'>制作</b>自己的<b class='flag-5'>Arduino</b>電容計

    如何使用Arduino制作智能垃圾箱

    在這個項目中,我將向您展示如何使用Arduino制作智能垃圾箱,當您帶著垃圾接近時,垃圾箱的蓋子會自動打開。
    的頭像 發(fā)表于 02-11 12:22 ?3109次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>智能垃圾箱

    差速器工作原理 差速器的傳動特點是不差力對嗎

    差速器是一種廣泛應用于汽車的機械裝置,其主要作用是在車輛行駛時發(fā)揮作用,從而使車輛在轉彎、過坎等情況下能夠保持穩(wěn)定。差速器的工作原理十分復雜,涉及到許多力學和工程原理,下面我們將詳細介紹差速器
    的頭像 發(fā)表于 02-04 09:55 ?1531次閱讀

    分晶振電路圖如何制作 影響分晶振價格的原因

    分晶振電路圖如何制作 影響分晶振價格的原因? 分晶振電路圖制作步驟: 分晶振電路圖可以用
    的頭像 發(fā)表于 01-23 16:43 ?669次閱讀