Spionera på din katt med den här robotkameran. Bygg ihop robotkameran och kontrollera den med en liten joystick. Se kamerabilden live på på datorskärmen och när din katt gör någonting misstänksamt, ta en bild!
Material
- 1 Arduino Uno
- 1 Education-sköld
- 1 webbkamera
- 1 TinkerKit-joystick
- 2 standardservon
- 2 TinkerKit-kablar
- 3 labbkablar
- 8 AA-batterier
- 1 AA-batterihållare
- 1 strömkontakt
- Robotkamera-kit
Instruktioner
Kod
Hitta koden File>Examples>EducationShield>Block4-Robots>Projects>CameraRobot
Hitta Processing-koden i File>Examples>EducationShield>Block4-Robots>Projects>CameraRobot>Processing>CameraRobot
Så här fungerar det
- EducationShield- och Servo-biblioteken inkluderas.
- Joystick- och Servo-objekten deklareras.
- Variablerna som används för att sätta servons positioner deklareras,
panAngle
ochtiltAngle
. - Variablerna som används för att lagra joystickens värden deklareras,
panJoystick
ochtiltJoystick
. - I
setup()
initialiseras servo-objekten. - I
loop()
läses joystickens x-värde av och lagras ipanJoystick
. - Joystickens y-värde läses av och lagras i
tiltJoystick
. - Om
panJoystick
inte är lika med 0, betyder det att joysticken har flyttats i x-axeln, och följande händer:- Om
panJoystick
är lika med 1 ochpanAngle
är mindre än 180, ökaspanAngle
med 1. - Om
panJoystick
istället är lika med -1 ochpanAngle
är större än 0, minskaspanAngle
med 1.
- Om
- Nästa if-sats i
loop()
kontrollerar omtiltJoystick
inte är lika med 0. Om det är sant händer följande:- Om
tiltJoystick
är lika med 1 ochtiltAngle
är mindre än 180 ökastiltAngle
med 1. - Om
tiltJoystick
istället är lika med -1 ochtiltAngle
är större än 0, minskastiltAngle
med 1.
- Om
- “Panorerings-servons” position bestäms med
panAngle
. - “Lutnings-servons” position bestäms med
tiltAngle
. - Programmet pausas i 5 millisekunder för att ge servon lite tid att komma på plats.
loop()
fortsätter att upprepas.
Problemlösning
- Hänvisa till illustrationen och dubbelkolla dina kopplingar. Var noga med att skölden och labbkablarna är ordentligt kopplade.
- Var noga med att ha kopplat servorna korrekt. Se referenssidan för standardservo.
- Var noga med att ha kopplat joysticken korrekt. Se referenssidan för joystick.
Lär genom att göra
- Servorna kanske rör sig för snabbt eller för långsamt. Ändra på
delay()
-tiden i slutet avloop()
, eller ändra på stegens storlek. - Servorna kanske rör sig för långt åt sidorna, eller för högt eller lågt. Begränsa de tillåtna vinklarna.
- Bygg någonting annat som använder en “lutnings-servo” och en “panorerings-servo” och som du kontrollerar med en joystick.