Спирограф лазерный

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Долгострой мой сегодня наконец сдвинулся с места) Много дел очень последнее время.

Собрал механику на 2х моторах от двд(лоток выталкивающий мотор), к ним 2 зеркала от точилок.

Закрепил на крепежах от кабелей, на базаре как то приметил для этих целей.

Лазерная указка на 20мВ лазер ЗЕЛЕНЫЙ

одна микросхема L293DNE

Arduino duemilanova на атмеге 328 (сначала не мог понять почему не работает на атмеге8 потом вспомнил что у нее всего 3 ШИМ вместо 6ти у 328й)

2 потенциометра на 10К

макетка беспаячная и к ней провода

Код наклепал за пару минут - работает и можно рисовать всякие фигуры регулируя пока только обороты двигателей, на каждый двигатель по одному потенциометру для регулировки.

int speedX;
int speedY;
void setup() {
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(13, OUTPUT);
 

}

void loop() {
digitalWrite(10, LOW);
digitalWrite(5, LOW);
int x = (analogRead(0));
int y = (analogRead(1));
speedX =map(x, 0, 1023, 0, 255);
speedY =map(y, 0, 1023, 0, 255);
analogWrite(11,speedX);
analogWrite(6,speedY);
digitalWrite(13,HIGH);
delay(1);

 

Схема включения стандартная из примеров про шаговики на ардуино.сс

Видео работы мега устройства выложу чуть позже.

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

 В планах перевести на софтверный ШИМ работу L293DNE для работы с атмегой8 или установить логику для уменьшения количества пинов PWM, надо будет почесать репу. Поднять стандартную частоту ШИМ желательно, а то микросхема 293я "поёт".

Дальше отловить все фигуры с фиксацией скоростей моторов в ЕЕПРОМ(может в код программы) для быстрого возврата к ним. Работа по вращению фигур в разные стороны в такт музыки. Подцеплю микрофон на вход и будет по уровню бить ритм)

Далее сделать реверс итоже сделать всё как выше.

По возможности всё запихнуть в атмегу8ю для удешевления))) По идее влезет, код работает без каких либо библиотек))) 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Сам написал и сам придумал ответ как управлять через 2 PWM а не через 4. Изменил схему стандартную. Теперь ШИМ подаётся на входы Enable1 и Enable2. Работает))))

Новый код

int speedX;
int speedY;
void setup() {                
  pinMode(11, OUTPUT);     
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);     
  pinMode(8, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(13, OUTPUT);
  

}

void loop() {
  digitalWrite(9, HIGH);
  digitalWrite(8, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(3, LOW);
  
  
  int x = (analogRead(0));
  int y = (analogRead(1));
  speedX =map(x, 0, 1023, 0, 255);
  speedY =map(y, 0, 1023, 0, 255);
  analogWrite(11,speedX);
  analogWrite(10,speedY);
  digitalWrite(13,HIGH);
  //delay(1);
}

 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Так что однозначно будет атмега8. Это радует) Итого будет минимум денег, 2$ L293DNE, 3$ Atmega8A-pu, обвес к атмеге еще 1 доллар всё остальное почти шара. Лазерную указку сделал сьёмной) (Твёрдый знак, почему-то, не работает)

icoz
Offline
Зарегистрирован: 31.07.2011

Интересный проект. Вы бы хоть фотографии выложили. Или еще лучше - видео!

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Видеокамера мобильного телефона не передаёт всё, линии идут непрерывные!!!

http://www.youtube.com/watch?v=PFabBzWjIVM 

Zaliv
Offline
Зарегистрирован: 05.03.2011

 ЗдОрово

Merlik
Offline
Зарегистрирован: 16.12.2015

Здорово. А не могли бы вы выложить не только програмный код, но и схему подключения, а так же схему растановки зеркал.