Scissor Drive Servo Hat: 4 кадам (Сүрөттөр менен)
Scissor Drive Servo Hat: 4 кадам (Сүрөттөр менен)
Anonim
Image
Image

Бул жөнөкөй 3D басып чыгаруу жана серво кыймылдаткыч долбоору-бул мээ шишигин алып салуу боюнча операция болгон Simone Giertz үчүн эң сонун сезим. Кайчы түзмөк кичине Arduino коду менен иштеген микро серво мотору жана Trinket микроконтроллери менен башкарылат жана 3xAAA батарейкасы менен иштейт. Бул долбоор Лесли Берч менен кызматташуу!

3D & Servo механизмин чогултуу
3D & Servo механизмин чогултуу

Мен Tinkercad, акысыз жана оңой 3D моделдөө куралы менен базалык табакты жана моторду орнотконду моделдедим, анда жалпы электроника компоненттеринин панели орнотулган. Мен микро сервону сүйрөп чыгып, анан базаны тегерегине ылайыкташтырып, кайчы механизм менен кайда тизилээрин көрө алдым.

Кайчы жылан Thingiverse боюнча ricswika тарабынан иштелип чыккан жана аны Tinkercadге алып келип, туткасы менен туткунун учтарын биздин негизги бөлүккө туура келгидей кылып өзгөртүү оңой болгон.

Бул долбоор үчүн сизге керек болот:

  • Микро -servo мотор
  • Акылсыз шляпа
  • Пластикалык гольф топу
  • Тиешелүү кескичтери бар болот зым
  • Тигүү ийнеси жана жип
  • Кайчы
  • Trinket 5V микро контроллери
  • 3xAAA батарея кармагыч
  • Жылуулукту кыскартуучу түтүк
  • Лампочка жана ширетүүчү
  • Үчүнчү колго жардам берүү
  • Сым тазалагычтар
  • Диагоналдуу кескичтерди жуу
  • Ургаачы зымдары же кээ бир баштыктар (стандарттуу серво туташтыргычка туташуу үчүн)
  • Ысык клей

Мен иштеп жаткан нерсеге жетүү үчүн YouTube, Instagram, Twitter, Pinterestте мени ээрчиңиз жана менин маалымат баракчама жазылыңыз. Amazon Associate катары мен менин өнөктөштүк шилтемелеримди колдонуп, квалификациялуу сатып алуулардан киреше табам.

Бул схеманы Tinkercadдан табыңыз

Бул диаграмма жана симуляция Trinket's Attiny85 микроконтроллерин, батареяны жана сервону көрсөтөт. Кодду иштетүү жана Серво айлануусун көрүү үчүн Симуляцияны баштоону басыңыз.

Tinkercad Circuits-бул браузерге негизделген бекер программа, ал схемаларды курууга жана симуляциялоого мүмкүндүк берет. Бул үйрөнүү, үйрөтүү жана прототиптөө үчүн идеалдуу.

1 -кадам: Tinkercad модели

Мен Tinkercadга негизги кайчы жыландын моделин жүктөдүм, андан кийин капталдагы тешиктин формасын сүйрөп, аларды ар бир туткасын жана аягындагы кармагычтарды жабуу үчүн калыптандырып, тешиктерди баштапкы формасы менен топтоштуруу менен өзгөрттүм. Мен андан кийин пластикалык гольф топун, ошондой эле базага/сервого бекитүү үчүн базанын учунда жана тешиктеринде жаңы өтмөктөрдү түзө баштадым.

Негизги бөлүк Tinkercadдын камтылган микросхема компоненттерин колдонуу менен нөлдөн моделденген. Мен электроника компоненттеринин панелинен микро серво моторун сүйрөп чыгып, моторду камсыз кылуу жана кайчы жыланды тиркөө үчүн интерфейс түздүм. Шляпага тигүү үчүн базага дагы тешиктерди койдум.

Сиз бул Tinkercad дизайнын көчүрүп, өзүңүздү басып чыгаруу үчүн ар бир бөлүгүн экспорттой аласыз. Тик кайчы жылан көрсөтүү максатында- бул кайталанган бөлүктү басып чыгарууга аракет кылбаңыз. = D

Ачыктоо: бул жазуу учурунда мен Tinkercad кылган Autodeskтин кызматкеримин.

2 -кадам: 3D & Servo механизмин чогулт

3D & Servo механизмин чогултуу
3D & Servo механизмин чогултуу

Кайчы жыландын бекитилген тарабын базага, ал эми кыймылдуу бөлүгүн серво менен байланыштыруу үчүн каттуу болот зымды колдондук. Зымдын кичинекей бир бөлүгүндө бурчту ийилгенден кийин, биз "окторубуздун" башка учтарын бекемдөө үчүн зергердик мончокторду жана ысык желимди колдондук. Серво мотору ошол эле зым жана бир аз ысык клей менен кармалып турат. Биз кыймылдын диапазону кайчы жыландын кыймылына дал келиши үчүн, серво мүйүзүнүн жайгашуусу менен бир аз эксперимент кылышыбыз керек болчу.

3 -кадам: Circuit жана Arduino Code

Circuit жана Arduino коду
Circuit жана Arduino коду
Circuit жана Arduino коду
Circuit жана Arduino коду

Райондук туташуулар төмөнкүдөй:

  • Trinket BAT+ servo мотор кубатына
  • Trinket GND servo мотор жерге
  • Мотор сигналына светочка #0
  • 3xAAA батареянын күчү (кызыл зым) Trinket BAT+ (тактанын асты жагында)
  • 3xAAA батарея топтому (кара зым) Trinket GNDге (тактанын асты жагында)

Бул долбоордун Arduino коду Trinket Servo үйрөткүчүндөгү SoftServo мисалына негизделген. Колдонуу үчүн SoftServo китепканасын орнотушуңуз керек, аны Китепкана менеджеринен издөө менен жасай аласыз (Эскиз -> Китепканаларды кошуу -> Китепканаларды башкаруу …). Ардуинодо код китепканаларын орнотуу жана колдонуу жөнүндө көбүрөөк маалымат алуу үчүн менин бекер Instructables Arduino классымды, 4 -сабакты караңыз.

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

Adafruit Trinket үчүн SoftServo эскизи. (0 = нөл градус, толук = 180 градус) Талап кылынган китепкана - бул Adafruit_SoftServo китепканасы https://github.com/adafruit/Adafruit_SoftServo жеткиликтүү Стандарттык Arduino IDE серво китепканасы Trinket жана Gemma сыяктуу 8 биттик AVR микроконтроллерлери менен иштебейт. жеткиликтүү таймердин аппараттык жана программалоодогу айырмачылыктары. Биз жөн эле чочконун жардамы менен таймерди жаңыртып турабыз0 миллис () эсептегич. Керектүү жабдыкта Adafruit Trinket микроконтроллери бар серво мотору бар. Жазылгандай, бул атайын Trinket үчүн, бирок ал Gemma же башка тактайлар болушу керек (Arduino Uno ж. Б.). пин карталары Trinket: BAT+ Gnd Pin #0 Байланыш: Servo+ - Servo1 ******************************** *******************************/ #include // SoftwareServo (PWM эмес пиндерде иштейт) // Биз эки сервону көрсөтөбүз ! #define SERVO1PIN 0 // Серво көзөмөл сызыгы (кызгылт сары) Trinket Pin #0 int pos = 40; // servo абалын сактоо үчүн өзгөрмө Adafruit_SoftServo myServo1; // servo объектисин жараксыз орнотуу () {// Сервону биз үчүн автоматтык түрдө жаңылай турган үзгүлтүктү орнотуңуз OCR0A = 0xAF; // каалаган сан OK TIMSK | = _BV (OCIE0A); // Салыштыруу үзгүлтүгүн күйгүзүңүз (төмөндө!) MyServo1.attach (SERVO1PIN); // Сервону Trinket myServo1.write'ге 0 -пинге тиркеңиз (pos); // Сервого айткыла, бир кызматка кечигүү (15); // Серводун позицияга жетүүсүн 15 м күтөбүз} void loop () {for (pos = 40; pos = 40; pos- = 3) // 180 градустан 0 градуска чейин барат {myServo1.write (pos); // servoга "pos" кечигүү абалына өтүүсүн айт (15); // сервонун позицияга жетүүсүн 15 м күтөт}} // Биз убактысын көзөмөлдөө үчүн миллис () таймеринде иштейбиз // жана сервисти жаңылап турабыз 20 миллисекунд сайын туруксуз uint8_t counter = 0; SIGNAL (TIMER0_COMPA_vect) {// бул 2 миллисекунд сайын += 2 деп аталат; // ар 20 миллисекундта, серволорду жаңыртыңыз! if (counter> = 20) {counter = 0; myServo1.refresh (); }}

Сунушталууда: