18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用機(jī)器學(xué)習(xí)和openFrameworks控制伺服電機(jī)

454398 ? 來源:工程師吳畏 ? 2019-08-02 17:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

電路圖

伺服電機(jī)Arduino之間建立以下連接:

黃色線是信號(hào)線。將其連接到Arduino上的數(shù)字引腳2。

棕色線是地線。將它連接到Arduino上的GND 。

紅色線是電源線。將其連接到Arduino上的 5V 引腳。

怎樣用機(jī)器學(xué)習(xí)和openFrameworks控制伺服電機(jī)

根據(jù)上面的電路圖在伺服電機(jī)和Arduino UNO之間建立連接。

編程Arduino

在Arduino代碼中,我們首先包含了伺服庫并為伺服初始化了一些變量。

然后在設(shè)置函數(shù)中,我們將伺服連接到Arduino的引腳2并開始串行通信。

在循環(huán)功能中,我們查找了輸入數(shù)據(jù),如果有任何數(shù)據(jù)可用,我們將讀取它并根據(jù)此值伺服電機(jī)將移動(dòng)。

// Code to control servo motor from openframeworks using wekinator

#include //including the servo library

Servo sg90; //including a variable for servo named sg90

int servo_pin = 2;

void setup() {

sg90.attach(servo_pin); //Giving the command to arduino to control pin 2 for servo

// Start the serial communication

Serial.begin(9600);

}

void loop() {

if (Serial.available()) { // If there is any data available

int inByte = Serial.read(); // Get the incoming data

sg90.write(inByte);

}

}

編程openFrameworks

在openFrameworks方面,我們有三個(gè)用于發(fā)送和的文件從Wekinator接收數(shù)據(jù),也將幫助我們將數(shù)據(jù)發(fā)送到Arduino。

Main.cpp

Main .cpp運(yùn)行應(yīng)用程序并打開輸出窗口。

以下代碼適用于Main.cpp:

#include “ofMain.h”

#include “ofApp.h”

//========================================================================

int main( ){

ofSetupOpenGL(600, 480, OF_WINDOW); // 《-------- setup the GL context

// this kicks off the running of my app

// can be OF_WINDOW or OF_FULLSCREEN

// pass in width and height too:

ofRunApp(new ofApp());

}

OfApp.cpp

OfApp.cpp代碼是Arduino和openFrameworks之間存在串行通信的地方。它也是openFrameworks和Wekinator之間的OSC通信。

#include “ofApp.h”

#include “ofxOsc.h”

//--------------------------------------------------------------

void ofApp::setup(){

sender.setup(HOST, SENDPORT);

receiver.setup(RECEIVEPORT);

ofSetFrameRate(60);

serial.listDevices();

vector deviceList = serial.getDeviceList();

// this should be set to whatever com port your serial device is connected to.

// (ie, COM4 on a pc, /dev/tty.。.. on linux, /dev/tty.。. on a mac)

// arduino users check in arduino app.。..

int baud = 9600;

serial.setup(0, baud);

//open the first device

// windows example

//serial.setup(“COM10”, baud);

// mac osx example

//serial.setup(“/dev/tty.usbserial-A4001JEC”, baud);

//linux example

//serial.setup(“/dev/ttyUSB0”, baud);

}

//--------------------------------------------------------------

void ofApp::update(){

// Sending data to the wekinator

ofxOscMessage m;

m.setAddress(string(SENDMESSAGE));

m.addFloatArg((float)mouseX);

m.addFloatArg((float)mouseY);

sender.sendMessage(m, false);

// looking for incoming messages from wekinator

while (receiver.hasWaitingMessages()) {

ofxOscMessage msg;

receiver.getNextMessage(&msg); // Get Message

if (msg.getAddress() == RECEIVEMESSAGE) {

outputData = msg.getArgAsFloat(0); // Stored it

}

}

serial.writeByte(outputData); // sending the data to arduino

}

//--------------------------------------------------------------

void ofApp::draw(){

ofSetColor(255, 0, 0);

string buf = “Sending message ” + string(SENDMESSAGE) + “ to ” + string(HOST) + “ on port ” + ofToString(SENDPORT);

ofDrawBitmapString(buf, 10, 20);

buf = “X=” + ofToString(mouseX) + “, Y=” + ofToString(mouseY);

ofDrawBitmapString(buf, 10, 50);

ofSetColor(0, 255, 0);

ofDrawRectangle(mouseX, mouseY, boxSize, boxSize);

}

//--------------------------------------------------------------

void ofApp::mouseDragged(int x, int y, int button){

mouseX = x;

mouseY = y;

}

在設(shè)置功能中,我們首先設(shè)置發(fā)送器和接收器,然后查找串口。一旦找到,它將自動(dòng)連接。

在更新功能中,我們首先將滑塊的X和Y值發(fā)送到Wekinator。然后,我們從接收器中查找傳入的消息。當(dāng)任何數(shù)據(jù)可用時(shí),它將存儲(chǔ)它并將其發(fā)送到Arduino。

在繪圖功能中,我們制作了一個(gè)滑塊,當(dāng)我們拖動(dòng)它時(shí)它會(huì)移動(dòng)。

OfApp.h

OfApp.h文件是頭文件。

#pragma once

#include “ofMain.h”

#include “ofxOsc.h”

//Defaults for OSC:

#define HOST “127.0.0.1”

#define SENDPORT 6448

#define RECEIVEPORT 12000

#define SENDMESSAGE “/wek/inputs”

#define RECEIVEMESSAGE “/wek/outputs”

class ofApp : public ofBaseApp{

public:

void setup();

void update();

void draw();

void mouseDragged(int x, int y, int button);

ofxOscSender sender;

ofxOscReceiver receiver;

ofSerial serial;

int mouseX = 0;

int mouseY = 0;

int boxSize = 30;

char outputData;

};

如何運(yùn)行openFrameworks草圖

使用openFrameworks中的項(xiàng)目生成器創(chuàng)建一個(gè)新項(xiàng)目。此項(xiàng)目需要‘Ofxosc’插件。

將上一節(jié)中給出的代碼復(fù)制到相應(yīng)的文件中并構(gòu)建項(xiàng)目。構(gòu)建項(xiàng)目后,您將看到如下所示的輸出窗口。

openFrameworks中的輸出窗口。

在Wekinator中設(shè)置項(xiàng)目

設(shè)置openFrameworks后,打開Wekinator并調(diào)整設(shè)置以匹配下圖所示的設(shè)置。

將輸入設(shè)置為2,輸出設(shè)置為1.選擇輸出類型為“custom”,然后單擊“configure”。

在Wekinator中設(shè)置輸入,輸出和類型字段以匹配上面顯示的字段。

接下來,將最小值設(shè)置為0,將最大值設(shè)置為180,然后單擊“完成”。

自定義輸出類型至少為0和a最多180個(gè)。

點(diǎn)擊“下一步”,將出現(xiàn)“新建項(xiàng)目”窗口。

按照上面列出的步驟并單擊下一步后,您將進(jìn)入Wekinator的New Project窗口。

將處理窗口中的綠色框拖動(dòng)到屏幕左側(cè)的中心,然后單擊“隨機(jī)化” ”。開始錄制一秒鐘,讓W(xué)ekinator記錄一些樣本。

將綠色框拖到屏幕左側(cè)以記錄您的第一個(gè)輸出。

現(xiàn)在將處理窗口中的綠框拖到窗口中心,然后單擊“隨機(jī)化”。開始錄制半秒。

將綠色框移動(dòng)到中心以允許Wekinator記錄更多樣本。

最后,將處理窗口中的綠色框拖動(dòng)到右側(cè)中心,然后單擊隨機(jī)化。開始錄制半秒。

將綠色框移動(dòng)到窗口的右側(cè),以允許Wekinator制作第三組樣本。

為Wekinator制作了三組樣本后,點(diǎn)擊“ train”,然后點(diǎn)擊“運(yùn)行”。

現(xiàn)在,當(dāng)您在openFrameworks窗口中拖動(dòng)滑塊時(shí),它將控制并移動(dòng)連接到Arduino的伺服。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    伺服電機(jī)和步進(jìn)電機(jī)的核心區(qū)別

    大家在運(yùn)動(dòng)控制的時(shí)候是伺服電機(jī)的還是步進(jìn)電機(jī)做定位控制
    的頭像 發(fā)表于 10-15 14:32 ?634次閱讀
    <b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>和步進(jìn)<b class='flag-5'>電機(jī)</b>的核心區(qū)別

    舵機(jī)與伺服電機(jī)的區(qū)別是什么?

    舵機(jī)與伺服電機(jī)都屬于 可精確控制的驅(qū)動(dòng)裝置 ,但二者在定義范圍、結(jié)構(gòu)組成、控制方式和應(yīng)用場(chǎng)景上存在顯著差異,并非完全等同(舵機(jī)是伺服
    的頭像 發(fā)表于 10-13 10:21 ?257次閱讀

    人形機(jī)器伺服電機(jī)驅(qū)動(dòng)器新動(dòng)力:高性能電容器的協(xié)同作用

    PART1人形機(jī)器人心臟:伺服電機(jī)驅(qū)動(dòng)器隨著人工智能和機(jī)器人技術(shù)的飛速發(fā)展,人形機(jī)器人正逐步成為智能制造和未來生活的新伙伴。在這一領(lǐng)域,
    的頭像 發(fā)表于 08-30 10:57 ?201次閱讀
    人形<b class='flag-5'>機(jī)器</b>人<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>驅(qū)動(dòng)器新動(dòng)力:高性能電容器的協(xié)同作用

    伺服電機(jī)中的回原點(diǎn)方式

    伺服電機(jī)的運(yùn)行需要一個(gè)參考點(diǎn),這個(gè)參考點(diǎn)就是原點(diǎn)。原點(diǎn)通常是由光電開關(guān)或機(jī)械開關(guān)來確定的,其位置是固定的。當(dāng)伺服電機(jī)運(yùn)行時(shí),控制器會(huì)根據(jù)原點(diǎn)
    的頭像 發(fā)表于 07-26 09:43 ?2241次閱讀
    <b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>中的回原點(diǎn)方式

    其利天下技術(shù)·伺服電機(jī)機(jī)器人技術(shù)中的應(yīng)用

    伺服電機(jī)作為機(jī)器人運(yùn)動(dòng)控制的核心部件,其高精度、高響應(yīng)速度和高負(fù)載能力等特點(diǎn),為機(jī)器人的精確運(yùn)動(dòng)提供了有力保障。在工業(yè)
    的頭像 發(fā)表于 03-07 16:38 ?1458次閱讀
    其利天下技術(shù)·<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>在<b class='flag-5'>機(jī)器</b>人技術(shù)中的應(yīng)用

    方案:雙軸伺服電機(jī)驅(qū)動(dòng)控制器AGV、AMR專用雙伺服電機(jī)驅(qū)動(dòng)控制器帶

    工業(yè)機(jī)器人數(shù)控機(jī)床XY機(jī)械手雙軸機(jī)器人堆垛機(jī)專用雙軸伺服電機(jī)驅(qū)動(dòng)控制器48V 14ARMS帶有STO功能,隔離高壓CAN/RS485/US
    發(fā)表于 02-15 12:14

    伺服電機(jī)實(shí)現(xiàn)方向改變的方法

    伺服電機(jī)是一種高精度、高響應(yīng)速度的電機(jī),廣泛應(yīng)用于工業(yè)自動(dòng)化、機(jī)器人、航空航天等領(lǐng)域。在實(shí)際應(yīng)用中,有時(shí)需要改變電機(jī)的旋轉(zhuǎn)方向,以滿足不同的
    的頭像 發(fā)表于 02-12 11:07 ?1889次閱讀

    舵機(jī)與伺服電機(jī)有的區(qū)別

    ? ? ? 舵機(jī)和伺服電機(jī)在自動(dòng)化和機(jī)器人技術(shù)領(lǐng)域中都是常用的執(zhí)行器,它們都能夠?qū)崿F(xiàn)精確的位置控制,但二者之間存在一些基本的區(qū)別,具體如下: ? ? ? 一、定義與構(gòu)成 ? ? ? 1
    的頭像 發(fā)表于 02-07 07:37 ?1370次閱讀
    舵機(jī)與<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>有的區(qū)別

    電機(jī)控制器與伺服系統(tǒng)的關(guān)系

    在自動(dòng)化控制系統(tǒng)中,電機(jī)控制器和伺服系統(tǒng)是實(shí)現(xiàn)精確運(yùn)動(dòng)控制的關(guān)鍵組件。電機(jī)
    的頭像 發(fā)表于 01-22 09:35 ?1333次閱讀

    伺服電機(jī)靜電防護(hù)完整方案

    控制對(duì)象。伺服電機(jī)的類型多種多樣,廣泛應(yīng)用于機(jī)器人、醫(yī)學(xué)成像、實(shí)驗(yàn)室自動(dòng)化、食品和飲料生產(chǎn)、金屬成型等工業(yè)領(lǐng)域。 伺服
    的頭像 發(fā)表于 01-09 14:28 ?932次閱讀
    <b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>靜電防護(hù)完整方案

    伺服系統(tǒng)在機(jī)器人中的作用 伺服系統(tǒng)與傳統(tǒng)電機(jī)對(duì)比

    位置、速度和加速度的系統(tǒng),它通過接收控制信號(hào)來驅(qū)動(dòng)電機(jī),實(shí)現(xiàn)對(duì)機(jī)器人關(guān)節(jié)的精確控制。 精確控制伺服
    的頭像 發(fā)表于 12-10 10:18 ?1980次閱讀

    伺服電機(jī)的工作原理和控制方式

    伺服電機(jī)的工作原理 伺服電機(jī)是一種能夠?qū)㈦娦盘?hào)轉(zhuǎn)換為精確的機(jī)械運(yùn)動(dòng)的設(shè)備。它的工作原理基于電磁感應(yīng)原理,通過精確控制
    的頭像 發(fā)表于 12-05 15:18 ?3849次閱讀

    伺服電機(jī)機(jī)器人中的應(yīng)用有哪些

    伺服電機(jī)作為現(xiàn)代工業(yè)自動(dòng)化領(lǐng)域的核心組件,其精確控制和高效性能在機(jī)器人技術(shù)中扮演著至關(guān)重要的角色。 伺服
    的頭像 發(fā)表于 11-20 09:53 ?2769次閱讀

    伺服驅(qū)動(dòng)器在機(jī)器人中的應(yīng)用案例

    在現(xiàn)代工業(yè)自動(dòng)化和智能制造領(lǐng)域,機(jī)器人技術(shù)的發(fā)展日新月異,而伺服驅(qū)動(dòng)器作為機(jī)器人系統(tǒng)中的關(guān)鍵組件之一,扮演著至關(guān)重要的角色。 1. 伺服驅(qū)動(dòng)器的基本原理
    的頭像 發(fā)表于 11-04 15:16 ?1723次閱讀

    其利天下技術(shù)·伺服電機(jī)編碼器的作用及工作原理·低壓伺服電機(jī)驅(qū)動(dòng)方案開發(fā)

    電機(jī)系統(tǒng)中起著至關(guān)重要的作用,是實(shí)現(xiàn)高效、穩(wěn)定和精確控制的核心組件。編碼器的作用是什么呢?它的工作原理又是怎樣的?其利天下·伺服電機(jī)驅(qū)動(dòng)方案
    的頭像 發(fā)表于 11-02 10:38 ?1408次閱讀
    其利天下技術(shù)·<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>編碼器的作用及工作原理·低壓<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>驅(qū)動(dòng)方案開發(fā)