Na světě je každý den mezi robotickými čistícími prostředky stále oblíbenější. Díky tak malým pomocníkům je dům mnohem čistší a na úklid je vynaloženo mnohem menší úsilí. Existuje mnoho různých úprav robotů, všechny se liší funkčností, velikostí a dalšími parametry.
Konkrétně tento článek zváží příklad jak
udělej to sám Můžete si vyrobit jednoduchého robota, který sám v případě potřeby vysává místnost. Kontrolér se zde používá jako „mozek“
Arduino.
Materiály a nástroje pro výrobu robota:- deska, která řídí činnost motorů (motorový štít Arduino);
- Arduino deska;
- dva motory s převody (motory při 3 V a rychlost otáčení asi 100 ot / min.);
- kola (mohou být vyrobeny z hliníkových plechovek;
- chladič ze zdroje napájení počítače (možný jak na 5V, tak na 12V);
- napájení 5 V (baterie);
- dráty a desky pro instalaci rádiových prvků;
- pro případ, že budete potřebovat plastovou nádobu;
- Další malý kontejner pro vytvoření odpadního koše;
- horké lepidlo;
- magnety;
- karton.
Výrobní proces robota:
První krok. Softwarová část robota a náčrtu:
Srdcem robota je ovladač Arduino. K jeho programování budete potřebovat počítač a speciální software.
Chcete-li stáhnout náčrt na tabuli, budete potřebovat program Arduino IDE. Níže si můžete vzít programový kód robota a vidět hlavní obvod.
/*
Program pro ovládání robota se dvěma motory.
Robot se otáčí, když motory mění svou rychlost a směr.
Přední nárazníky na levé a pravé straně detekují překážky.
Ultrazvukové sonary lze připojit k analogovým vstupům (testováno na LV-MaxSonar-EZ1):
- umístěte kolíky do pole sonarPins v následujícím pořadí: vlevo, vpravo, vpředu, ostatní ..
Příklady:
1. pouze levý a pravý sonar připojený k pinům 2 a 3: sonarPins [] = {2,3}
2. levé, pravé a přední sonary připojené k pinům 2, 3 a 5: sonarPins [] = {2,3,5}
3. pouze přední sonar připojený k pinu 5: sonarPins [] = {-1, -1,5}
4. SonarPins [] = {2} je připojen pouze na pin 2: sonarPins
5. pouze pravý sonar připojený k pinům 3: sonarPins [] = {-1,3}
6,5 sonarů spojených s kolíky 1,2,3,4,5: sonarPins [] = {1,2,3,4,5}
Štít motoru se používá k běhu motorů.
*/
const int Baud = 9600; // Rychlost portu UART
// Vlastnosti sonaru
int sonarPins [] = {1, 2}; // Analog Pin Nums to sonar Sensor Pin AN
const long MinLeftDistance = 20; // Minimální povolená vzdálenost vlevo
const long MinRightDistance = 20; // Minimální povolená správná vzdálenost
const long MinFrontDistance = 15; // Minimální povolená přední vzdálenost
const int SamplesAmount = 15; // více vzorků - plynulejší měření a větší zpoždění
const int SonarDisplayFrequency = 10; // zobrazí pouze jeden z těchto řádků - ne všechny
int sonarDisplayFrequencyCount = 0;
const long Factor = 2,54 / 2;
dlouhé vzorky [sizeof (sonarPins)] [SamplesAmount];
int sampleIndex [sizeof (sonarPins)];
// pravá strana
const int pinRightMotorDirection = 4; // to může být označeno na krytu motoru jako „DIR A“
const int pinRightMotorSpeed = 3; // toto může být označeno na krytu motoru jako „PWM A“
const int pinRightBumper = 2; // kde je připojen pravý nárazník
// levá strana
const int pinLeftMotorDirection = 7; // toto může být označeno na krytu motoru jako „DIR B“
const int pinLeftMotorSpeed = 6; // toto může být označeno na krytu motoru jako „PWM B“
const int pinLeftBumper = 8; // kde je připojen pravý nárazník
// zrušte další 2 řádky, pokud má motorový štít přestávky
// const int pinRightMotorBreak = PUT_BREAK_PIN_HERE; // to může být na štítu motoru označeno jako „BREAKE A“
// const int pinLeftMotorBreak = PUT_BREAK_PIN_HERE; // to může být označeno na krytu motoru jako „BREAKE B“
// pole
const int turnRightTimeout = 100;
const int turnLeftTimeout = 150;
// nastaví v čítači, jak dlouho motor běží zpět: N / 10 (v milisekundách)
int countDownWhileMovingToRight;
int countDownWhileMovingToLeft;
// Inicializace
neplatné nastavení () {
Serial.begin (Baud);
initPins ();
// odkomentujte další 4 řádky, pokud má motorový štít přestávky
// pinMode (pinLeftMotorBreak, OUTPUT);
// pinMode (pinRightMotorBreak, OUTPUT);
// digitalWrite (pinLeftMotorBreak, LOW); // vypněte přestávky
// digitalWrite (pinRightMotorBreak, LOW); // vypněte přestávky
runRightMotorForward ();
runLeftMotorForward ();
startMotors ();
}
// Hlavní smyčka
void loop () {
ověřitAndSetRightSide ();
ověřitAndSetLeftSide ();
processRightSide ();
processLeftSide ();
zpoždění (10); // opakovat každých 10 milisekund
}
//---------------------------------------------------
void initPins () {
pinMode (pinRightMotorDirection, OUTPUT);
pinMode (pinRightMotorSpeed, OUTPUT);
pinMode (pinRightBumper, INPUT);
pinMode (pinLeftMotorDirection, OUTPUT);
pinMode (pinLeftMotorSpeed, OUTPUT);
pinMode (pinLeftBumper, INPUT);
pro (int i = 0; i pinMode (sonarPins [i], INPUT);
}
void startMotors () {
setMotorSpeed (pinRightMotorSpeed, 255);
setMotorSpeed (pinLeftMotorSpeed, 255);
}
void waitWhileAnyBumperIsPressed () {
while (checkBumperIsNotPressed (pinRightBumper)
&& checkBumperIsNotPressed (pinLeftBumper)) {
zpoždění (20); // kontrola každých 20 milisekund
}
}
void processRightSide () {
if (countDownWhileMovingToRight MinFrontDistance) // kontroluje, zda není dosažena minimální povolená přední vzdálenost
návrat
if (checkCounterIsNotSet (countDownWhileMovingToLeft)) // pokud čítač ještě neodpočítává
runLeftMotorBackward (); // běh pravého motoru dozadu
countDownWhileMovingToLeft = turnLeftTimeout; // nastaví počítadlo na maximální hodnotu a začne odpočítávat
}
bool checkCounterIsNotSet (int counter) {
čítač návratu = SamplesAmount)
sampleIndex [pinIndex] = 0;
samples [pinIndex] [sampleIndex [pinIndex]] = hodnota;
návrat true;
}
dlouhý výpočetAvarageDistance (int pinIndex) {
dlouhý průměr = 0;
pro (int i = 0; i průměr + = vzorky [pinIndex] [i];
průměr návratu / SamplesAmount;
}
Krok dva Příprava základních prvků robota
Karton se používá jako základna pro upevnění všech součástí robota, včetně baterie, řídicích desek a motorů.
Turbína musí být správně přilepena nebo jinak připevněna k malé plastové nádobě, ve které bude vytvořen otvor pro absorpci nečistot. Následně je tato konstrukce nalepena na lepenkovou základnu. Kromě toho musí mít nádoba další otvor, kterým prochází vzduch. Měl by existovat filtr, autor se rozhodl pro tyto účely použít syntetickou látku.
V další fázi je třeba chladič přilepit pomocí serv a poté je tento design nainstalován na kartonové základně.
Krok tři Vyrábíme kola pro robota
K výrobě kol potřebujete brát hliníkové plechovky a odříznout z nich horní a dolní část. Poté jsou tyto prvky slepeny dohromady. Nyní zbývá pouze správně připojit kola k servomotorům pomocí tavného lepidla. Je důležité pochopit, že kola musí být jasně upevněna ve středu hřídelí serv. Jinak robot bude krutě jezdit a spotřebovává energii.
Krok čtyři Konečný proces montáže robota
Po instalaci baterie a připojení všech prvků robota zbývá umístit strukturu do trvalého pouzdra. Velký plastový kontejner je pro tyto účely skvělý. Nejprve musí být v nosu těla robota vyvrtány díry, skrze které budou vyvedeny kontakty, které vydají signál elektronika když robot narazí na překážku.
Aby bylo možné případ rychle a snadno vyjmout, používají se k jeho upevnění magnety, v tomto případě je jich osm. Magnety jsou nalepeny do vnitřku vysavače a do samotné nádoby, každá po 4 kusech.
To je vše. Nyní je robot smontován a lze jej vyzkoušet v praxi. Navzdory skutečnosti, že se robot nedokáže dobít sám a má spíše omezenou schopnost navigace, za půl hodiny bude schopen vyčistit odpadky v kuchyni nebo malé místnosti. Výhodou robota je, že všechny komponenty lze snadno najít a nejsou příliš drahé. Není pochyb domácí Můžete je vylepšit přidáním nových senzorů a dalších prvků.