Ви не увійшли.
Сторінки 1
сделал скечь (код) для управления танком как машинкой, то-есть:
джой вперед --- танк вперед
джой назад --- танк назад
джой влево --- танк влево
джой вправо --- танк вправо
кнопка 1 --- башня поворачивается вправо
кнопка 2 --- башня поворачивается влево
поворачивать на ходу тоже можно (как при езде вперед, так и назад).
поворот стоя на месте вращением гусеницы вперед, а другая на месте.
при езде вперед блокируется гусеница с той стороны в какую нужно повернуть.
также и назад.
у меня 2 части кода:
1. для передатчика.
2. для приемника.
скоро появится версия танка с возможностю управлять поворотом башни ( как кнопкой, так и джостикм)
также в коде есть вывод даных из джостика в монитор порта для на стройки центра джостика.
Скечь (код) для ардуино и видео про танк тут https://youtu.be/LXG6GsLvmWg
код закоментирован и понятен для насторойки под себя.
также могу переделать под ваши нужды.
предостовление кода за бесплатно)))
кому не жалко заплатить за мой труд пишите на почту misha-2003-lego@ukr.net
перевод денег на карту Приват Банка 5168 7559 3363 8898 Голобоков Михаил
про стрельбу в планах сделать)))
а шасси и сам корпус бивший танк на пульту)))
Миханик привет. видео конечно хочу посмотреть.
силка на видео + код для танка (приемник + передатчик)
я могу настроит чтоб поворачивал 2 гусеницами, мне не сложно)))
била б камера я би поставил но нету)))
сегодня или завтра выложу показать тебе)))
я старалса для РЕАЛЕСТИЧЬНОСТИ, потому что настоящий танк --- блокирует, а не две в разние стороны крутит (КПП одна для 2 гусенец)
Мой танк это модель по ходовой части, и поворот башни (жалко сервы нету верх-вниз пушку поворачивал)
я дам код для ходовой + для башни
пишите свои предложения по поводу кода и(или) его приобретения )))
сделал скечь (код) для управления танком как машинкой, то-есть:
джой вперед --- танк вперед
джой назад --- танк назад
джой влево --- танк влево
джой вправо --- танк вправо
кнопка 1 --- башня поворачивается вправо
кнопка 2 --- башня поворачивается влево
поворачивать на ходу тоже можно (как при езде вперед, так и назад).
поворот стоя на месте вращением гусеницы вперед, а другая на месте.
при езде вперед блокируется гусеница с той стороны в какую нужно повернуть.
также и назад.
у меня 2 части кода:
1. для передатчика.
2. для приемника.
скоро появится версия танка с возможностю управлять поворотом башни ( как кнопкой, так и джостикм)
также в коде есть вывод даных из джостика в монитор порта для на стройки центра джостика.
Скечь и видео тут https://youtu.be/LXG6GsLvmWg
Могу выслать видео о работа--способности кода на своем танке
код могу выслать на почту вам.
код закоментирован и понятен для насторойки под себя.
также могу переделать под ваши нужды.
предостовление кода за бесплатно)))
кому не жалко заплатить за мой труд пишите на почту misha-2003-lego@ukr.net
перевод денег на карту Приват Банка 5168 7559 3363 8898 Голобоков Михаил
прога для светильника на ик, движения датчик, и света дачике.
#include <IRremote.h>
int A=500;
const int dvig = 5;
#define LDR_PIN A0
const int leda = 11;
const int led = 13;
const int lede = 12;
int led1=0;
int led2=0;
int RECV_PIN = 2; // ИК приёмник
unsigned long lastKey = 0; // последняя нажатая кнопка с пульта
unsigned long keyCode = 0; // код, полученный с пульта
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(leda, OUTPUT);
pinMode(lede, OUTPUT);
pinMode(LDR_PIN, INPUT);
pinMode(dvig, INPUT);
irrecv.enableIRIn();
}
void loop()
{
if ( irrecv.decode( &results )) {
Serial.println(results.value, HEX);
if (results.value==0x659A00FF&&led1==0){
digitalWrite( lede, HIGH );led1=1;results.value=0;
delay(100);
}
if (results.value==0x659A00FF&&led1==1){
digitalWrite( lede, LOW );led1=0;results.value=0;
delay(100);
}
if (results.value==0x659AC936){
A = A + 50;
}
if (results.value==0x659A29D6){
A = A - 50;
}
irrecv.resume();
}
int l = analogRead(LDR_PIN);
int t = A;
boolean to = (l < t);
if (to && digitalRead(dvig) == 1) {
digitalWrite(led, HIGH); led2=1;
} else {
// ...иначе свет не нужен — выключаем его
digitalWrite(led, LOW); led2=0;
}
if (led1 == 1){
digitalWrite(leda, HIGH);
}
else if (led2 == 1){
digitalWrite(leda, HIGH);
}
else if (led1 == 0){
digitalWrite(leda, LOW);
}
else if (led2 == 0){
digitalWrite(leda, LOW);
}
}
я зделал на ардуино, 7-сегменте (на платке для уменшения виводов), и ик пульте.
я нажимаю на пульте кнопку с цифрой и цифра висвечиваетса.
я здела штоб нажал а цифри увеличивались или уменшались от текущего, я например держу ево а оно каждие 300 милисекунди увеличюютса или уменшаютса.
и еще есть случайное число.
а мне еще надо штоб я нажал а оно как слайди накомпе, но я должен нажать раз а оно пройти от 0 до 9 каждие 300 милисекунд.
вот скечь робочий. но неработает то што мне нужно.
вот фото
http://forum.arduino.ua/img/members/1554/IMG_20170527_134154.jpeg
#include "IRremote.h"
IRrecv irrecv(2);
decode_results results;
#define DATA_PIN 13 // пин данных (англ. data)
#define LATCH_PIN 12 // пин строба (англ. latch)
#define CLOCK_PIN 11 // пин такта (англ. clock)
byte segments[10] = {
0b01111101, 0b00100100, 0b01111010, 0b01110110, 0b00100111, // ето символи в зашифровке
0b01010111, 0b01011111, 0b01100100, 0b01111111, 0b01110111
};
void setup() {
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if ( irrecv.decode( &results )) {
Serial.println(results.value, HEX);
if (results.value==0x659A00FF){ // 0x659A00FF ето код с пульта
segments[10] = 1 ; results.value=0;
}
if (results.value==0x659A807F){
segments[10] = 2 ; results.value=0;
}
if (results.value==0x659A40BF){
segments[10] = 3 ; results.value=0;
}
if (results.value==0x659AC03F){
segments[10] = 4 ;results.value=0;
}
if (results.value==0x659A20DF){
segments[10] = 5;results.value=0;
}
if (results.value==0x659AA05F){
segments[10] = 6 ;results.value=0;
}
if (results.value==0x659A609F){
segments[10] = 7 ;results.value=0;
}
if (results.value==0x659AE01F){
segments[10] = 8 ;results.value=0;
}
if (results.value==0x659A10EF){
segments[10] = 9;results.value=0;
}
if (results.value==0x659A906F){
segments[10] = 0 ;results.value=0;
}
if (results.value==0x659AC936 && segments[10] != 9){ // ето прибаление на 1 каждие 200 милисекунд
segments[10] = ++segments[10];
delay(200);
}
if (results.value==0x659A29D6 && segments[10] != 0){ // ето отнимание от числа што сечас каждие 200 милисекунд
segments[10] = --segments[10];
delay(200);
}
if (results.value==0x659A6996){ // случайное число от 0 до 9
segments[10] = (random(0, 10));
delay(100);
}
// между етими коментами должна бить прога для нажатия один раз и оно как слайдами само,
//но штоб можно било отключить уво нажав просто другую кнопку
// код можете записать как ХХХХХХХХ
irrecv.resume();
{
digitalWrite(LATCH_PIN, LOW); // а ето запись на екранчик
// задвигаем (англ. shift out) байт-маску бит за битом,
// начиная с младшего (англ. Least Significant Bit first)
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, segments[segments[10]]);
// чтобы переданный байт отразился на выходах Qx, нужно
// подать на пин строба высокий сигнал
digitalWrite(LATCH_PIN, HIGH);
}
}
}
Сторінки 1