プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

C/C++

DeskHopへの機能追加 マウス速度の切り替えスイッチ

マウス速度の切り替え機能を追加しました WindowsとLinux(Ubuntu)ではマウスの速度(感度)が違うという問題がありました。 DeskHopを使えば、このような問題も解決できると考え、この機能をもともと計画して、スイッチを追加していました。 github.com 機能…

【PR】キーボード・マウス切り替え機 DeskHopを作った

キーボード・マウス切り替え機 DeskHopを作りました ※こちらもPCBGOGOによる提供です。$100分なのでこれで最後になります。キーボード・マウス切り替え機deskhopを作りました。これでWindows PC2台やWindowsとLinuxの間でキーボードとマウスを共有できます。…

Raspberry Pi Picoで内部プルアップが使えるピンは?さらにPicoのプロジェクトの初期設定をする

TL;DR ・GP0 - GP28 まですべてのピンが内部プルアップを使える ・CmakeListsの書き方を改めて整理したラズパイピコを使ったプロジェクトを計画中なのですが、内部プルアップを使えるピンの情報が見つからない(一度どこかで見た)のでテストコードを書いて…

【PR】カードサイズキーボードを作る

自作キーボード基板を作りました カードサイズキーボードを作りました。カードサイズを第一に決めたので、6個のキーのほかにタクトスイッチを入れました。タクトスイッチは設定など、普段使わないキーを割り当てます。 pic.twitter.com/NyXuHrcMem— とりて…

C言語文字列処理n本ノック

C言語での文字・文字列の処理をまとめます 私だけでしょうか?文字列の処理がぱっと思い出せないことが度々あるのでここにまとめます。 文字列と数値の変換 // #include <stdlib.h> // 整数から文字列への変換 int number = 42; char str[20]; // 十分なサイズを確保 s</stdlib.h>…

ぷよぷよのアルゴリズム

s51517765.hatenadiary.jp 先日投稿したぷよインベーダーのプログラムの中から、ぷよとインベーダーが消せるかどうか、の判定部分について解説します。 技術的には「再帰」と「深さ優先探索」「状態遷移」で構成しています。 画面上(プレイエリア)を升目と…

わたしの知らなかった#defineの世界

わたしの知らなかった#defineの世界 C言語の#defineはプログラマーが定義した文字列を他の文字列(や数値、式等)に置き換えるものです。 その活用方法は主に、以下があります。 ・マジックナンバーの防止 ・関数定義 ・多重インクルード防止 ・条件付きコン…

ポインタと配列と構造体とメモリの切っても切れない関係(C言語)その2

ChatGPTにポインタと配列と構造体について教えてもらった 以下は、私がChatGPTとお話して教えてもらったことをまとめた内容になります。 私の知識から見ると、間違ったことは言っていないように思いますが、もし間違っていることがあったらぜひご指摘くださ…

ポインタと配列と構造体とメモリの切っても切れない関係(C言語)

配列や構造体にはポインタでアクセスできる 配列や構造体はPythonやC#等でも使えて、ほぼ同じように使えます。 しかしながら、C言語ではこれに加えてポインタでアクセスする方法があります。 配列へのアクセス まずは、配列の要素を出力してみます。これはPy…

C言語でファイル間で変数を共有する(グローバル変数)

組み込みエンジニアなのでバリバリC言語を書いています 初めてC言語を学んだ時になかなか情報を見つけられなくて苦労したテクニックを少しずつ紹介したいと思います。 C++でも同じはずです。 例1 単一ファイルで変数を共有したいときは、関数の外で宣言しま…

M5Stackで作った迷路ゲームのアニメーション制御

M5Stackのアニメーション制御を解説します このプロジェクトでもっとも重要な要素の一つである、M5StackのLCD上でアニメーションを制御(表示)する方法を解説します。 先の記事の続き的な位置づけです。 s51517765.hatenadiary.jp ソースコードは以下です。…

M5Stack Japan Creativity Contest応募作の解説

今年もM5Stack Japan Creativity Contestに応募しました protopedia.net protopedia.net youtu.be狙い通り、参加賞のTシャツが送られてくる予定です。今回はゲームを作りました。 プログラミングでゲームを作ってみたいと思っていて、そこにちょうど購入した…

Ubuntuからラズパイピコを使う

Windowsでも使えるけどUbuntuでも使ってみる ラズパイピコは当然のことWindowsからも使えますが、サンプルコードを使ったりするのにLinuxのほうが都合が良い場面があります。 ラズパイ4等でも良いのですが、ラズパイ4が如何に強力といえどもPCよりは非力です…

Arduinoのtimerがオーバーフローしたとき計算される時間差はどうなるか?

timerがオーバーフローしたらどうなるか? Arduinoで時間を測定するにはmills()やmicros()という関数があります。 これはArduinoの電源ONからの時間をミリ秒、またはマイクロ秒単位で返すものです。 長い時間を測定するにはmills()をunsigned longで取得する…

Raspberry PiでRaspberry Pi Pico向けC言語をBuildしてみる

ラズベリーパイ4にラズパイピコのビルド環境を作る WindowsからTeratermでSSH接続したRaspberry Pi 4 (8GB)上でラズパイピコ向けのC言語ソースをビルドします。 Windows上でももちろんラズパイピコのビルド環境は作れるのですが、ラズベリーパイ(4)ではも…

ESP32でGoogle Spreadsheetを使う

データを収集するのにSpreadsheetは便利 以前M5Stackの服薬管理アプリでSpreadsheetは使っていますが、ESP32でSpreadsheetを使ってみました。 s51517765.hatenadiary.jpそのまま移植しようとしたら上手くいかなくて、というのも中身がよくわかっていないとこ…

ESP32でwebサーバーを作る

ESP32でIOTにWebとかUIとか作ってみた ESP32でつくったローカルサーバーにWebからアクセスしてLEDを操作するやつ、さらにこれをWindowsアプリでも出来るようにする基本技術を身に着けた。 pic.twitter.com/g0gyd20dgl— とりてん (@s51517765) 2022年2月11日 …

ビュートローバーARMを組込み視点で考える

もっと組込みプログラミング的なことをやりたい 前回はビュートローバーARMに対してサンプルコードの修正で簡単な改造をしました。 s51517765.hatenadiary.jp実はサンプルコードはある程度 分かりやすい 関数で組まれていて、その本質のところに触れていませ…

ビュートローバーARMでモーター制御

ARMでモーター制御 以前ARMに入門しましたがもう少し進めてみました。 s51517765.hatenadiary.jpビュートローバーにはモータが2つついていて、前進後進のほかに転回もできるようになっています。 また、ライントレーサーとしてのプログラミングもできるよう…

ビュートローバーでARM CortexM3入門

ビュートローバーで組込みプログラミング入門 www.vstone.co.jp プログラミング教育用ロボット ビュートローバー ARM [学習教材] [vstone] (キット本体)ヴイストンAmazonビュートローバーというキットがメルカリで安く出ていたので入手してARMに入門しました…

「言語処理10本ノック 2020」をC++で

upura.hatenablog.com nlp100.github.ioU++さんのところで見つけたので挑戦してみました。(最初の10本だけ) C++の文字列処理が苦手なのでやってみました。Atcoderなどでも文字列の処理は重要なので、ちょうどよい題材です。01、02は日本語が含まれていますが…

プログラミングに使ってるアプリを紹介します

私が普段気に入って使っているツールを紹介します。プログラミング・Anaconda Pythonの環境です。 Python自体のインストールに加えてDefaultでは入っていない便利なモジュールが一度に構築できます。(32bit/64bitの選択をお間違いなく) www.anaconda.com・…

VS CodeでC++を設定する

※2020/03/12 追記 64bit版でのインストールについて 64bitのPCにも32bit版がインストールできてしまいます。しかし、32bit版固有のものか、64bit PCにインストールしたためか、不具合が発生します。 間違えずに選択しましょう。C++の開発環境をVS(Visual Stu…

競技プログラミングの基本入出力(C++)

以前、Python3で書きました。 s51517765.hatenadiary.jp今回はC++です。 最近、C++の勉強を兼ねてC++で競技プログラミングの勉強をしています。入力編競技プログラミングでは以下のように入力が与えらるのが基本です。 最初の一行は、続く入力行の回数である…

「リアルタイムOSから出発して組込みソフトエンジニアを極める」を読んだ

リアルタイムOSから出発して 組込みソフトエンジニアを極める[改装版]作者: 酒井由夫,発行:エスアイビーアクセス発売:星雲社出版社/メーカー: 星雲社発売日: 2016/05/01メディア: 単行本この商品を含むブログを見るソフトウェアの分野の一つとして組込みソフ…

プログラミング素人がプログラミングを勉強した方法

理系ですが専門的にプログラミング(情報工学)を学んだわけではない私が、趣味の範囲とはいえプログラミングを勉強した方法をまとめました。中の人のスペック・国立大理系修士卒(理学系物理) ・メーカー勤務10数年(3社目) ・非ソフトウェアエンジニ…

オブジェクト指向でなぜつくるのか

オブジェクト指向でなぜつくるのか 第2版作者: 平澤章出版社/メーカー: 日経BP社発売日: 2011/04/07メディア: 単行本購入: 6人 クリック: 92回この商品を含むブログ (20件) を見るオブジェクト指向という言葉はプログラミングをやっている人で知らない人はい…

プログラムはなぜ動くのか

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識作者: 矢沢久雄出版社/メーカー: 日経ソフトウエア発売日: 2007/04メディア: 単行本(ソフトカバー)購入: 45人 クリック: 646回この商品を含むブログ (73件) を見るタイトルの問いかけ…

電子工作とプログラミングの薦め

対象本エントリーは、電子工作もしくはプログラミングをやってみたいと思った人で、どちらも、もしくはどちらかしかやったことのない人へ向けての記事となる電子工作およびプログラミングの薦めです。この4月から就職したり進学したりして環境が変わり、こ…

「実装しない」機能の決め方 – 週休7日で働きたい

「実装しない」機能の決め方 – 週休7日で働きたい なるほど、耳が痛い。 だが一方で、それが出来るのも趣味だからこそ。