9 taksite varan seçeneklerle alışveriş imkanı
  • NEWSLETTER
  • CONTACT US
  • FAQs
Proje Hocam
0 ürünler / 0,00 TL
Menü
Proje Hocam
0 ürünler / 0,00 TL
Tüm Kategoriler
  • 3D Yazıcı / CNC3D Yazıcı / CNC
    3D Yazıcı
    Mavi Bant
    Nozzle
    3D Yazıcı Motor
    filament
    Filament
    Mekanik Parçalar
    3D Elektronik
    3D Tabla
    Adafruit
    Arduino
    Creality
    Makeblock
  • Hazır Proje ve SetlerHazır Proje ve Setler
    Otto Robot
    sesleri-lcd-ekran
    Sesleri LCD Yazdırma
    mesafeolcel
    Dijital Metre
    caymakinesi_resim-2
    Sallama Çay Makinesi
    Örümcek Robot
    ultrasonik-radar-1
    Ultrasonik Radar
    Engel Algılayan Örümcek
    Kendini Dengeleyen Robot
    Adafruit
    Arduino
    Creality
    Makeblock
  • Arduino EkipmanlarıArduino Ekipmanları
    arduino-uno-r3-dip-klon-usb-kablo
    Arduino UNO
    dht11_1
    DHT11 Sensör
    arduino-mega-2560-R3-with-cable
    Arduino Mega2560
    ates-algilayici-sensor-karti-flame-sensor-21180-17-B
    Alev Sensörü
    arduino-pro-mini-atmega328p-5v16m-mikrod-3a57
    Arduino Promini
    mq2-gaz-sensor
    Gaz Sensörü
    ultrasonik_sensor
    Ultrasonik Sensör
    pic-kamera-modul
    Kamera Modülü
    Adafruit
    Arduino
    Creality
    Makeblock
  • Raspberry Pi EkipmanlarıRaspberry Pi Ekipmanları
    raspberry-pi-4-4gb
    Raspberry Pi
    raspberry-pi-pico-raspberry-pi-modelleri-raspberry-pi-15228-81-B
    Raspberry Pi Pico
    raspberry-pi-kamera-modulu-camera-30871-16-O
    Raspberry Pi Kamera
    SanDisk-Ultra-haf-za-kart-32GB-16GB-SDHC-s-n-f-10-A1-UHS-I-mikro
    SD Kart
    raspberry-pi-4-orijinal-lisansli-kutu-25776-80-O
    Kutu
    raspberypi_fan
    Soğutucu Fan
    raspberry_15wusb-c_1_1
    Güç Kaynağı
    7-inch-capacitive-touch-screen-lcd1
    HDMI Ekran
    Adafruit
    Arduino
    Creality
    Makeblock
  • Sensör ve KomponentlerSensör ve Komponentler
    rc522
    RFID Sensör
    dokunmatik-sensor-ttp223b-dokunmatik-cin-8920-64-B
    Dokumantik Sensör
    ses-algilama-mikrofon-modulu
    Mikrofon
    SIM800L-GPRS-GSM-Module-with-Antenna-
    GSM Modül
    qtr8a-sensor-robiduck
    Çizgi Sensörü
    hc06_bluetooth
    HC06
    joystick
    joystick
    tek-kanalli-5v-role-karti-14016-jpg
    Röle
    Adafruit
    Arduino
    Creality
    Makeblock
  • Kablosuz HaberleşmeKablosuz Haberleşme
    2-4g-nrf24l01-antenli-e1443177055216
    NRF24L01L
    SIM800L-GPRS-GSM-Module-with-Antenna-
    GSM Modül
    38446-esp32-esp32s-esp-32-esp-32s-cp2102-kablosuz-wifi-bluetooth-gelistirme-kurulu-mikro-usb-cift-cekirdekli-guec-amplifikatoerue-filtre-moduelue
    ESP32 IO Kart
    gy-neo6mv2-gps-modul-ucus-kontrolu-91e2
    GPS Modül
    hc06_bluetooth
    HC06 Bluetooth
    24ghz-rp-sma-anten-uzun
    RF Anten
    lora-sx1278-868-mhz
    Lora Modül
    RP-SMA
    SMA Konnektör
    Adafruit
    Arduino
    Creality
    Makeblock
  • Güç KaynaklarıGüç Kaynakları
    okcellcharge
    9v Şarjlı Pil
    dc-barrel-disi-guc-jaki-2-12124-52-K
    DC Jack
    9v-power-kablosu-arduino-aksesuarlari-vbnm-9574-24-B
    9V Jack
    4lu-aa-pil-yuvasi-22343-73-O
    4lü AA pil yuvası
    15-v-500ma-gunes-pili-solar-panel-14820-73-O
    Güneş Paneli
    15w-12v-13a-guc-kaynagi-34497-93-O
    24V Power
    tlp4056-37v-sarj-aleti-5v-1a-lithium-battery-charger-31536-13-O
    1S Lipo Şarj
    12v-15a-priz-tipi-plastik-adaptor-5-34275-93-O
    12V Priz Adaptör
    Adafruit
    Arduino
    Creality
    Makeblock
  • Motor ve MekanikMotor ve Mekanik
    6v-250-rpm-motor-ve-tekerlek-robot-setleri-cin-1413-54-B
    Sarı Motor Tekerlek
    TowerPro-MG90S-1
    Metal Servo
    titresim-motoru
    Titreşim Motoru
    EJFRNOLBTP125202113592_emax-xa2212-1400kv-multikopter-icin-fircasiz-motor
    Fırçasız Motor
    towrpro_sg90
    9G Servo
    12v-35mm-1000-rpm-reduktorlu-dc-motor-30486-88-O
    DC Motor
    17hs4401-nema-17-step-motor
    Nema17 Step Motor
    6c7ea6c1ffe2655e75efa809f770eae7faa48143_original
    Pompa Motoru
    Adafruit
    Arduino
    Creality
    Makeblock
  • Drone MalzemeleriDrone Malzemeleri
    qav250-karbon-fiber-drone-govdesi
    Drone Gövdesi
    ublox-neo-6m-gps-modulu-apm-pixhawk
    Telementri
    flysky-fs-t4b-24ghz-4-kanal-kumanda-seti-drone-kumanda-flysky-41972-15-B
    RC Kumanda
    apm-2-6-ardupilot-titresim-anti-sok-engelleyici-anti-vibrasyon
    Şok Emici
    skywalker-80a-esc-fircasiz-motor-surucu-devresi__0537725722563185
    ESC Sürücü
    per-adaptor
    Pervane Adaptörü
    Hb413d67abb24428ba9d0c7be65a2681f6.jpg_640x640
    Pervane
    1000-tvl-fpv-drone-kamerasi-2-8mm-lens-110-derece
    Kamera
    Adafruit
    Arduino
    Creality
    Makeblock
  • Araç GereçlerAraç Gereçler
    kesim-mati-a3
    Kesme Matı
    mini-drill-12v-dc-pcb-matkabi-turuncu-22437-73-B
    Mini Drill
    silikon tabancası
    Silikon
    pcb-devre-karti-tutacagi-zd-11e-31627-35-B
    PCB Tutucu
    plato-yan-keski-satin-al
    Yan Keski
    tornavida-seti-31
    Tornavida
    maket-bicagi-fiyat
    Maket Bıçağı
    pcb-tutucu
    Büyüteç
    Adafruit
    Arduino
    Creality
    Makeblock
  • Anasayfa
  • Referanslar
  • Blog
  • İletişim

ÖZEL PROJE SİPARİŞİ

Giriş / Kayıt

ÖZEL PROJE SİPARİŞİ

Büyütmek için tıklayın
Ana SayfaHazır Proje ve Setler Arduino Android Kontrollü Örümcek Robot
Önceki ürün
Şekil Çizen Robot Araba 1.170,00 TL
Ürünlere geri dön
Sonraki ürün
Arduino Telefon Kontrollü Tekne 2.368,00 TL
Yapboz

Arduino Android Kontrollü Örümcek Robot

4 müşteri puanına dayanarak 5 üzerinden 5.00 puan aldı
(4 müşteri incelemesi)

870,00 TL

Arduino ve android kontrollü robot projesinin demonte kitidir.Resimde görüldüğü gibi örümcek robot 4 bacaklı ve her bacakta 3 adet SG90 9gr servo motor bulunmaktadır.Motorları kontrol etmek için arduino uno ve sensor shield v5 kullanılmıştır.Cep telefonu programı ile haberleşmek için HC-06 bluetooth modülü mecvuttur.Robot parçaları ile birlikte batarya gönderilmemektedir.Bataryayı harici almanız gerekiyor.

3 adet stokta

Kategoriler: Hazır Proje ve Setler Etiketler: Arduino Projeleri, Robot Projeleri, Teknofest Projeleri
Paylaş
  • Açıklama
  • Ek bilgi
  • İnceleme (4)
  • Marka hakkında
  • Kargo Süreci
Açıklama

Şimdi bütün parçaları satın aldıktan sonra montaja geçiyoruz.Yapmanız gereken şey öncelikle servo motorları girmesi gereken yerlere sokarken servonun kablosuna zarar vermemek için servonun altında bulunan 4 adet vidayı çıkarın ve kapağı kaldırın. Servoyu yerine yerleştirdikten sonra tekrar kapağı takarak vidalayın.

Ürün siyah renk gönderilecektir.

Malzemeler:

  • 12 Adet sg90 servo motor
  • Arduino Uno
  • Sensör Shield v5
  • HC-06 bluetooth modülü
  • 3D Parçalar
  • Güç kaynağı (pakette mevcut değil)

NOT-1: Servo motorların üst plastik kısımlarını vidalamayın henüz. Servo motorları yerine takarken verdiğim kaynakları takip ederek yapınız ve motorların ne tarafa dönük olduğuna dikkat edin.

Motorların bacak sırasına göre bağlanması gerekmektedir. Bacak sırasına göre motorlar numaralandırılmıştır. Aynı zamanda Arduino kodu içerisinde hangi motorun hangi pine bağlanması gerektiği yazmaktadır.

Montaj bittikten sonra motorların açılarının ayarlanması için bir ayar kodu bulunmaktadir. Servoların üst plastik parçaları bu test kodu yüklendikten sonra vidalanması gerekmektedir. Burada dikkat etmeniz gereken verdiğim kaynakta gösterdiği gibi parçaların konumları ve hizaları çok önemli olabildiğince simetrik yapmaya çalışın ve ondan sonra servo motorların üst plastik parçasını vidalayın.

// Örümcek Robot Ayar Kodu - Proje Hocam 

#include <Servo.h>   

Servo servo[4][3];

//define servos' ports
const int servo_pin[4][3] = { {2, 3, 4}, {5, 6, 7}, {8, 9, 10}, {11, 12, 13} };

void setup()
{
  //initialize all servos
  for (int i = 0; i < 4; i++)
  {
    for (int j = 0; j < 3; j++)
    {
      servo[i][j].attach(servo_pin[i][j]);
      delay(20);
    }
  }
}

void loop(void)
{
  for (int i = 0; i < 4; i++)
  {
    for (int j = 0; j < 3; j++)
    {
      servo[i][j].write(90);
      delay(20);
    }
  }
}

Ayar kodundan sonra servoları da vidaladıysanız işlem tamamdır. Artık asıl kodu yükleyebilirsiniz.

/* Includes ------------------------------------------------------------------*/
#include <Servo.h> //to define and control servos
#include <FlexiTimer2.h>//to set a timer to manage all servos
/* Servos --------------------------------------------------------------------*/
//define 12 servos for 4 legs
Servo servo[4][3];
//define servos' ports
const int servo_pin[4][3] = { {2, 3, 4}, {5, 6, 7}, {8, 9, 10}, {11, 12, 13} };
/* Size of the robot ---------------------------------------------------------*/
const float length_a = 55;
const float length_b = 77.5;
const float length_c = 27.5;
const float length_side = 71;
const float z_absolute = -28;
/* Constants for movement ----------------------------------------------------*/
const float z_default = -50, z_up = -30, z_boot = z_absolute;
const float x_default = 62, x_offset = 0;
const float y_start = 0, y_step = 40;
/* variables for movement ----------------------------------------------------*/
volatile float site_now[4][3]; //real-time coordinates of the end of each leg
volatile float site_expect[4][3]; //expected coordinates of the end of each leg
float temp_speed[4][3]; //each axis' speed, needs to be recalculated before each movement
float move_speed; //movement speed
float speed_multiple = 1; //movement speed multiple
const float spot_turn_speed = 4;
const float leg_move_speed = 8;
const float body_move_speed = 3;
const float stand_seat_speed = 1;
volatile int rest_counter; //+1/0.02s, for automatic rest
//functions' parameter
const float KEEP = 255;
//define PI for calculation
const float pi = 3.1415926;
/* Constants for turn --------------------------------------------------------*/
//temp length
const float temp_a = sqrt(pow(2 * x_default + length_side, 2) + pow(y_step, 2));
const float temp_b = 2 * (y_start + y_step) + length_side;
const float temp_c = sqrt(pow(2 * x_default + length_side, 2) + pow(2 * y_start + y_step + length_side, 2));
const float temp_alpha = acos((pow(temp_a, 2) + pow(temp_b, 2) - pow(temp_c, 2)) / 2 / temp_a / temp_b);
//site for turn
const float turn_x1 = (temp_a - length_side) / 2;
const float turn_y1 = y_start + y_step / 2;
const float turn_x0 = turn_x1 - temp_b * cos(temp_alpha);
const float turn_y0 = temp_b * sin(temp_alpha) - turn_y1 - length_side;
/* ---------------------------------------------------------------------------*/
 
/*
- setup function
---------------------------------------------------------------------------*/
void setup()
{
//start serial for debug
Serial.begin(115200);
Serial.println("Robot starts initialization");
//initialize default parameter
set_site(0, x_default - x_offset, y_start + y_step, z_boot);
set_site(1, x_default - x_offset, y_start + y_step, z_boot);
set_site(2, x_default + x_offset, y_start, z_boot);
set_site(3, x_default + x_offset, y_start, z_boot);
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
site_now[i][j] = site_expect[i][j];
}
}
//start servo service
FlexiTimer2::set(20, servo_service);
FlexiTimer2::start();
Serial.println("Servo service started");
//initialize servos
servo_attach();
Serial.println("Servos initialized");
Serial.println("Robot initialization Complete");
}
void servo_attach(void)
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
servo[i][j].attach(servo_pin[i][j]);
delay(100);
}
}
}
 
void servo_detach(void)
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
servo[i][j].detach();
delay(100);
}
}
}
/*
- loop function
---------------------------------------------------------------------------*/
void loop()
{
Serial.println("Stand");
stand();
delay(2000);
Serial.println("Step forward");
step_forward(5);
delay(2000);
Serial.println("Step back");
step_back(5);
delay(2000);
Serial.println("Turn left");
turn_left(5);
delay(2000);
Serial.println("Turn right");
turn_right(5);
delay(2000);
Serial.println("Hand wave");
hand_wave(3);
delay(2000);
Serial.println("Hand wave");
hand_shake(3);
delay(2000);
Serial.println("Sit");
sit();
delay(5000);
}
 
/*
- sit
- blocking function
---------------------------------------------------------------------------*/
void sit(void)
{
move_speed = stand_seat_speed;
for (int leg = 0; leg < 4; leg++)
{
set_site(leg, KEEP, KEEP, z_boot);
}
wait_all_reach();
}
 
/*
- stand
- blocking function
---------------------------------------------------------------------------*/
void stand(void)
{
move_speed = stand_seat_speed;
for (int leg = 0; leg < 4; leg++) { set_site(leg, KEEP, KEEP, z_default); } wait_all_reach(); } /* - spot turn to left - blocking function - parameter step steps wanted to turn ---------------------------------------------------------------------------*/ void turn_left(unsigned int step) { move_speed = spot_turn_speed; while (step-- > 0)
{
if (site_now[3][1] == y_start)
{
//leg 3&1 move
set_site(3, x_default + x_offset, y_start, z_up);
wait_all_reach();
 
set_site(0, turn_x1 - x_offset, turn_y1, z_default);
set_site(1, turn_x0 - x_offset, turn_y0, z_default);
set_site(2, turn_x1 + x_offset, turn_y1, z_default);
set_site(3, turn_x0 + x_offset, turn_y0, z_up);
wait_all_reach();
 
set_site(3, turn_x0 + x_offset, turn_y0, z_default);
wait_all_reach();
 
set_site(0, turn_x1 + x_offset, turn_y1, z_default);
set_site(1, turn_x0 + x_offset, turn_y0, z_default);
set_site(2, turn_x1 - x_offset, turn_y1, z_default);
set_site(3, turn_x0 - x_offset, turn_y0, z_default);
wait_all_reach();
 
set_site(1, turn_x0 + x_offset, turn_y0, z_up);
wait_all_reach();
 
set_site(0, x_default + x_offset, y_start, z_default);
set_site(1, x_default + x_offset, y_start, z_up);
set_site(2, x_default - x_offset, y_start + y_step, z_default);
set_site(3, x_default - x_offset, y_start + y_step, z_default);
wait_all_reach();
 
set_site(1, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
else
{
//leg 0&2 move
set_site(0, x_default + x_offset, y_start, z_up);
wait_all_reach();
 
set_site(0, turn_x0 + x_offset, turn_y0, z_up);
set_site(1, turn_x1 + x_offset, turn_y1, z_default);
set_site(2, turn_x0 - x_offset, turn_y0, z_default);
set_site(3, turn_x1 - x_offset, turn_y1, z_default);
wait_all_reach();
 
set_site(0, turn_x0 + x_offset, turn_y0, z_default);
wait_all_reach();
 
set_site(0, turn_x0 - x_offset, turn_y0, z_default);
set_site(1, turn_x1 - x_offset, turn_y1, z_default);
set_site(2, turn_x0 + x_offset, turn_y0, z_default);
set_site(3, turn_x1 + x_offset, turn_y1, z_default);
wait_all_reach();
 
set_site(2, turn_x0 + x_offset, turn_y0, z_up);
wait_all_reach();
 
set_site(0, x_default - x_offset, y_start + y_step, z_default);
set_site(1, x_default - x_offset, y_start + y_step, z_default);
set_site(2, x_default + x_offset, y_start, z_up);
set_site(3, x_default + x_offset, y_start, z_default);
wait_all_reach();
 
set_site(2, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
}
}
 
/*
- spot turn to right
- blocking function
- parameter step steps wanted to turn
---------------------------------------------------------------------------*/
void turn_right(unsigned int step)
{
move_speed = spot_turn_speed;
while (step-- > 0)
{
if (site_now[2][1] == y_start)
{
//leg 2&0 move
set_site(2, x_default + x_offset, y_start, z_up);
wait_all_reach();
 
set_site(0, turn_x0 - x_offset, turn_y0, z_default);
set_site(1, turn_x1 - x_offset, turn_y1, z_default);
set_site(2, turn_x0 + x_offset, turn_y0, z_up);
set_site(3, turn_x1 + x_offset, turn_y1, z_default);
wait_all_reach();
 
set_site(2, turn_x0 + x_offset, turn_y0, z_default);
wait_all_reach();
 
set_site(0, turn_x0 + x_offset, turn_y0, z_default);
set_site(1, turn_x1 + x_offset, turn_y1, z_default);
set_site(2, turn_x0 - x_offset, turn_y0, z_default);
set_site(3, turn_x1 - x_offset, turn_y1, z_default);
wait_all_reach();
 
set_site(0, turn_x0 + x_offset, turn_y0, z_up);
wait_all_reach();
 
set_site(0, x_default + x_offset, y_start, z_up);
set_site(1, x_default + x_offset, y_start, z_default);
set_site(2, x_default - x_offset, y_start + y_step, z_default);
set_site(3, x_default - x_offset, y_start + y_step, z_default);
wait_all_reach();
 
set_site(0, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
else
{
//leg 1&3 move
set_site(1, x_default + x_offset, y_start, z_up);
wait_all_reach();
 
set_site(0, turn_x1 + x_offset, turn_y1, z_default);
set_site(1, turn_x0 + x_offset, turn_y0, z_up);
set_site(2, turn_x1 - x_offset, turn_y1, z_default);
set_site(3, turn_x0 - x_offset, turn_y0, z_default);
wait_all_reach();
 
set_site(1, turn_x0 + x_offset, turn_y0, z_default);
wait_all_reach();
 
set_site(0, turn_x1 - x_offset, turn_y1, z_default);
set_site(1, turn_x0 - x_offset, turn_y0, z_default);
set_site(2, turn_x1 + x_offset, turn_y1, z_default);
set_site(3, turn_x0 + x_offset, turn_y0, z_default);
wait_all_reach();
 
set_site(3, turn_x0 + x_offset, turn_y0, z_up);
wait_all_reach();
 
set_site(0, x_default - x_offset, y_start + y_step, z_default);
set_site(1, x_default - x_offset, y_start + y_step, z_default);
set_site(2, x_default + x_offset, y_start, z_default);
set_site(3, x_default + x_offset, y_start, z_up);
wait_all_reach();
 
set_site(3, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
}
}
 
/*
- go forward
- blocking function
- parameter step steps wanted to go
---------------------------------------------------------------------------*/
void step_forward(unsigned int step)
{
move_speed = leg_move_speed;
while (step-- > 0)
{
if (site_now[2][1] == y_start)
{
//leg 2&1 move
set_site(2, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(2, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(2, x_default + x_offset, y_start + 2 * y_step, z_default);
wait_all_reach();
 
move_speed = body_move_speed;
 
set_site(0, x_default + x_offset, y_start, z_default);
set_site(1, x_default + x_offset, y_start + 2 * y_step, z_default);
set_site(2, x_default - x_offset, y_start + y_step, z_default);
set_site(3, x_default - x_offset, y_start + y_step, z_default);
wait_all_reach();
 
move_speed = leg_move_speed;
 
set_site(1, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(1, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(1, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
else
{
//leg 0&3 move
set_site(0, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(0, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(0, x_default + x_offset, y_start + 2 * y_step, z_default);
wait_all_reach();
 
move_speed = body_move_speed;
 
set_site(0, x_default - x_offset, y_start + y_step, z_default);
set_site(1, x_default - x_offset, y_start + y_step, z_default);
set_site(2, x_default + x_offset, y_start, z_default);
set_site(3, x_default + x_offset, y_start + 2 * y_step, z_default);
wait_all_reach();
 
move_speed = leg_move_speed;
 
set_site(3, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(3, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(3, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
}
}
 
/*
- go back
- blocking function
- parameter step steps wanted to go
---------------------------------------------------------------------------*/
void step_back(unsigned int step)
{
move_speed = leg_move_speed;
while (step-- > 0)
{
if (site_now[3][1] == y_start)
{
//leg 3&0 move
set_site(3, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(3, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(3, x_default + x_offset, y_start + 2 * y_step, z_default);
wait_all_reach();
 
move_speed = body_move_speed;
 
set_site(0, x_default + x_offset, y_start + 2 * y_step, z_default);
set_site(1, x_default + x_offset, y_start, z_default);
set_site(2, x_default - x_offset, y_start + y_step, z_default);
set_site(3, x_default - x_offset, y_start + y_step, z_default);
wait_all_reach();
 
move_speed = leg_move_speed;
 
set_site(0, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(0, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(0, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
else
{
//leg 1&2 move
set_site(1, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(1, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(1, x_default + x_offset, y_start + 2 * y_step, z_default);
wait_all_reach();
 
move_speed = body_move_speed;
 
set_site(0, x_default - x_offset, y_start + y_step, z_default);
set_site(1, x_default - x_offset, y_start + y_step, z_default);
set_site(2, x_default + x_offset, y_start + 2 * y_step, z_default);
set_site(3, x_default + x_offset, y_start, z_default);
wait_all_reach();
 
move_speed = leg_move_speed;
 
set_site(2, x_default + x_offset, y_start + 2 * y_step, z_up);
wait_all_reach();
set_site(2, x_default + x_offset, y_start, z_up);
wait_all_reach();
set_site(2, x_default + x_offset, y_start, z_default);
wait_all_reach();
}
}
}
 
// add by RegisHsu
 
void body_left(int i)
{
set_site(0, site_now[0][0] + i, KEEP, KEEP);
set_site(1, site_now[1][0] + i, KEEP, KEEP);
set_site(2, site_now[2][0] - i, KEEP, KEEP);
set_site(3, site_now[3][0] - i, KEEP, KEEP);
wait_all_reach();
}
 
void body_right(int i)
{
set_site(0, site_now[0][0] - i, KEEP, KEEP);
set_site(1, site_now[1][0] - i, KEEP, KEEP);
set_site(2, site_now[2][0] + i, KEEP, KEEP);
set_site(3, site_now[3][0] + i, KEEP, KEEP);
wait_all_reach();
}
 
void hand_wave(int i)
{
float x_tmp;
float y_tmp;
float z_tmp;
move_speed = 1;
if (site_now[3][1] == y_start)
{
body_right(15);
x_tmp = site_now[2][0];
y_tmp = site_now[2][1];
z_tmp = site_now[2][2];
move_speed = body_move_speed;
for (int j = 0; j < i; j++)
{
set_site(2, turn_x1, turn_y1, 50);
wait_all_reach();
set_site(2, turn_x0, turn_y0, 50);
wait_all_reach();
}
set_site(2, x_tmp, y_tmp, z_tmp);
wait_all_reach();
move_speed = 1;
body_left(15);
}
else
{
body_left(15);
x_tmp = site_now[0][0];
y_tmp = site_now[0][1];
z_tmp = site_now[0][2];
move_speed = body_move_speed;
for (int j = 0; j < i; j++)
{
set_site(0, turn_x1, turn_y1, 50);
wait_all_reach();
set_site(0, turn_x0, turn_y0, 50);
wait_all_reach();
}
set_site(0, x_tmp, y_tmp, z_tmp);
wait_all_reach();
move_speed = 1;
body_right(15);
}
}
 
void hand_shake(int i)
{
float x_tmp;
float y_tmp;
float z_tmp;
move_speed = 1;
if (site_now[3][1] == y_start)
{
body_right(15);
x_tmp = site_now[2][0];
y_tmp = site_now[2][1];
z_tmp = site_now[2][2];
move_speed = body_move_speed;
for (int j = 0; j < i; j++)
{
set_site(2, x_default - 30, y_start + 2 * y_step, 55);
wait_all_reach();
set_site(2, x_default - 30, y_start + 2 * y_step, 10);
wait_all_reach();
}
set_site(2, x_tmp, y_tmp, z_tmp);
wait_all_reach();
move_speed = 1;
body_left(15);
}
else
{
body_left(15);
x_tmp = site_now[0][0];
y_tmp = site_now[0][1];
z_tmp = site_now[0][2];
move_speed = body_move_speed;
for (int j = 0; j < i; j++)
{
set_site(0, x_default - 30, y_start + 2 * y_step, 55);
wait_all_reach();
set_site(0, x_default - 30, y_start + 2 * y_step, 10);
wait_all_reach();
}
set_site(0, x_tmp, y_tmp, z_tmp);
wait_all_reach();
move_speed = 1;
body_right(15);
}
}
 
/*
- microservos service /timer interrupt function/50Hz
- when set site expected,this function move the end point to it in a straight line
- temp_speed[4][3] should be set before set expect site,it make sure the end point
move in a straight line,and decide move speed.
---------------------------------------------------------------------------*/
void servo_service(void)
{
sei();
static float alpha, beta, gamma;
 
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++) { if (abs(site_now[i][j] - site_expect[i][j]) >= abs(temp_speed[i][j]))
site_now[i][j] += temp_speed[i][j];
else
site_now[i][j] = site_expect[i][j];
}
 
cartesian_to_polar(alpha, beta, gamma, site_now[i][0], site_now[i][1], site_now[i][2]);
polar_to_servo(i, alpha, beta, gamma);
}
 
rest_counter++;
}
 
/*
- set one of end points' expect site
- this founction will set temp_speed[4][3] at same time
- non - blocking function
---------------------------------------------------------------------------*/
void set_site(int leg, float x, float y, float z)
{
float length_x = 0, length_y = 0, length_z = 0;
 
if (x != KEEP)
length_x = x - site_now[leg][0];
if (y != KEEP)
length_y = y - site_now[leg][1];
if (z != KEEP)
length_z = z - site_now[leg][2];
 
float length = sqrt(pow(length_x, 2) + pow(length_y, 2) + pow(length_z, 2));
 
temp_speed[leg][0] = length_x / length * move_speed * speed_multiple;
temp_speed[leg][1] = length_y / length * move_speed * speed_multiple;
temp_speed[leg][2] = length_z / length * move_speed * speed_multiple;
 
if (x != KEEP)
site_expect[leg][0] = x;
if (y != KEEP)
site_expect[leg][1] = y;
if (z != KEEP)
site_expect[leg][2] = z;
}
 
/*
- wait one of end points move to expect site
- blocking function
---------------------------------------------------------------------------*/
void wait_reach(int leg)
{
while (1)
if (site_now[leg][0] == site_expect[leg][0])
if (site_now[leg][1] == site_expect[leg][1])
if (site_now[leg][2] == site_expect[leg][2])
break;
}
 
/*
- wait all of end points move to expect site
- blocking function
---------------------------------------------------------------------------*/
void wait_all_reach(void)
{
for (int i = 0; i < 4; i++) wait_reach(i); } /* - trans site from cartesian to polar - mathematical model 2/2 ---------------------------------------------------------------------------*/ void cartesian_to_polar(volatile float &alpha, volatile float &beta, volatile float &gamma, volatile float x, volatile float y, volatile float z) { //calculate w-z degree float v, w; w = (x >= 0 ? 1 : -1) * (sqrt(pow(x, 2) + pow(y, 2)));
v = w - length_c;
alpha = atan2(z, v) + acos((pow(length_a, 2) - pow(length_b, 2) + pow(v, 2) + pow(z, 2)) / 2 / length_a / sqrt(pow(v, 2) + pow(z, 2)));
beta = acos((pow(length_a, 2) + pow(length_b, 2) - pow(v, 2) - pow(z, 2)) / 2 / length_a / length_b);
//calculate x-y-z degree
gamma = (w >= 0) ? atan2(y, x) : atan2(-y, -x);
//trans degree pi->180
alpha = alpha / pi * 180;
beta = beta / pi * 180;
gamma = gamma / pi * 180;
}
 
/*
- trans site from polar to microservos
- mathematical model map to fact
- the errors saved in eeprom will be add
---------------------------------------------------------------------------*/
void polar_to_servo(int leg, float alpha, float beta, float gamma)
{
if (leg == 0)
{
alpha = 90 - alpha;
beta = beta;
gamma += 90;
}
else if (leg == 1)
{
alpha += 90;
beta = 180 - beta;
gamma = 90 - gamma;
}
else if (leg == 2)
{
alpha += 90;
beta = 180 - beta;
gamma = 90 - gamma;
}
else if (leg == 3)
{
alpha = 90 - alpha;
beta = beta;
gamma += 90;
}
 
servo[leg][0].write(alpha);
servo[leg][1].write(beta);
servo[leg][2].write(gamma);
}

Projenin orjinal kaynağı : https://www.instructables.com/DIY-Spider-RobotQuad-robot-Quadruped/

Projenin orjinal kaynağında kod sonsuz döngü olarak yazılmış , proje dosyasında bulunan andorid uygulama sayesinde robotunuzu bluetooth üzerinden uzaktan kumanda edebileceksiniz.

Proje size açık kaynaklıdır istediğiniz kısımlarda kendiniz güncelleme ve geliştirme yapabilirsiniz.

Bluetooth Bağlantısı:

Sensör Shield üzerinde bulunan COM kısmına bluetooth modülünüzün pinleri bağlanıcaktır.Bağlantı pinleri:

Arduino     Bluetooth

  • RX————-TX
  • TX————-RX
  • VCC———–VCC
  • GND———-GND
Ek bilgi
Ürün Markası

Yapboz

İnceleme (4)

Arduino Android Kontrollü Örümcek Robot için 4 inceleme

  1. 5 üzerinden 5 oy aldı

    Aysema Hancı – Ocak 11, 2022

    Set eksiksiz geldi teşekkürler

  2. 5 üzerinden 5 oy aldı

    Mehmet – Mart 16, 2022

    3d baskılar güzel çıkmış motorlar kaliteliydi

  3. 5 üzerinden 5 oy aldı

    emel tataroğlu – Mayıs 12, 2022

    Ürün harika fiyat olarak piyasanın en ucuzu eksiksiz geldi. Sadece paketten batarya çıkmıyor kendimiz aldık

  4. 5 üzerinden 5 oy aldı

    İshak – Kasım 28, 2022

    Arduino:1.8.19 (Windows 10), Kart:”Arduino Nano”
    kod:3:10: fatal error: FlexiTimer2.h: No such file or directory
    compilation terminated.
    exit status 1
    FlexiTimer2.h: No such file or directory
    Kod bu şekilde hata veriyor lütfen email üzerinden yardımcı olunuz

İnceleme yap Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Marka hakkında
yapbozlogo

Yapboz markası 2016 yılında Erzurum’da ortaya çıkmıştır.Eğitim amaçlı robotik kodlama kitleri geliştiren Proje Hocam ın alt markasıdır.

Kolay programlanabilir sürükle bırak kontrol paneli sayesinde öğrenciler arduino kodlarını yazmadan kolayca robotların algoritmalarını oluşturup robotlarını programlayabilmektedirler.

Dafa Fazla Ürün
Tükendi

10 inç 3K Karbon Fiber Pervane

370,00 TL
Devamını oku
Kapat

10 uF 25 V Kondansatör

2,41 TL
Sepete Ekle
Kapat
Tükendi

1000 Tvl Fpv Drone Kamerası 2.8mm Lens 110 Derece

184,00 TL
Devamını oku
Kapat
Kargo Süreci

HEPSİ-JET İLE TÜRKİYE'NİN HERYERİNE

Günümüz itibariyle 81 ilde hizmet sağlayan HepsiJet, 2000’e yakın taşımacısı, 50’den fazla filo aracı, birbirinden farklı hizmet modelleri ve 250’yi aşkın ofis çalışanıyla her geçen gün büyüyen bir marka haline gelmiştir.

Teknoloji ekibiyle beraber her geçen gün geliştirdiği yazılım ve Ar-Ge çalışmaları sayesinde sektördeki öncü firmalardan biri haline geldi.

DHL EXPRESS İLE DÜNYA'NIN HERYERİNE

DHL, lojistik sektörünün lider küresel markasıdır. DHL ailesi yurt içi ve uluslararası paket teslimatı, e-ticaret lojistik ve ikmal çözümleri, uluslararası ekspres, kara, hava ve deniz taşımacılığı, endüstriyel tedarik zinciri yönetimi gibi birçok alanda rakipsiz bir lojistik hizmetler portföyü sunmaktadır.

Dünya çapında 220’nin üzerinde ülke ve bölgede yaklaşık 350.000 çalışanı olan DHL, insanları ve işletmeleri güvenli ve güvenilir bir şekilde birbirlerine bağlayarak küresel ticaret akışına olanak sağlamaktadır.

İlgili ürünler

Kapat

Lazerli Güvenlik Alarm Devresi

5 üzerinden 5.00 oy aldı
94,00 TL
Filmlerde gördüğünüz lazer alarm sistemlerinin benzeri bir projedir. Lazerden geçtiğinizde alarm vermektedir. Bu proje her türlü okul seviyesi için uygun basit bir projedir. Lazerin kırmızı yada yeşil olması fark etmez istediğiniz renkteki lazeri satın alabilirsiniz. Ayrıca projeyi ayna kullanarak daha geniş bir alan için tasarlayabilirsiniz. Projede sadece devre ve pil gönderilmektedir. Lazeri ekstra ürünlerimiz bölümünden temin edebilir yada oyuncakçılardan satın alabilirsiniz. Lazerin özelliği önemli değil , kırmızı , yeşil , mavi istediğiniz lazeri kullanabilirsiniz.
Sepete Ekle
Kapat

Güneş Takip Sistemi

5 üzerinden 5.00 oy aldı
680,00 TL
Proje iki eksenli bir sistem 2 tane servo motor ile kontrol edilmekte , ilk servo motor alt kısımda yatay hareketi sağlarken diğer servo motor üst bölümde dikey hareketi sağlamaktadır.Pan sistemleri gibi çalışmaktadır.Ayrıca üst kısımda ldr için özel hazırlanmış artı şekinde yuva mevcut bu yuva güneş ışığının ayarlanmasını sağlamakta.
Sepete Ekle
Kapat

Engel Algılayan Örümcek Robot

1.280,00 TL
Engellere çarpmadan otonom bir şekilde hareket edebilen bir örümcek robot türüdür.Arduino ile hazırlanmıştır ve geliştirmeye açıktır.Proje ile birlikte kodlar gönderilecektir.Plastik parçalar 3D yazıcılar üretilmeltedir.İstenildiği taktirde projenin STL dosyaları gönderilmektedir.
Sepete Ekle
Kapat

Arduino Nabız Ölçme Projesi

542,00 TL
Bu projemizde nabız ölçer IR (kızılötesi) sensör yardımıyla kalp grafiği nasıl çizilir bunu öğreneceğiz.Projemiz arduino ile hazırlanmıştır.Bilgisayar araryüzü prosesing programıyla yapılmıştır.IR sensörden gelen veriyi arduino işleyip prosesing programında java temelli olarak ekrana yazdırmaktadır.
Sepete Ekle
Kapat

Görme Engelliler İçin Bileklik

5 üzerinden 5.00 oy aldı
589,00 TL
Görme engelli kişiler için geliştirilmiş basit ama etkili bir bileklik bilekliği açtığınızda ultrasonik sensör devreye girerek yakın mesafede olan cisimlerde alarm vermekte bu şekilde görme engelliler yollarını bulabilmektedir.Sosyal sorumluluk ve teknoloji alanında güzel ve etkili bir projedir.
Sepete Ekle
Kapat

Yapboz Robot Kiti

980,00 TL
Arduino tabanlı yapboz robot kiti ürünüdür. Ürün demonte olarak gönderilir. Robot kiti modüler yapısı sayesinde birçok projeye uygundur. Proje 2015 yılında geliştirilmeye başlanmıştır Proje Hocam firmasının geliştirdiği ilk ARGE ürünüdür. Kasası 3D yazıcılarla üretilmektedir. Bu sayede sizin tasarlayacağınız eklentilere tam uyumludur.Üzerinde Arduino UNO mevcuttur ayrıca shield olarak görev yapan yapboz devresi motor sürücü ve sensör yuvası olarak çalışmaktadır.
Sepete Ekle
Kapat

Android Kontrollü RC Araba

5 üzerinden 5.00 oy aldı
780,00 TL
Android telefonlarınızla hemen hemen birçok işlemi rahatlıkla yapabilmektesiniz.Bu projemizin sonunda android kontrollü rc araba sahibi olacaksınız.Aşağıdaki adımları uygulayarak sizde kendinize bir araba yapabilirsiniz.Projenin amacı cep telefonunuza yükleyeceğiniz program sayesinde arabanızı istediğiniz gibi bluetooth üzerinden kontrol etmektir.
Sepete Ekle
Kapat

Duman ve Sıcaklık Alarm Devresi

5 üzerinden 5.00 oy aldı
470,00 TL
Duman ve sıcaklık alarmı projemiz ev iş yerleri için tasarlamış bir projedir.Şuan için sadece alarm vermektedir.Daha da geliştirip itfaiye ye haber verme gibi özelliklerde eklenebilir.Projemiz yüksek yoğunlukta ve yüksek sıcaklıkta alarm verecek şekilde tasarlandı.Projemiz üzerinde DHT11 sıcaklık sensörü MQ4 duman sensörü , RGB led ve buzzer kullanılmıştır.Delikli plaket üzerine devre kurulmuş ve daha derli toplu olması sağlanmıştır.RGB led kullanılarak aynı led üzerinden hem kırmızı hem de yeşil renk alınması sağlanmıştır.
Sepete Ekle
kargo_icon2

Ücretsiz Kargo

600 TL üzeri tüm kargolar.

whatsapp_icon

İletişimde Kalalım

WhatsApp , Mail , Telefon

blog

Mutlu Müşteriler

Yorumlar referanslarımızdır

kredikart_iconf

Taksitli Ödeme İmkanı

Kredi kartına 9 taksit

  • Hakkımızda
    • Anasayfa
    • Referanslar
    • Projeler
    • Banka Hesapları
    • İletişim
  • Müşteri Hizmetleri
    • Kişisel Verilerin Korunması
    • Garanti ve İade
    • Satış Sözleşmesi
    • Kullanım Şartları
    • Sık Sorulan Sorular
  • 3D Baskı Hizmeti
    • Arduino Projeleri
    • Robot Projeleri
    • IOT Projeleri
    • Görüntü İşleme Projeleri
    • Teknofest Projeleri

Keşfet , Üret , Paylaş

Proje Hocam Teknoloji ve Savunma Tic. Ltd. Şti.

  • Menü
  • Kategoriler
  • Anasayfa
  • 3D Yazıcı / CNC3D Yazıcı / CNC
  • Hazır Proje ve SetlerHazır Proje ve Setler
  • Arduino EkipmanlarıArduino Ekipmanları
  • Raspberry Pi EkipmanlarıRaspberry Pi Ekipmanları
  • Sensör ve KomponentlerSensör ve Komponentler
  • Kablosuz HaberleşmeKablosuz Haberleşme
  • Güç KaynaklarıGüç Kaynakları
  • Motor ve MekanikMotor ve Mekanik
  • Anasayfa
  • Referanslar
  • Hakkımızda
  • Blog
  • İletişim
  • WhatsApp : 0850 304 9125
  • Giriş / Kayıt
Alışveriş Sepeti
kapat

Arduino Android Kontrollü Örümcek Robot

5 üzerinden 5.00 oy aldı
870,00 TL

3 adet stokta

Giriş Yap

kapat

Şifreni mi unuttun?
Veya giriş yap
Facebook
Google

Henüz üye olmadın mı?

Hesap oluştur