Talaan ng mga Nilalaman:
- Hakbang 1: Ipunin ang Iyong Mga Materyal
- Hakbang 2: I-download ang Roomba Toolboxes para sa MATLAB
- Hakbang 3: Kumonekta sa Iyong Roomba
- Hakbang 4: Piliin Kung Paano Mo Gustong Kontrolin ang Iyong Roomba
- Hakbang 5: Magmaneho ng Iyong Roomba
Video: Ginagawang Ang iyong Roomba Sa isang Mars Rover: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Hakbang 1: Ipunin ang Iyong Mga Materyal
Upang makumpleto ang proyektong ito, kakailanganin mong tipunin ang mga sumusunod na materyales:
1 Roomba Robot
1 Raspberry Pi Kit
1 Video Camera
Pag-access sa MATLAB
Hakbang 2: I-download ang Roomba Toolboxes para sa MATLAB
Patakbuhin ang sumusunod na code upang mai-install ang mga kinakailangang toolbox upang makumpleto ang proyektong ito.
function roombaInstall
clc;
% listahan ng mga file upang mai-install
mga file = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'};
% lokasyon upang mai-install
mga pagpipilian = weboptions ('CertificateFilename', ''); % ang nagsasabi dito na huwag pansinin ang mga kinakailangan sa sertipiko
server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/';
dlgTitle = 'Roomba Install / Update';
% layunin ng pagpapakita at makakuha ng kumpirmasyon
prompt = {
'Ang program na ito ay mag-download ng mga EF 230 Roomba file:'
''
strjoin (mga file, )
''
'sa folder na ito:'
''
cd
''
'Gusto mo bang magpatuloy? '
};
beep;
yn = questdlg (prompt,…
dlgPamagat,…
'Oo', 'Hindi', 'Oo');
kung ~ strcmp (yn, 'Oo'), bumalik; magtapos
% makakuha ng listahan ng mga file na mayroon
existing_files = file (cellfun (@exist, files)> 0);
kung ~ isempty (mayroon nang mga_file)
% tiyakin na ok lang talaga na palitan ang mga ito
prompt = {'Pinapalitan mo ang (mga) file na ito:'
''
strjoin (mayroon nang mga_file, )
''
'OK na palitan?'
};
beep;
yn = questdlg (prompt,…
dlgPamagat,…
'Oo', 'Hindi', 'Oo');
kung ~ strcmp (yn, 'Oo'), bumalik; magtapos
magtapos
% i-download ang mga file
cnt = 0;
para sa i = 1: haba (mga file)
f = mga file {i};
disp (['Pagda-download' f]);
subukan mo
url = [server f];
websave (f, url, mga pagpipilian); % nagdagdag ng mga pagpipilian upang maiwasan ang mga error sa seguridad
cnt = cnt + 1;
mahuli
disp (['Error sa pag-download ng' f]);
dummy = [f '.html'];
kung mayroon (dummy, 'file') == 2
tanggalin (dummy)
magtapos
magtapos
magtapos
kung cnt == haba (mga file)
msg = 'Matagumpay na Pag-install';
waitfor (msgbox (msg, dlgTitle));
iba pa
msg = 'Error sa Pag-install - tingnan ang window ng utos para sa mga detalye';
waitfor (errordlg (msg, dlgTitle));
magtapos
magtapos% roombaInstall
Hakbang 3: Kumonekta sa Iyong Roomba
Ngayon ay oras na upang kumonekta sa iyong Roomba gamit ang WiFi. Gamit ang 2 daliri, pindutin nang sabay-sabay ang mga pindutan ng Dock at Spot upang i-on o i-reset ang iyong Roomba. Susunod, Patakbuhin ang code r = roomba (# ng iyong Roomba) sa window ng utos ng MATLAB upang kumonekta sa iyong robot. Kapag naisakatuparan mo ang utos na ito, dapat handa nang umalis ang iyong Roomba.
Hakbang 4: Piliin Kung Paano Mo Gustong Kontrolin ang Iyong Roomba
Mayroong dalawang mga paraan upang makontrol mo ang iyong Roomba: autonomous o paggamit ng isang smartphone bilang isang controller.
Kung pipiliin mong magmaneho ang Roomba nang may pagsasarili, kakailanganin mong gamitin ang tatlong mga built-in na sensor: mga sensor ng bangin, mga sensor ng paga, at mga ilaw na sensor.
Upang magamit ang isang smartphone, kailangan mo munang ikonekta ang iyong smartphone sa iyong computer sa pamamagitan ng pagsunod sa mga hakbang sa ibaba.
TANDAAN: Ang iyong computer at smartphone ay kailangang nasa parehong WiFi network upang makakonekta nang maayos!
1. I-download ang MATLAB app mula sa app store sa iyong aparato.
2. I-type ang "konektor sa" sa iyong window ng utos at magtakda ng isang password na kailangang maging input sa parehong mga aparato.
3. Pagkatapos gawin ito, bibigyan ka ng MATLAB ng iyong computer IP address. Kailangan mong pumunta sa pahina ng mga setting sa MATLAB app sa iyong smartphone at magdagdag ng isang computer gamit ang naibigay na IP address at ang password na ipinasok mo kanina.
4. Sa window ng utos sa iyong computer, i-type ang code m = mobiledev at dapat nitong gawing simula ang iyong smartphone bilang isang controller para sa iyong Roomba.
5. Ang iyong computer at smartphone ay dapat na handa na upang pumunta ngayon.
Hakbang 5: Magmaneho ng Iyong Roomba
Ngayon na mayroon ka ng lahat ng kinakailangang mga tool upang likhain ang iyong Mars Rover, handa ka nang lumikha ng iyong sariling code. Nag-attach kami ng isang halimbawa ng code sa ibaba para sa parehong autonomous na pagmamaneho at pagmamaneho na kinokontrol ng smartphone.
Awtomatikong Pagmamaneho
pagpapaandar Discover_modified (r)
% ang mga argument sa pag-input: 1 roomba object, r
% mga argumento sa output: wala
% paglalarawan:
% function na gumagamit ng isang walang hanggan habang loop upang payagan ang autonomous
% paggalugad ng paligid ng bot.
%
Nagbibigay din si% funciton ng mga tagubilin sa roomba kung ano ang gagawin
% ang mga sumusunod na sitwasyon: Ang (mga) gulong ay nawawalan ng (mga) contact sa lupa, an
% object ay nakita sa harap ng o sa magkabilang panig ng bot, at a
% biglang pagbagsak ay napansin sa harap ng o sa alinmang bahagi ng bot.
%
Kasama sa% tipikal na mga tagubilin ang mga utos ng paggalaw na inilaan upang ma-maximize
% ng paggalugad o pag-iwas sa isang napansin na panganib at utos na makipag-usap
% impormasyon tungkol sa mga natuklasan ng bot (larawan), posisyon (grap), % at islahad (maiiwan ang babala) kasama ang gumagamit sa pamamagitan ng matlab at / o email. Maraming
% mga tunog na utos ay idinagdag para sa kasiyahan.
% mga kakayahan sa pag-setup ng email
mail = '[email protected]';
password = 'EF230Roomba';
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', mail);
setpref ('Internet', 'SMTP_Username', mail);
setpref ('Internet', 'SMTP_Password', password);
props = java.lang. System.getProperties;
props.setProperty ('mail.smtp.starttls.enable', 'true');
props.setProperty ('mail.smtp.auth', 'totoo');
props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');
props.setProperty ('mail.smtp.socketFactory.port', '465');
% r = roomba (19)
r.beep ('G2 ^^, G2 ^^, G2 ^^, G2 ^^, A2 ^^, A2 ^^, G1 ^^, E1 ^^, C2 ^^, C2 ^^, C1 ^^, C1 ^^, D1 ^^, C1 ^^, D2 ^^, E4 ^^, G2 ^^, G2 ^^, G2 ^^, G2 ^^, A2 ^^, A2 ^^, G1 ^^, E1 ^^, C2 ^^, C2 ^^, C2 ^^, E1 ^^, E1 ^^, E1 ^^, D1 ^^, C4 ^^ ');
v =.1;
mirror_datum = 2700; % itakda ang halaga ng sanggunian ng mga sensor ng cliff
lightBumper_datum = 200; Itakda ang halaga ng sangguniang light sensor ng Bumper sensors
pos = [0, 0]; % variable para sa pag-iimbak ng posisyon na may inisyal na datum
anggulo = 0; % itakda ang anggulo ng sanggunian
netangle = 0; % pag-aalis ng net anggulo
i = 2; % iterator para sa pagdaragdag ng mga hilera sa variable ng pag-iimbak ng posisyon
dist = 0;
r.setDriveVelocity (v, v); % simulan ang roomba na sumusulong
habang totoo
Cliff = r.getCliffSensors;
Bump = r.getBumpers;
Banayad = r.getLightBumpers;
RandAngle = randi ([20, 60], 1); % ay bumubuo ng 1 random na anggulo sa pagitan ng 20 at 60 degree. Ginamit upang maiwasan ang pag-stuck ng bot sa isang loop
% Ano ang gagawin kung ang isa o higit pang gulong ay nawalan ng contact sa lupa:
% tumigil sa paggalaw, magpadala ng isang babalang email na may larawan ng paligid, % at tanungin ang gumagamit kung magpatuloy o maghintay para sa tulong
kung Bump. RightWheelDrop == 1 || Bump.leftWheelDrop == 1
r.stop
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
r.beep ('F # 1 ^^, C1 ^^, F # 1 ^^, C1 ^^, F # 1 ^^, C1 ^^, F # 1 ^^, C1 ^^, F # 1 ^^, C1 ^^, F # 1 ^^, C1 ^^, F # 1 ^^, C1 ^^, F # 1 ^^, C1 ^^ ')
img = r.getImage;
imwrite (img, 'stuck.png');
%--------------------------
imfile = 'stuck.png';
posisyon = savepos (pos);
%---------------------------
sendmail (mail, 'HELP!', 'Napadpad ako sa isang bangin!', {imfile, posisyon})
listahan = {'Magpatuloy', 'Itigil'};
idx = menu ('Ano ang dapat kong gawin?', listahan);
kung idx == 2
pahinga
magtapos
% Ano ang gagawin kung ang isang bagay ay napansin sa harap ng bot:
% ihinto, bumalik, kumuha ng larawan, alerto ang gumagamit ng pagtuklas
% sa pamamagitan ng email, i-90 degree, at patuloy na tuklasin
kung hindi man Light.leftCenter> lightBumper_datum || Light.rightCenter> lightBumper_datum || Bump.front == 1
r.stop;
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
r.moveDistance (-. 125);
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
r.beep ('A1 ^, A1 ^, A4 ^, A2 ^, G2 ^, G2 ^, G4 ^, Bb2 ^, Bb2 ^, Bb3.5 ^, G1 ^, A8 ^')
img = r.getImage;
imwrite (img, 'FrontBump.png')
%--------------------------
imfile = 'FrontBump.png';
posisyon = savepos (pos);
%---------------------------
sendmail (mail, 'Alert!', 'May nahanap ako!', {imfile, posisyon})
anggulo = 90;
netangle = netangle + anggulo;
r.turnAngle (anggulo);
r.setDriveVelocity (v, v);
% Ano ang gagawin kung ang bagay ay napansin sa kaliwa ng bot:
% huminto, lumiko patungo sa object, i-back up, kumuha ng litrato, alerto
% ng gumagamit ng pagtuklas sa pamamagitan ng email, i-90 degree at patuloy na tuklasin
kung hindi man Light.leftFront> lightBumper_datum || Light.left> lightBumper_datum || Bump.kaliwa == 1
r.stop;
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
anggulo = 30;
netangle = netangle + anggulo;
r.turnAngle (anggulo);
r.moveDistance (-. 125);
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
r.beep ('A4 ^, A4 ^, G1 ^, E1 ^, C3.5 ^, C2 ^^, C1 ^, C1 ^, C2 ^, D2 ^, D2 ^, E8 ^')
img = r.getImage;
imwrite (img, 'LeftBump.png')
%--------------------------
imfile = 'LeftBump.png';
posisyon = savepos (pos);
%---------------------------
sendmail (mail, 'Alert!', 'May nahanap ako!', {imfile, posisyon})
anggulo = -90;
netangle = netangle + anggulo;
r.turnAngle (anggulo);
r.setDriveVelocity (v, v);
% Ano ang gagawin kung ang bagay ay napansin sa kanan ng bot:
% huminto, lumiko patungo sa object, i-back up, kumuha ng litrato, alerto
% ng gumagamit ng pagtuklas sa pamamagitan ng email, i-90 degree at patuloy na tuklasin
kung hindi man Light. RightFront> lightBumper_datum || Light. Right> lightBumper_datum || Bump. tama == 1
r.stop;
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
anggulo = -30;
netangle = netangle + anggulo;
r.turnAngle (anggulo);
r.moveDistance (-. 125);
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
i-pause (1.5);
r.beep ('C1 ^, C1 ^, C2 ^, D2 ^, D2 ^, C8 ^')
img = r.getImage;
imwrite (img, 'RightBump.png')
%--------------------------
imfile = 'RightBump.png';
posisyon = savepos (pos);
%---------------------------
sendmail (mail, 'Alert!', 'May nahanap ako!', {imfile, posisyon});
anggulo = 90;
netangle = netangle + anggulo;
r.turnAngle (anggulo);
r.setDriveVelocity (v, v);
% Ano ang gagawin kung ang talampas ay napansin sa kaliwa ng bot:
% huminto, lumipat paatras, kumanan sa kanan, magpatuloy sa paggalugad
kung hindi man Cliff.kaliwa <sumasalamin_datum || Cliff.leftFront <mirror_datum
r.stop;
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
r.moveDistance (-. 125);
dist = r.getDistansya;
pos (i, 1) = pos (i-1, 1) + dist * sind (netangle); % makakuha ng x coordinate
pos (i, 2) = pos (i-1, 2) + dist * cosd (netangle); % makakuha ng koordinasyon
i = i + 1;
anggulo = -RandAngle;
netangle = netangle + anggulo;
r.turnAngle (anggulo);
r.setDriveVelocity (v, v);
% Ano ang gagawin kung ang bangin ay napansin sa kanan ng bot:
% huminto, lumipat pabalik, kumaliwa, magpatuloy sa paggalugad
kung hindi man Cliff. Right <mirror_datum || Cliff. RightFront <mirror_datum
r.stop;
dist = r.getDistansya;
pos (i, 1) = dist * sind (anggulo); % makakuha ng x coordinate
pos (i, 2) = dist * cosd (anggulo); % makakuha ng koordinasyon
i = i + 1;
r.moveDistance (-. 125);
anggulo = RandAngle;
netangle = netangle + anggulo;
r.turnAngle (anggulo);
r.setDriveVelocity (v, v);
magtapos
magtapos
Controller ng Smartphone
Mga Pagpipilian = {'Autonomous', 'Manu-manong Kontrol'}
Prompt = menu ('Paano mo gustong makontrol ang rover?', Mga Pagpipilian)
m = mobiledev
r = roomba (19)
kung Prompt == 1
Galugarin (r)
iba pa
habang totoo
i-pause (.5)
TeleponoData = m. Orentasyon;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Side = TeleponoData (3);
kung Side> 130 || Side <-130% kung ang telepono ay nakabaliktad ihinto ang roomba at exit loop
r.stop
r.beep ('C, C, C, C')
pahinga
kung hindi man Side> 25 && Side <40% kung ang telepono ay paikutin sa pagitan ng 25 at 40 deg lumiko pakaliwa 5 deg
r.turnAngle (-5);
kung hindi man> 40% kung ang telepono ay paikutin sa paglipas ng 40 deg liko sa kaliwa 45 deg
r.turnAngle (-45)
kung hindi man Side-40% kung ang telepono ay paikutin sa pagitan ng -25 at -40 deg lumiko pakanan 5 deg
r.turnAngle (5);
kung hindi man Side <-40% kung ang telepono ay paikutin mas mababa sa -40 deg lumiko sa kaliwa 45 deg
r.turnAngle (45)
magtapos
% Kung ang telepono ay gaganapin malapit sa verticle kumuha ng isang imahe at balangkas ito
kung ang Pitch <-60 && imahe <= 9
r.beep
img = r.getImage;
subplot (3, 3, imahe)
imshow (img)
magtapos
% sumulong at paatras batay sa orientation ng harap at likod
kung ang Pitch> 15 && Pitch <35% kung pitch sa pagitan ng 15 at 35 deg sumulong sa maikling distansya
% makakuha ng magaan na data ng bumper bago lumipat
litBump = r.getLightBumpers;
kung litBump.leftFront> 500 || litBump.leftCenter> 500 || litBump. RightCenter> 500 || litBump. RightFront> 500% kung may isang bagay sa harap ng roomba at tatama kung sumulong ito gumawa ng ingay at ipakita ang mensahe
r.beep ('C ^^, F # ^, C ^^, F # ^')
iba% ilipat
r.moveDistance (.03);
% Kumuha ng data ng bumper pagkatapos lumipat
Bump = r.getBumpers;
kung Bump. tama == 1 || Bump.left == 1 || Bump.front == 1
r.beep ('A, C, E')
r.moveDistance (-. 01)
magtapos
% makakuha ng data ng cliff sensor
Cliff = r.getCliffSensors;
kung Cliff.kaliwa> 1500 || Cliff.leftFront> 1500 || Cliff. RightFront> 1500 || Cliff. Right> 1500% kung may isang bagay na nagpapalitaw sa cliff sensor na tinatrato ito bilang lava at back up
r.beep ('C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C')
r.moveDistance (-. 031)
magtapos
magtapos
kung hindi man Pitch> 35% kung mas mataas ang pitch ng 35 deg pasulong na mas matagal ang distansya
% makakuha ng magaan na data ng bumper bago lumipat
litBump = r.getLightBumpers;
kung litBump.leftFront> 15 || litBump.leftCenter> 15 || litBump. RightCenter> 15 || litBump. RightFront> 15% kung may isang bagay sa harap ng roomba at tatama kung sumulong ito gumawa ng ingay at ipakita ang mensahe
r.beep ('C ^^, F # ^, C ^^, F # ^')
iba% ilipat
r.moveDistance (.3)
% Kumuha ng data ng bumper pagkatapos lumipat
Bump = r.getBumpers;
kung Bump. tama == 1 || Bump.left == 1 || Bump.front == 1% kung nag-hit ka ng isang bagay gumawa ng ingay, display message, at i-back up
r.beep ('A, C, E')
r.moveDistance (-. 01)
magtapos
% makakuha ng data ng cliff sensor pagkatapos lumipat
Cliff = r.getCliffSensors;
kung Cliff.kaliwa> 1500 || Cliff.leftFront> 1500 || Cliff. RightFront> 1500 || Cliff. Right> 1500% kung may isang bagay na nagpapalitaw sa cliff sensor na tinatrato ito bilang lava at back up
r.beep ('C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C')
r.moveDistance (-. 31)
magtapos
magtapos
kung hindi man Pitch-35% kung pitch sa pagitan ng -15 at -35 deg ilipat pabalik maikling distansya
r.moveDistance (-. 03);
% makakuha ng data ng cliff sensor pagkatapos lumipat
Cliff = r.getCliffSensors;
kung Cliff.kaliwa> 1500 || Cliff.leftFront> 1500 || Cliff. RightFront> 1500 || Cliff. Right> 1500% kung may isang bagay na nagpapalitaw sa cliff sensor na tinatrato ito bilang lava at back up
r.beep ('C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C')
r.moveDistance (.04)
magtapos
kung hindi man Pitch-60% kung pitch sa pagitan ng -35 at -60 deg ilipat pabalik mas mahabang distansya
r.moveDistance (-. 3)
% makakuha ng data ng cliff sensor pagkatapos lumipat
Cliff = r.getCliffSensors;
kung Cliff.kaliwa> 1500 || Cliff.leftFront> 1500 || Cliff. RightFront> 1500 || Cliff. Right> 1500% kung may isang bagay na nagpapalitaw sa cliff sensor na tinatrato ito bilang lava at back up
r.beep ('C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C, C ^^, C')
r.moveDistance (.31)
magtapos
magtapos
magtapos
magtapos
Inirerekumendang:
Ginagawang Mas Madali ang Pagsasanay sa Band; isang Nakasuot na Count-in na Device Na May Pressure Switch: 7 Mga Hakbang
Ginagawang Mas Madali ang Pagsasanay sa Band; isang Nakasuot na Count-in na Device Na May isang Pressure Switch: Paggamit ng isang simpleng presyon
Gamit ang Iyong Bluetooth Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Computer: 6 Mga Hakbang
Paggamit ng Iyong Bluetooth na Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Kompyuter: Kanina pa ako nagbabasa ng mga itinuturo, at palaging nais kong gawin ang ilan sa mga bagay na sinulat ng mga tao, ngunit nahanap ko ang aking sarili sa mga bagay na ay mahirap gawin dahil ang mga ito ay tunay na mahirap gawin, o ang ika
Ginagawang Mas Masaya ang Iyong Pangit na Mga Headphone: 4 na Hakbang
Ginagawang Mas Masaya ang Iyong Pangit na Mga Headphone: Nakuha ko ang pares ng kahanga-hangang mga headphone na ito. Sa gayon, ang mga ito ay kahanga-hangang tunog, ngunit ang hitsura nila ay kakila-kilabot. Sino ang may suot na kulay kahel at puti? Para akong tulala. Nagsusuot ako ng maraming maitim na kulay at ayaw sa puting plastik … kasama na nakaplaster ang pangalan ng tatak sa
Ginagawang Friendly ang Gumagawa ng Iyong Targus Laptop Cooling Pad: 3 Mga Hakbang
Ginagawa ang Iyong Targus Laptop Cooling Pad User Friendly: Gumagawa ng maayos ang paglamig upang palamig ang iyong laptop, ngunit ang walang kuryente na kurdon na dumidikit sa harap ay madaling masira, o makagambala. Sa itinuturo na ito, ipapakita ko sa iyo kung paano mag-disassemble, magbago, at muling tipunin ang iyong paglamig pad sa maximiz
I-hack ang Iyong Servo V1.00 - Gawin ang Iyong Servo sa isang Napakalakas na Linear Actuator: 7 Hakbang
I-hack ang Iyong Servo V1.00 - Gawing Iyong Servo sa isang Napakalakas na Linear Actuator: Ibinigay na mayroon kang mga tool at servo na maitatayo mo ito sa ilalim ng isang pares ng pera. Ang actuator ay umaabot sa isang rate ng tungkol sa 50mm / min. Ito ay sa halip mabagal ngunit napakalakas. Panoorin ang aking video sa pagtatapos ng post kung saan ang maliit na actuator