Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
V tomto Instructable se naučíte, jak vytvořit robota na řešení bludišť, který řeší bludiště nakreslená lidmi.
Zatímco většina robotů řeší první druh nakreslených bludišť (musíte se řídit čarami, jsou to cesty), normální lidé mají tendenci kreslit druhý druh bludišť. Ty jsou pro robota mnohem těžší a chytřejší, ale ne nemožné!
Krok 1: Krok 1: Řešení bludiště
Ve skutečnosti jsem zvažoval mnoho metod řešení bludiště, ale nejpoužívanější metoda je snadno programovatelná, přestože řeší téměř každé bludiště!
V této metodě řekneme robotovi, aby:
- Odbočte doprava, kdykoli to jde
- Pokud ne, jeďte vpřed, pokud je to možné
- Jako poslední řešení zahněte doleva a
- Vraťte se, pokud se dostanete do slepé uličky
Na obrázku vidíte bludiště, které takto řeší bytost. Tato metoda se často nazývá Wall Follower. Pokud je cílem výstup ve vnější zdi, Wall Waller ho najde.
Krok 2: Krok 2: Objednávka dílů
K tomuto robotovi bychom potřebovali:
- 1 × Arduino Uno
- Držák baterie 1 × 4 AA
- 3 × snímače TCRT5000 (QTR-1A)
- 2 × 6V stejnosměrné motory
- 13 × drát-žiletka pro muže a ženy
- 10 × drát-žíla-žena
- Záhlaví kolíku s alespoň 29 piny
- Pájecí zařízení
Také si stáhněte a nainstalujte Arduino IDE, které se bude vyvíjet na vašem Arduinu, a ujistěte se, že váš Arduino je dodáván s kabelem USB typu A/B pro připojení k vašemu počítači.
Krok 3: Krok 3: Čtení ze senzoru
Senzory TCRT5000 jsou sestaveny z infračervené LED (modrá koule) a přijímače (černá koule).
Když dioda LED vyzařuje infračervené světlo na bílý povrch, odrazí se do přijímače a vrátí nízkou hodnotu (v mém případě 40 ~ 60) Když dioda vyzařuje světlo na černý povrch, absorbuje se a vrátí vysoká hodnota (700 ~ 1010 v mém případě)
Druhý obrázek ukazuje schéma, které říká, jak připojit senzor k Arduinu. Držte senzor tak, abyste viděli LED a přijímač a kolíky směřovaly ke schématu, abyste se ujistili, že připojujete správné piny.
Nyní stačí připojit Arduino k našemu počítači, do Arduino IDE vložit následující kód a zkompilovat ho:
// Změňte A0 na jakýkoli port, ke kterému jste připojili senzor,#definujte FRONT_SENSOR A0void start () {Serial.begin (9600); } void loop () {int frontValue = analogRead (FRONT_SENSOR); Serial.println (frontValue);}
Nyní, když pohybujete senzorem velmi blízko po bílém a černém povrchu, měli byste vidět, jak se hodnoty odpovídajícím způsobem mění v sériovém monitoru.